Benim ApacheBench yük testi sonucunda uzunluğuna göre başarısız istekleri

2 Cevap php

PHP, Lighttpd bir web sitesi var. Bu Centos 5 üzerinde de MySQL kullanmaktadır. Apache Bench (ab) ile aşağıda kodu ile benim PHP test ettik. Normal dışındaki uzunluğunu gösteren bazı hatalar (Başarısız İstekler) sonuçlandı. Ben PHP sonuç hep aynı tam uzunlukta olması gerektiğine kesinlikle eminim. Benim Lighttpd ve MySQL günlükleri ve hata günlüklerini inceledim ve orada herhangi bir hata yok.

Sonuç diğer uzunluğa sahip ya neden ya da ne "kötü" sonuç ne olduğunu öğrenmek için başka bir yol varken ab alır tam olarak ne denetlemek için herhangi bir yolu var mı?

Ben% 100 iyi sonuç olması gerekir çünkü olduğunu bilmek gerekir.

-bash-3.2# ab -n 500 -c 200 http://domain.com/test/index.php
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking domain.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests


Server Software:        lighttpd/1.4.20
Server Hostname:        domain.com
Server Port:            80

Document Path:          /test/index.php
Document Length:        15673 bytes

Concurrency Level:      200
Time taken for tests:   0.375862 seconds
Complete requests:      500
Failed requests:        499
   (Connect: 0, Length: 499, Exceptions: 0)
Write errors:           0
Total transferred:      7920671 bytes
HTML transferred:       7837000 bytes
Requests per second:    1330.28 [#/sec] (mean)
Time per request:       150.345 [ms] (mean)
Time per request:       0.752 [ms] (mean, across all concurrent requests)
Transfer rate:          20579.36 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   10   9.4      6      30
Processing:     0  113 133.5     16     342
Waiting:        0  111 134.3     12     341
Total:          0  123 138.9     16     370

Percentage of the requests served within a certain time (ms)
  50%     16
  66%    235
  75%    289
  80%    298
  90%    331
  95%    345
  98%    365
  99%    368
 100%    370 (longest request)

2 Cevap

Run ab ayrıntı düzeyini 2 anlam -v 2 parametresi ile. Bu yanıt başlıklarını dökümü. Talepleriniz yığın halinde kodlama kullanıyorsanız değilseniz, her yanıtın boyutunu gösteren bir "Content-Length" başlığı göreceksiniz.

gw:~$ ab -n 1 -v 2 "http://whatever.com/"

...

LOG: header received:
HTTP/1.0 200 OK
...
Content-Length: 1568399

Cevaplarınız yığın halinde kodlama kullanırsanız transferi sona kadar, sonra uzunluğu bilinmemektedir. Genellikle Yığın halinde kodlama sadece sıkıştırılmış yanıtları için kullanılır, ve ApacheBench varsayılan sıkıştırma yapmaz.

O is bunu açıklayabilir ne sebeple olursa olsun yanıtları sıkıştırılması durumunda; Sıkıştırılmış uzunluğu içeriğine bağlıdır.

Ayrıca curl -i ile ve sıkıştırma olmadan tek isteğine yanıt başlıklarını görmek için --compress seçeneğini kullanabilirsiniz.

Use tcpdump

Açık Adet Adet 2 Terminal / kabuk pencere ya da sadece ekranı kullanabilirsiniz.

İlk pencerede, kullanım tcpdump bir dosyaya / sizin NIC (eth0) iletim verilerini yakalamak için:

sudo tcpdump -s 9999 -i eth0 -w myfile.txt

İkinci pencerede, ab komutu kapalı yangın:

ab -n 500 -c 200 http://domain.com/test/index.php

Hepsi bittiğinde, dizeleri ve grep ile dosyayı ayrıştırmak:

strings myfile2.txt | grep -C 3 "200 OK"

Sen sonuçları eyeballing veya grep'ing oradan tüm veri bölümlerini izlemek gerekir.