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.