เป็นเรื่องปกติมากที่โหลดเซิร์ฟเวอร์มีขนาดใหญ่เกินไปและส่งผลต่อประสิทธิภาพของโปรแกรม และเราจำเป็นต้องทดสอบสิ่งนี้ ที่นี่ฉันใช้เซิร์ฟเวอร์ Apache ที่ใช้บ่อยที่สุดเป็นตัวอย่าง
เซิร์ฟเวอร์ Apache มาพร้อมกับเครื่องมือที่เรียกว่า AB (ApacheBench) ซึ่งอยู่ในไดเร็กทอรี bin การใช้เครื่องมือน้ำหนักเบานี้ทำให้เราสามารถโหลดทดสอบเซิร์ฟเวอร์ของเราเพื่อดูว่ามันทำงานอย่างไรภายใต้ภาระงานหนัก ApacheBench สามารถจำลองคำขอออนไลน์อย่างต่อเนื่องสำหรับ URL ที่เฉพาะเจาะจง และยังสามารถจำลองคำขอออนไลน์ที่เหมือนกันหลายรายการในเวลาเดียวกันได้ ดังนั้น การใช้ ApacheBench จึงสามารถช่วยให้เราจำลองสถานการณ์ออนไลน์ที่เกิดขึ้นจริงในระหว่างการพัฒนาเว็บไซต์ และใช้ข้อมูลจำลองที่ใช้เป็น พื้นฐานสำหรับการปรับการตั้งค่าหรือขั้นตอนเซิร์ฟเวอร์
เอาต์พุตบนบรรทัดคำสั่ง:
./ab -n number_of_total_requests
-c number_of_simultaneous_requests
http://your_web_server/your_php_app.php
ตัวอย่างเช่น:
./ab -n 1000 -c 50 http://www.domain.com/myapp.php
AB จะส่งไปที่ http://www.domain.com/myapp ด้วย .php ออกคำขอพร้อมกัน 50 รายการ รวมทั้งหมด 1,000 ครั้ง
ผลการทดสอบอาจมีลักษณะดังนี้:
ซอฟต์แวร์เซิร์ฟเวอร์: Apache/2.0.16
ชื่อโฮสต์เซิร์ฟเวอร์: localhost
พอร์ตเซิร์ฟเวอร์: 80
เส้นทางเอกสาร: /myapp.php
ความยาวเอกสาร: 1311 ไบต์
ระดับการทำงานพร้อมกัน: 50
เวลาที่ใช้ในการทดสอบ: 8.794 วินาที
คำขอที่สมบูรณ์: 1,000
คำขอที่ล้มเหลว: 0
ถ่ายโอนทั้งหมด: 1754000 ไบต์
HTML ที่ถ่ายโอน: 1311000 ไบต์
คำขอต่อวินาที: 113.71
อัตราการถ่ายโอน: ได้รับ 199.45 kb/s
เวลาในการเชื่อมต่อ (มิลลิวินาที)
มินาฟกแม็กซ์
เชื่อมต่อ: 0 0 5
กำลังประมวลผล: 111 427 550
ทั้งหมด: 111 427 555
จำนวนคำขอที่ myapp.php สามารถรองรับได้ต่อวินาทีคือ 113.71 เพิ่มจำนวนคำขอและดูว่าเซิร์ฟเวอร์สามารถรองรับแรงกดดันที่มากขึ้นได้หรือไม่ คุณต้องปรับ MaxClients, ThreadsPerChild, MaxThreadsPerChild และพารามิเตอร์อื่นๆ ของ Apache ตามการเลือกโมดูล MPM ใน httpd.conf ของคุณ
หากคุณต้องการข้อมูลโดยละเอียดเพิ่มเติม โปรดดูที่ www.apache.org เพื่อดูเอกสารเชิงลึก รวมถึงโมดูลและเครื่องมือเพิ่มประสิทธิภาพของบริษัทอื่น หลังจากแก้ไข httpd.conf แล้ว ให้รีสตาร์ทเซิร์ฟเวอร์ Apache จากนั้นใช้ AB เพื่อทดสอบ คุณจะเห็นจำนวนคำขอต่อวินาทีเพิ่มขึ้นหรือลดลง
จดพารามิเตอร์ในแต่ละครั้ง และสุดท้ายเลือกการกำหนดค่าที่มีประสิทธิภาพสูงสุด
ควรชี้ให้เห็นว่านอกเหนือจาก AB แล้ว ยังมีซอฟต์แวร์ทดสอบประสิทธิภาพเซิร์ฟเวอร์ที่ยอดเยี่ยมอีกมากมาย นอกจากนี้ หากเซิร์ฟเวอร์ของคุณไม่ใช่ Apache โปรดค้นหาวิธีทดสอบของคุณเอง