Httperf kasutamine

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

httperf http://www.hpl.hp.com/research/linux/httperf/ ...

Käesolevas tekstis kirjeldatakse httperf programmi kasutamist ning asjakohased operatsioonisüsteemi osas muudatusi. Ei käsitleta veebiserveri tuunimist.

Mõisted

  • num-conns (tcp ühendused) - hea jälgida nt selliselt
# tcpdump -nli eth0 'tcp[13] & 2 != 0' and dst 192.168.110.149 and port 80 | nl
# timeout 5 tcpdump -nli eth0 'tcp[13] & 2 != 0' and dst 192.168.110.149 and port 80 | wc -l
# tail -f /var/log/apache2/test-dw.loomaaed.tartu.ee-access.log | nl
  • num-calls - ühe tcp ühenduse sees esitatud http pärigud
  • A session consists of a sequence of bursts which are spaced out by the user think-time.

Koormustest

  • num-conn ja num-calls kasutamine
$ httperf --hog --server test-dw.loomaaed.tartu.ee --uri=/doku.php --num-conn 20 --num-calls 4 --ra 5 --timeout 5 
  httperf --hog --timeout=5 --client=0/1 --server=test-dw.loomaaed.tartu.ee --port=80 --uri=/doku.php --rate=5 \
  --send-buffer=4096 --recv-buffer=16384 --num-conns=20 --num-calls=4
Maximum connect burst length: 1

Total: connections 20 requests 80 replies 80 test-duration 4.734 s

Connection rate: 4.2 conn/s (236.7 ms/conn, <=6 concurrent connections)
Connection time [ms]: min 540.0 avg 860.1 max 1121.3 median 894.5 stddev 161.7
Connection time [ms]: connect 49.0
Connection length [replies/conn]: 4.000

Request rate: 16.9 req/s (59.2 ms/req)
Request size [B]: 81.0

Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)
Reply time [ms]: response 134.8 transfer 68.0
Reply size [B]: header 602.0 content 8951.0 footer 2.0 (total 9555.0)
Reply status: 1xx=0 2xx=80 3xx=0 4xx=0 5xx=0
 
CPU time [s]: user 0.97 system 3.75 (user 20.5% system 79.2% total 99.6%)
Net I/O: 159.0 KB/s (1.3*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
  • wlog kasutamine
$ httperf --hog --server test-dw.loomaaed.tartu.ee --wlog=y,p.log --num-conn 20 --num-calls 4 --ra 5 --timeout 5

kus p.log sisu moodustatakse skriptiga

$ cat p.pl
#!/usr/bin/perl

open (fh, 'src');
@read=<fh>;
foreach $rida(@read) {
  chomp $rida;
  print "$rida\0";
}

ja src fail sisaldab

/doku.php
/lib/exe/css.php?s=all&t=monobook&tseed=1291763384
/lib/exe/css.php?s=print&t=monobook&tseed=1291763384
/lib/exe/css.php?t=monobook&tseed=1291763384
/lib/exe/js.php?tseed=1291763384
/lib/tpl/monobook/static/3rd/monobook/headbg.jpg
/lib/tpl/monobook/static/img/button-rss.png
/lib/tpl/monobook/static/img/button-donate.gif
/lib/tpl/monobook/static/img/button-monobook.png
/lib/tpl/monobook/static/img/button-dw.png
/lib/tpl/monobook/static/3rd/dokuwiki/logo.png
/lib/tpl/monobook/static/3rd/monobook/external.png
/lib/tpl/monobook/static/3rd/monobook/bullet.gif
/lib/tpl/monobook/static/3rd/monobook/user.gif
/lib/tpl/monobook/user/button-xhtml.png
/lib/exe/indexer.php?id=start&1291794466
$ perl p.pl > p.log
  • wsess kasutamine
$ httperf --hog --server test-dw.loomaaed.tartu.ee --uri=/doku.php --wsess=40,16,6 --burst-length 4 --ra 4
  httperf --hog --client=0/1 --server=test-dw.loomaaed.tartu.ee --port=80 --uri=/doku.php --rate=4 \
  --send-buffer=4096 --recv-buffer=16384 --wsess=40,16,6.000 --burst-length=4

httperf tuunimine

Operatsioonisüsteem

# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
# echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

ning

# ulimit -n 50000

httperf FD_SETSIZE kompileerimine

Kui suurendada ulimit -n väärtust üle 1024, siis saab sellise teate

httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE

Selle ületamiseks tuleb kompileerimisel kasutada suuremat FD_SETSIZE'i. Debian v. 7 64 bit keskkonnas tuleb leida fail

/usr/include/x86_64-linux-gnu/bits/typesizes.h 

Debian v. 6 64 bit keskkonnas tuleb leida fail

/usr/include/bits/typesizes.h

ning muuta seal lõpus FD_SETSIZE suuremaks, nt

< #define __FD_SETSIZE            1024
> #define __FD_SETSIZE            1024000

Seejärel kompileerida httperf tavalisel viisil

# apt-get build-dep httperf
# cd /usr/src
# apt-get source httperf
# apt-get install fakeroot
$ dpkg-buildpackage -rfakeroot
# dpkg -i httperf_0.9.0-2_amd64.deb

Tulemusena asendatakse paketihaldusest juba paigaldatud tarkvara kompileeritud variandiga.

Seejärel on ootuspärane saada ca 15k vastust sekundis

# httperf --hog --server test-dw.loomaaed.tartu.ee --uri=/ --num-conn 2000000 --num-calls 5 --ra 15000

Märkused