หากคุณมีการตั้งค่าพร้อมกันที่ 1 จะไม่มีความแตกต่างระหว่างทั้งสอง มันเริ่มต้นขึ้นเมื่อคุณมีคำขอมากกว่า 1 คำขอพร้อมกัน
ลองดูตัวอย่างของสิ่งที่ฉันทำกับฉันlocalhost
:
ab -c 1 -n 1000 http://localhost/
จะให้:
Time taken for tests: 3.912 seconds
Time per request: 3.912 [ms] (mean)
Time per request: 3.912 [ms] (mean, across all concurrent requests)
ซึ่งหมายความว่าจำเป็นต้องใช้ 3.912 วินาทีเพื่อดำเนินการ 1,000 คำร้องขอทีละรายการ ดังนั้นคำร้องขอเดียวจึงจำเป็นต้องใช้ 3.912 วินาที / 1000 = 3.912 ms โดยเฉลี่ย
ทีนี้ลองเพิ่มระดับการทำงานพร้อมกันสักหน่อย:
ab -c 10 -n 1000 http://localhost/
Time taken for tests: 0.730 seconds
Time per request: 7.303 [ms] (mean)
Time per request: 0.730 [ms] (mean, across all concurrent requests)
เวลานี้แทน 3.912 วินาทีเราต้องการเพียง 0.730 วินาทีเพื่อให้งานสำเร็จ เราได้ดำเนินการ 1,000 คำขอใน 0.730 วินาทีดังนั้นหนึ่งคำขอจะใช้เวลาโดยเฉลี่ย 0.730 วินาที / 1,000 = 0.730 ms (บรรทัดสุดท้าย) แต่สถานการณ์แตกต่างกันเล็กน้อยขณะนี้เรากำลังดำเนินการ 10 คำขอพร้อมกัน ดังนั้นในความเป็นจริงจำนวนของเราที่นี่ไม่ได้สะท้อนให้เห็นถึงเวลาจริงก็จะใช้เวลาสำหรับการร้องขอหนึ่งที่จะเสร็จสมบูรณ์ 0.730 ms * 10 (จำนวนการร้องขอพร้อมกัน) = 7.303 ms นั่นคือเวลาที่ใช้โดยเฉลี่ยสำหรับการร้องขอครั้งเดียวเพื่อให้เสร็จสมบูรณ์หากมีการดำเนินการไม่พร้อมกัน (หรือมากกว่าอย่างถูกต้องในลักษณะแยกที่ระดับการเกิดพร้อมกันในปัจจุบัน)
หมายเลขสุดท้ายที่คุณเห็น (0.730 มิลลิวินาที) ใช้เพื่อบอกว่าเวลารวมทั้งหมดจะเพิ่มขึ้นเท่าใดหากคุณเพิ่ม 1 คำขอ ( -n 1001
) โดยใช้ระดับการทำงานพร้อมกันในปัจจุบัน-c 10
(อย่างน้อยก็ในทางทฤษฎี)
7.303 ms ให้ภาพรวมของระยะเวลาที่คำขอแยกเดี่ยวจะทำงาน
การเปลี่ยนแปลงที่คุณเห็นระหว่างตัวอย่าง-c 1
และ-c 10
:
[-c 1 ]: Time per request: 3.912 [ms] (mean)
[-c 10]: Time per request: 7.303 [ms] (mean)
-c 1
หมายความว่าคำขอเดียวไม่ทำงานได้เร็วขึ้นถ้ามันเป็นเพียงคนเดียวที่ถูกประหารชีวิต หากมีหลายคำขอที่-c 10
แย่งชิงทรัพยากรคำขอเดียวจะใช้เวลานานกว่าจะเสร็จสมบูรณ์ แต่ถ้าคุณคำนึงถึงความจริงที่ว่าคุณกำลังทำ 10 คำขอในเวลาเดียวกันใน 7.303 ms นี้คุณจัดการกับ 10 คำขอแทน 1
ดังนั้นการวัดความล่าช้าสำหรับคำร้องขอเดียว - 7.303 ms จึงมีประโยชน์มากกว่า แต่เป็นการวัดประสิทธิภาพ - 0.730 ms มีความหมายมากกว่า อันที่จริงแล้วเป็น 0.730 ms <3.912 ms คุณจะเห็นว่าคุณจะสามารถตอบสนองการร้องขอต่อวินาทีได้มากขึ้นโดยรวมหากคุณอนุญาตให้มี 10 คำขอพร้อมกัน