กรณีทดสอบตามลำดับสำหรับไดนามิกเพจ
ในบทนี้เราจะอธิบายชุดต่างๆของ -n และ -c ด้วยแฟล็กที่สำคัญเพื่อค่อยๆเพิ่มภาระในเว็บเซิร์ฟเวอร์ของคุณ
คุณควรมุ่งเน้นไปที่การเปลี่ยนแปลงเมตริกต่อไปนี้เป็นหลักเมื่อคุณเพิ่มภาระ -
- คำขอต่อวินาที
- เวลาในการเชื่อมต่อ (มิลลิวินาที)
- เปอร์เซ็นต์ของคำขอที่ให้บริการภายในช่วงเวลาหนึ่ง (มิลลิวินาที)
นอกจากนี้คุณควรสังเกตค่าขีด จำกัด เมื่อเซิร์ฟเวอร์เริ่มติดขัดและคุณเริ่มได้รับคำขอที่ล้มเหลว
ผู้ใช้พร้อมกัน 1 คนที่มีการเข้าชม 100 หน้า
ให้เราโหลดเพจตามลำดับ 100 ครั้งโดยผู้ใช้คนเดียว -
$ ab -l -r -n 100 -c 1 -k -H "Accept-Encoding: gzip, deflate" http://127.0.0.1:8000/
เอาต์พุต
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient).....done
Server Software: Rocket
Server Hostname: 127.0.0.1
Server Port: 8000
Document Path: /
Document Length: Variable
Concurrency Level: 1
Time taken for tests: 0.045 seconds
Complete requests: 100
Failed requests: 0
Non-2xx responses: 100
Keep-Alive requests: 0
Total transferred: 27700 bytes
HTML transferred: 6600 bytes
Requests per second: 2206.24 [#/sec] (mean)
Time per request: 0.453 [ms] (mean)
Time per request: 0.453 [ms] (mean, across all concurrent requests)
Transfer rate: 596.80 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 0 0 0.0 0 0
Waiting: 0 0 0.0 0 0
Total: 0 0 0.0 0 1
Percentage of the requests served within a certain time (ms)
50% 0
66% 0
75% 0
80% 0
90% 1
95% 1
98% 1
99% 1
100% 1 (longest request)
ผู้ใช้พร้อมกัน 5 คนแต่ละคนมีการเข้าชม 10 หน้า
กรณีนี้สอดคล้องกับการโหลดสูงสุดบนเว็บไซต์ที่มีผู้เข้าชมประมาณ 50,000+ ครั้งต่อเดือน
$ ab -l -r -n 10 -c 5 -k -H "Accept-Encoding: gzip, deflate" http://127.0.0.1:8000/
ในผลลัพธ์ที่ตามมาเราจะละเว้นส่วนหัวทั่วไปเพื่อความชัดเจน
เอาต์พุต
...
Requests per second: 2009.24 [#/sec] (mean)
Time per request: 2.488 [ms] (mean)
Time per request: 0.498 [ms] (mean, across all concurrent requests)
Transfer rate: 543.52 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.5 1 2
Processing: 0 1 0.5 1 2
Waiting: 0 1 0.5 1 1
Total: 2 2 0.4 3 3
ERROR: The median and mean for the total time are more than twice the standard
deviation apart. These results are NOT reliable.
Percentage of the requests served within a certain time (ms)
50% 3
66% 3
75% 3
80% 3
90% 3
95% 3
98% 3
99% 3
100% 3 (longest request)
ผู้ใช้พร้อมกัน 10 คนแต่ละคนมีการเข้าชม 10 หน้า
การทดสอบนี้สอดคล้องกับการโหลดหน้าเว็บ 100 ครั้งโดยผู้ใช้ 10 คนที่แตกต่างกันโดยผู้ใช้แต่ละคนกำลังโหลดหน้าต่อเนื่อง 10 หน้า
$ ab -r -n 10 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://127.0.0.1:8000/
เอาต์พุต
...
Requests per second: 2225.68 [#/sec] (mean)
Time per request: 4.493 [ms] (mean)
Time per request: 0.449 [ms] (mean, across all concurrent requests)
Transfer rate: 602.07 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 2 0.7 2 3
Processing: 0 2 1.0 2 3
Waiting: 0 1 1.0 2 3
Total: 4 4 0.3 4 4
WARNING: The median and mean for the waiting time are not within a normal deviation
These results are probably not that reliable.
Percentage of the requests served within a certain time (ms)
50% 4
66% 4
75% 4
80% 4
90% 4
95% 4
98% 4
99% 4
100% 4 (longest request)
ผู้ใช้พร้อมกัน 20 คนแต่ละคนมีการเข้าชม 20 หน้า
การทดสอบนี้สอดคล้องกับการโหลดหน้าเว็บ 400 หน้าโดยผู้ใช้งานพร้อมกัน 20 คนผู้ใช้แต่ละคนกำลังโหลดหน้าต่อเนื่อง 20 หน้า
$ ab -r -n 20 -c 20 -k -H “Accept-Encoding: gzip, deflate” http://127.0.0.1:8000/
เอาต์พุต
...
Requests per second: 1619.96 [#/sec] (mean)
Time per request: 12.346 [ms] (mean)
Time per request: 0.617 [ms] (mean, across all concurrent requests)
Transfer rate: 438.21 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 6 2.3 6 10
Processing: 1 5 2.9 5 10
Waiting: 0 5 2.9 5 9
Total: 10 11 0.6 11 12
Percentage of the requests served within a certain time (ms)
50% 11
66% 11
75% 12
80% 12
90% 12
95% 12
98% 12
99% 12
100% 12 (longest request)
ผู้ใช้งานพร้อมกัน 30 คนแต่ละคนมีการเข้าชม 30 หน้า
การทดสอบนี้สอดคล้องกับการโหลดหน้าเว็บ 900 หน้าโดยผู้ใช้ที่แตกต่างกัน 30 คนโดยผู้ใช้แต่ละคนกำลังโหลดหน้าต่อเนื่อง 30 หน้า
$ ab -r -n 30 -c 30 -k -H "Accept-Encoding: gzip, deflate" http://127.0.0.1:8000/
เอาต์พุต
...
Requests per second: 2283.45 [#/sec] (mean)
Time per request: 13.138 [ms] (mean)
Time per request: 0.438 [ms] (mean, across all concurrent requests)
Transfer rate: 617.69 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 6 2.7 6 11
Processing: 1 6 3.1 6 11
Waiting: 0 5 3.2 5 10
Total: 11 12 0.5 12 13
Percentage of the requests served within a certain time (ms)
50% 12
66% 12
75% 12
80% 12
90% 13
95% 13
98% 13
99% 13
100% 13 (longest request)
ตอนนี้เราได้เรียนรู้วิธีเพิ่มการโหลดทีละน้อยบนเว็บไซต์และทดสอบประสิทธิภาพ