httperf 은 웹서버에 부하를 발생 시켜 성능을 측정하는 도구입니다.
- 설치
[root@apm ]# tar zxvf httperf-0.9.0.tar.gz
[root@apm ]# cd httperf-0.9.0
[root@apm httperf-0.9.0]# ./configure
[root@apm httperf-0.9.0]# make && make install
- 옵션
[root@apm httperf-0.9.0]# httperf --help
Usage: httperf [-hdvV] [--add-header S] [--burst-length N] [--client N/N]
[--close-with-reset] [--debug N] [--failure-status N]
[--help] [--hog] [--http-version S] [--max-connections N]
[--max-piped-calls N] [--method S] [--no-host-hdr]
[--num-calls N] [--num-conns N] [--period [d|u|e]T1[,T2]]
[--port N] [--print-reply [header|body]] [--print-request [header|body]]
[--rate X] [--recv-buffer N] [--retry-on-failure] [--send-buffer N]
[--server S] [--server-name S] [--session-cookies]
[--ssl] [--ssl-ciphers L] [--ssl-no-reuse]
[--think-timeout X] [--timeout X] [--uri S] [--verbose] [--version]
[--wlog y|n,file] [--wsess N,N,X] [--wsesslog N,X,file]
[--wset N,X]
[root@apm httperf-0.9.0]#
- 실행 예제
[root@apm httperf-0.9.0]# httperf --server=localhost --port=80 --num-conns=80000 --rate=100 --timeout=5 --think-timeout=5 --hog
httperf --hog --think-timeout=5 --timeout=5 --client=0/1 --server=localhost --port=80 --uri=/ --rate=50 --send-buffer=4096 --recv-buffer=16384 --num-conns=500 --num-calls=1
httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE
Maximum connect burst length: 1
Total: connections 500 requests 500 replies 500 test-duration 9.981 s
Connection rate: 50.1 conn/s (20.0 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 0.1 avg 0.7 max 4.6 median 0.5 stddev 0.9
Connection time [ms]: connect 0.0
Connection length [replies/conn]: 1.000
Request rate: 50.1 req/s (20.0 ms/req)
Request size [B]: 62.0
Reply rate [replies/s]: min 50.0 avg 50.0 max 50.0 stddev 0.0 (1 samples)
Reply time [ms]: response 0.7 transfer 0.0
Reply size [B]: header 235.0 content 45.0 footer 0.0 (total 280.0)
Reply status: 1xx=0 2xx=500 3xx=0 4xx=0 5xx=0
CPU time [s]: user 1.29 system 8.69 (user 12.9% system 87.0% total 99.9%)
Net I/O: 16.7 KB/s (0.1*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
[root@apm httperf-0.9.0]#
- 설명
httperf --server=localhost --port=80 --num-conns=800 --rate=100 --timeout=5 --think-timeout=5 --hog
localhost 주소의 서비에 80번 포트로 1초에 100개씩 800개의 접속을 시도 합니다. 또, 5초간 요청에 대한 응답이 없을 경우 timeout error로 처리 합니다.
웹 서버가 정상 요청 처리를 진행 할 경우 10초 후 결과가 확인 됩니다.
감사합니다.