Apache Bench - Perbandingan Output

Dalam bab ini, kita akan membandingkan output dengan dan tanpa flag. Mari kita lihat bagaimana penggunaan tanda yang tepat dapat meningkatkan kinerja aplikasi web Anda. Sebelumnya, kita perlu memahami bagaimana jika aplikasi Anda sederhana maka Anda mungkin tidak melihat perbedaannya. Seperti halnya dengan aplikasi sederhana kita, dengan flag dan tanpa flag. Kemudian kami akan melakukan pengujian yang sama denganhttps://www.apache.org/ URL, dan lihat perbedaannya.

Menguji Aplikasi kami tanpa Bendera

Di bagian ini, kita akan memahami cara menguji aplikasi kita tanpa flag.

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

Keluaran

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)

Menguji Aplikasi kami dengan Bendera

Di bagian ini, kita akan memahami bagaimana menguji aplikasi kita dengan flag.

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

Keluaran

...
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)

Kami hanya dapat mencatat bahwa tidak banyak perbedaan antara statistik keluaran.

Menguji Situs Web Organisasi Apache tanpa Bendera

Sekarang mari kita lihat cara menguji Situs Web Organisasi Apache tanpa tanda.

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

Keluaran

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)

Menguji Situs Web Organisasi Apache dengan Bendera

Mari kita sekarang menguji Situs Web Organisasi Apache dengan Bendera.

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

Keluaran

...
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)

Anda dapat dengan mudah mencatat bagaimana permintaan per detik meningkat dengan penggunaan flag. Dalam kasus instan, ini terutama karena penggunaan-H "Accept-Encoding: gzip, deflate karena tanda ini memberi tahu server Apache untuk melayani permintaan dalam gzipped format.

Mempertimbangkan Hasil Apache Bench

Beberapa poin penting perlu dipertimbangkan dalam hal hasil Apache Bench. Ini akan membantu kami merancang keseluruhan strategi kami untuk menghilangkan kemacetan dalam aplikasi kami dan meningkatkan kinerjanya.

Kita perlu Permintaan Per Detik. Ini memberi kita gambaran tentang seberapa baik pengaturan server web kita bekerja; semakin besar angkanya, semakin baik kinerjanya. Kemudian datang waktu koneksi (ms) dan persentase permintaan yang dilayani. Anda mungkin harus mengubah pengaturan server web Anda untuk mengubah metrik ini ke kinerja yang Anda inginkan.

Periksa apakah ada kesalahan di Apache atau log kesalahan server web bekas atau log (umum). Saat Anda menambah beban, semuanya akan mulai tersendat: masalah memori akan mulai muncul. Banyak skrip python akan mulai macet jika tidak ditulis dengan mempertimbangkan konkurensi.

Anda perlu mencari tahu apa nilai konkurensi kritis yang di atasnya server web Anda mogok dan / atau waktu habis? Biasanya ini harus terjadi pada level konkurensi yang cukup tinggi. Jika nilai ini rendah, ada yang salah dan Anda perlu menyesuaikan pengaturan ini lebih rendah / lebih tinggi.

Kesimpulan

Dalam tutorial ini kita mempelajari bagaimana Apache Bench dapat digunakan untuk menguji beban situs web atau aplikasi web apa pun. Apache Bench dapat menjadi alat yang sangat berharga untuk menentukan bagaimana penyiapan server aplikasi web Anda harus ditingkatkan, untuk mengurangi kemacetan dan meningkatkan kinerja. Sekarang setelah Anda terbiasa dengan penggunaan dasar Apache Bench, Anda dapat mulai dengan membuat rencana pengujian baru untuk mengukur kinerja aplikasi Anda dalam berbagai skenario.