Apache Bench - So sánh kết quả đầu ra

Trong chương này, chúng ta sẽ so sánh các kết quả đầu ra có và không có cờ. Hãy để chúng tôi xem việc sử dụng cờ thích hợp có thể tăng hiệu suất của ứng dụng web của bạn như thế nào. Trước đó, chúng tôi cần hiểu làm thế nào nếu ứng dụng của bạn đơn giản thì bạn có thể không nhận thấy sự khác biệt. Như trường hợp của ứng dụng đơn giản của chúng tôi, có cờ và không có cờ. Sau đó, chúng tôi sẽ thực hiện thử nghiệm tương tự vớihttps://www.apache.org/ URL và xem sự khác biệt.

Kiểm tra ứng dụng của chúng tôi mà không có cờ

Trong phần này, chúng ta sẽ hiểu cách kiểm tra ứng dụng của mình mà không có cờ.

$ ab -n 100 -c 10 http://127.0.0.1:8000/

Đầu ra

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:      10
Time taken for tests:   0.244 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:    2208.77 [#/sec] (mean)
Time per request:       4.527 [ms] (mean)
Time per request:       0.453 [ms] (mean, across all concurrent requests)
Transfer rate:          597.49 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    2   0.7      2       3
Processing:     0    2   0.7      2       4
Waiting:        0    2   1.0      2       3
Total:          4    4   0.3      4       5

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      4
  75%      5
  80%      5
  90%      5
  95%      5
  98%      5
  99%      5
 100%      5 (longest request)

Kiểm tra ứng dụng của chúng tôi với Cờ

Trong phần này, chúng ta sẽ hiểu cách kiểm tra ứng dụng của chúng ta với các cờ.

$ ab -l -r -n 100 -c 10 -k -H "Accept-Encoding: gzip, deflate"  http://127.0.0.1:8000/

Đầu ra

...
Requests per second:    2277.07 [#/sec] (mean)
Time per request:       4.392 [ms] (mean)
Time per request:       0.439 [ms] (mean, across all concurrent requests)
Transfer rate:          615.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    2   0.7      2       3
Processing:     0    2   0.7      2       4
Waiting:        0    2   1.0      2       3
Total:          4    4   0.2      4       5

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      4
  75%      4
  80%      4
  90%      5
  95%      5
  98%      5
  99%      5
 100%      5 (longest request)

Chúng ta chỉ có thể lưu ý rằng không có nhiều sự khác biệt giữa các thống kê đầu ra.

Kiểm tra trang web của tổ chức Apache mà không có cờ

Bây giờ chúng ta hãy xem cách kiểm tra Trang web của Tổ chức Apache không có cờ.

$ ab -n 100 -c 10 http://www.apache.org/

Đầu ra

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 www.apache.org (be patient).....done

Server Software:        Apache/2.4.7
Server Hostname:        www.apache.org
Server Port:            80

Document Path:          /
Document Length:        58433 bytes

Concurrency Level:      10
Time taken for tests:   1.498 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      5877500 bytes
HTML transferred:       5843300 bytes
Requests per second:    66.74 [#/sec] (mean)
Time per request:       149.840 [ms] (mean)
Time per request:       14.984 [ms] (mean, across all concurrent requests)
Transfer rate:          3830.58 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       12  110 295.2     12    1012
Processing:    37   38   0.5     38      39
Waiting:       12   13   0.3     13      15
Total:         49  147 295.4     50    1051

Percentage of the requests served within a certain time (ms)
  50%     50
  66%     50
  75%     50
  80%     50
  90%    816
  95%   1050
  98%   1051
  99%   1051
 100%   1051 (longest request)

Kiểm tra trang web của tổ chức Apache với cờ

Bây giờ chúng ta hãy kiểm tra Trang web của Tổ chức Apache bằng Cờ.

$ ab -l -r -n 100 -c 10 -k -H "Accept-Encoding: gzip, deflate"  http://www.apache.org/

Đầu ra

...
Document Length:        Variable

Concurrency Level:      10
Time taken for tests:   0.357 seconds
Complete requests:      100
Failed requests:        0
Keep-Alive requests:    100
Total transferred:      1358510 bytes
HTML transferred:       1317700 bytes
Requests per second:    280.28 [#/sec] (mean)
Time per request:       35.678 [ms] (mean)
Time per request:       3.568 [ms] (mean, across all concurrent requests)
Transfer rate:          3718.41 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   3.7      0      12
Processing:    14   17  21.3     15     227
Waiting:       14   17  21.3     14     227
Total:         14   18  21.5     15     227

Percentage of the requests served within a certain time (ms)
  50%     15
  66%     15
  75%     15
  80%     15
  90%     27
  95%     28
  98%     29
  99%    227
 100%    227 (longest request)

Bạn có thể chỉ cần lưu ý cách yêu cầu mỗi giây tăng lên khi sử dụng cờ. Trong trường hợp tức thời, nó đặc biệt là do sử dụng-H "Accept-Encoding: gzip, deflate vì cờ này yêu cầu máy chủ Apache phân phát các yêu cầu trong gzipped định dạng.

Xem xét kết quả của Apache Bench

Một số điểm quan trọng cần được xem xét khi nói đến kết quả Apache Bench. Điều này sẽ giúp chúng tôi thiết kế chiến lược tổng thể để loại bỏ các nút thắt trong ứng dụng và cải thiện hiệu suất của ứng dụng.

Chúng tôi cần yêu cầu mỗi giây. Điều này cho chúng tôi một ý tưởng về cách thiết lập máy chủ web của chúng tôi đang hoạt động; số càng lớn thì hiệu suất càng tốt. Sau đó đến Thời gian kết nối (mili giây) và Phần trăm yêu cầu được phục vụ. Bạn có thể phải điều chỉnh cài đặt của máy chủ web của mình để thay đổi các chỉ số này thành hiệu suất mong muốn của bạn.

Kiểm tra xem có lỗi trong nhật ký lỗi của Apache hoặc máy chủ web đã sử dụng hoặc nhật ký (chung) hay không. Khi bạn tăng tải, mọi thứ sẽ bắt đầu nghẹt thở: các vấn đề về bộ nhớ sẽ bắt đầu xuất hiện. Rất nhiều tập lệnh python sẽ bắt đầu gặp sự cố nếu chúng không được viết với tính chất đồng thời.

Bạn cần tìm hiểu giá trị đồng thời quan trọng mà trên đó máy chủ web của bạn gặp sự cố và / hoặc hết thời gian là gì? Thông thường điều này sẽ xảy ra ở mức đồng thời khá cao. Nếu giá trị này thấp, có gì đó không ổn và bạn cần điều chỉnh các cài đặt này thấp hơn / cao hơn.

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu cách Apache Bench có thể được sử dụng để tải thử nghiệm bất kỳ trang web hoặc ứng dụng web nào. Apache Bench có thể là một công cụ rất có giá trị để xác định cách thiết lập máy chủ ứng dụng web của bạn nên được cải thiện, nhằm giảm tắc nghẽn và tăng hiệu suất. Bây giờ bạn đã quen với cách sử dụng cơ bản của Apache Bench, bạn có thể bắt đầu bằng cách tạo các kế hoạch thử nghiệm mới để đo lường hiệu suất của các ứng dụng của bạn trong các tình huống khác nhau.