กรณีทดสอบตามลำดับสำหรับไดนามิกเพจ

ในบทนี้เราจะอธิบายชุดต่างๆของ -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)

ตอนนี้เราได้เรียนรู้วิธีเพิ่มการโหลดทีละน้อยบนเว็บไซต์และทดสอบประสิทธิภาพ