Apache Bench - Çıktıların Karşılaştırılması

Bu bölümde, bayraklı ve bayraksız çıktıları karşılaştıracağız. Uygun bayrakların kullanımının web uygulamanızın performansını nasıl artırabileceğini görelim. Bundan önce, başvurunuzun basit olması durumunda farkı fark etmeyebileceğinizi anlamamız gerekir. Basit uygulamamızda olduğu gibi, bayraklı ve bayraksız. Sonra aynı testi yapacağızhttps://www.apache.org/ URL ve farkı görün.

Uygulamamızı Bayraksız Test Etmek

Bu bölümde, uygulamamızı bayraklar olmadan nasıl test edeceğimizi anlayacağız.

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

Çıktı

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)

Uygulamamızı Bayraklarla Test Etmek

Bu bölümde, uygulamamızı bayraklarla nasıl test edeceğimizi anlayacağız.

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

Çıktı

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

Çıktı istatistikleri arasında çok fazla fark olmadığını basitçe not edebiliriz.

Apache Kuruluş Web Sitesini İşaretsiz Test Etme

Şimdi Apache Organizasyon Web sitesini işaretler olmadan nasıl test edeceğimize bakalım.

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

Çıktı

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)

Apache Kuruluş Web Sitesini Bayraklarla Test Etme

Şimdi Apache Organizasyon Web Sitesini Flags ile test edelim.

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

Çıktı

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

Bayraklar kullanımıyla saniye başına talebin nasıl arttığını kolayca not edebilirsiniz. Mevcut durumda, özellikle kullanımından kaynaklanmaktadır-H "Accept-Encoding: gzip, deflate çünkü bu bayrak Apache sunucusuna isteklere gzipped biçim.

Apache Bench Sonuçlarının Değerlendirilmesi

Apache Bench sonuçları söz konusu olduğunda birkaç önemli noktanın dikkate alınması gerekir. Bu, uygulamamızdaki darboğazları gidermek ve performansını artırmak için genel stratejimizi tasarlamamıza yardımcı olacaktır.

Saniyedeki Taleplere ihtiyacımız var. Bu bize web sunucusu kurulumumuzun ne kadar iyi çalıştığına dair bir fikir verir; sayı ne kadar büyükse performans o kadar iyi olur. Ardından Bağlantı Süreleri (ms) ve sunulan isteklerin Yüzdesi gelir. Bu ölçümleri istediğiniz performansa göre değiştirmek için web sunucunuzun ayarlarını değiştirmeniz gerekebilir.

Apache'nin veya kullanılan web sunucusu hata günlüklerinde veya (genel) günlüklerinde hata olup olmadığını kontrol edin. Yükünüzü artıracağınız için işler boğulmaya başlayacak: bellek sorunları ortaya çıkmaya başlayacak. Bir çok python komut dosyası, eşzamanlılık düşünülerek yazılmadıysa çökmeye başlayacaktır.

Web sunucunuzun çöktüğü ve / veya zaman aşımına uğrayan kritik eşzamanlılık değerinin ne olduğunu bulmanız mı gerekiyor? Normalde bu, oldukça yüksek bir eşzamanlılık düzeyinde gerçekleşmelidir. Bu değer düşükse bir şeyler yanlıştır ve bu ayarları daha düşük / daha yüksek yapmanız gerekir.

Sonuç

Bu eğitimde Apache Bench'in herhangi bir web sitesini veya web uygulamasını yüklemek için nasıl kullanılabileceğini öğrendik. Apache Bench, web uygulama sunucusu kurulumunuzun nasıl iyileştirilmesi gerektiğini belirlemek, darboğazları azaltmak ve performansı artırmak için çok değerli bir araç olabilir. Artık Apache Bench'in temel kullanımına aşina olduğunuza göre, çeşitli senaryolarda uygulamalarınızın performansını ölçmek için yeni test planları oluşturarak başlayabilirsiniz.