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