preload preload preload preload

website performance testing using httperf

Introduction

httperf is a tool to measure web server  performance.

Example

$ httperf --server haproxy.com --port=80 --uri /frontend_dev.php --num-conns=25
httperf --client=0/1 --server=haproxy.com --port=80 --uri=/frontend_dev.php --send-buffer=4096 --recv-buffer=16384 --num-conns=25 --num-calls=1
Maximum connect burst length: 1

Total: connections 25 requests 25 replies 25 test-duration 0.528 s

Connection rate: 47.4 conn/s (21.1 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 4.9 avg 21.1 max 408.2 median 4.5 stddev 80.6
Connection time [ms]: connect 0.3
Connection length [replies/conn]: 1.000

Request rate: 250 req/s (3.1 ms/req)
Request size [B]: 78.0

Reply rate [replies/s]: min 250 avg 319.6 max 250 stddev 0.0 (1 samples)
Reply time [ms]: response 0.7 transfer 5.1
Reply size [B]: header 487.0 content 34774.0 footer 0.0 (total 35261.0)
Reply status: 1xx=0 2xx=25 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.07 system 0.42 (user 12.9% system 80.4% total 93.2%)
Net I/O: 2124.7 KB/s (17.4*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

In the above output you can see the line ”

Total: connections 25 requests 25 replies 25 test-duration 0.528 s

This line means httperf gave request  for 25 connection (means 25 connections) and it get replies for all the 25 request. And time took to 25 request and 25 replies is the test-duration and in the above example it took 0.528 seconds.

The bellow line means

Reply rate [replies/s]: min 250 avg 250 max 250 stddev 0.0 (1 samples)

Replay rate gives various statistics for the  reply  rate.   In  the  example  above,  the minimum  (‘‘min’’)  reply  rate was 250 replies per second, the verage (‘‘avg’’) was 250 replies per second,  and  the  maximum (‘‘max’’) rate was 250 replies per second.  The standard deviation was 0.3 replies per second.  The number enclosed in parentheses  shows  that  60  reply  rate  samples were acquired.

You can test whether the Replay rates where correct by using the argument –rate with the httperf command.

$ httperf --server haproxy.com --port=80 --uri /frontend_dev.php --num-conns=25 --rate 250

The the line Replay Time means

Reply time [ms]: response 0.7 transfer 5.1

The line labeled ‘‘Reply Time’’ gives information on how long it took for the server to respond and how long it took  to  receive the  reply. In the above example, it took on average 0.7 milliseconds between sending the first byte of the request and receiving  the first byte of the reply.  The time  to ‘‘transfer’’, or read, the reply was 5.1 milliseconds.

For more help

$ man  httperf

httperf

  • Share/Bookmark
  • Leave a Reply

    * Required
    ** Your Email is never shared