How to: Measure the Lateceny and Throughput of Apache / Lighttpd / IIS Webserver
Q. I can measure network throughput and packet loss using standard UNIX / Linux command line utilities. How do I find out the lateceny and throughput of a web server like Apache under Linux?
A. You need to use the program called httping. It allows you to measure the latency of a webserver and the throughput.
Task: Ping the webserver on host www.cyberciti.biz
Use the following command for measuring the latency. Press CTRL+c to exit the program. It will display a summary of what was measured.
$ httping -g http://www.cyberciti.biz
Output:
PING www.cyberciti.biz:80 (http://www.cyberciti.biz): connected to www.cyberciti.biz:80, seq=0 time=981.08 ms connected to www.cyberciti.biz:80, seq=1 time=709.92 ms connected to www.cyberciti.biz:80, seq=2 time=1072.02 ms connected to www.cyberciti.biz:80, seq=3 time=903.81 ms connected to www.cyberciti.biz:80, seq=4 time=607.84 ms connected to www.cyberciti.biz:80, seq=5 time=660.01 ms connected to www.cyberciti.biz:80, seq=6 time=730.12 ms connected to www.cyberciti.biz:80, seq=7 time=781.49 ms
The -g url option use selects the url to probe / ping. You can also specify the port with -p port option:
$ httping -g http://www.cyberciti.biz -p 81
You can also connect using SSL, for this to work you need to give a https url or a 443 portnumber:
$ httping -l -g https://www.cyberciti.biz
OR
$ httping -g http://www.cyberciti.biz -p 443
Task: Measure throughput of a webserver
The -G option force GET request instead of a HEAD request - this means that also the complete page/file must be transferred. You also need to pass the -b option with -G option to get the transferspeed (in KB/s).
$ httping -Gbg http://www.cyberciti.biz/
Output:
PING www.cyberciti.biz:80 (http://www.cyberciti.biz/): connected to www.cyberciti.biz:80, seq=0 time=1738.39 ms 22KB/s connected to www.cyberciti.biz:80, seq=1 time=1650.19 ms 20KB/s connected to www.cyberciti.biz:80, seq=2 time=1759.65 ms 17KB/s connected to www.cyberciti.biz:80, seq=3 time=1589.98 ms 21KB/s connected to www.cyberciti.biz:80, seq=4 time=3709.87 ms 6KB/s connected to www.cyberciti.biz:80, seq=5 time=3329.69 ms 7KB/s .... ..... --- http://www.cyberciti.biz/ ping statistics --- 53 connects, 53 ok, 0.00% failed round-trip min/avg/max = 1451.9/2013.6/11656.0 ms Transfer speed: min/avg/max = 6/19/24 KB
Please note above in above command you’re no longer measuring the latency!
You can also pass -X option with -G to show the amount of data transferred (excluding the headers):
$ httping -XGbg http://www.cyberciti.biz/
Output:
PING www.cyberciti.biz:80 (http://www.cyberciti.biz/): connected to www.cyberciti.biz:80, seq=0 time=1576.11 ms 22KB/s 19KB connected to www.cyberciti.biz:80, seq=1 time=2620.26 ms 9KB/s 19KB connected to www.cyberciti.biz:80, seq=2 time=1507.69 ms 23KB/s 19KB connected to www.cyberciti.biz:80, seq=3 time=1522.08 ms 24KB/s 19KB connected to www.cyberciti.biz:80, seq=4 time=1533.68 ms 23KB/s 19KB connected to www.cyberciti.biz:80, seq=5 time=1581.92 ms 21KB/s 19KB connected to www.cyberciti.biz:80, seq=6 time=1512.06 ms 24KB/s 19KB --- http://www.cyberciti.biz/ ping statistics --- 7 connects, 7 ok, 0.00% failed round-trip min/avg/max = 1507.7/1693.4/2620.3 ms Transfer speed: min/avg/max = 9/21/24 KB
Test remote server CPU
The -B option along with -G option ask the HTTP server to compress the returned data - this will reduce the influence of the bandwidth of your connection while increasing the influence of the processorpower of the HTTP server.
$ httping -BGg http://www.cyberciti.biz/
Flood Webserver
The -f option used to flood ping i.e. do not sit idle between each ping but ping as fast as the computer and network allow you to (don't run this on production or 3rd party servers):
$ httping -fg http://www.cyberciti.biz/
Subscribe to our free e-mail newsletter or RSS feed to get all updates.
You can Email this page to a friend.
Related Linux / UNIX FAQ:
- Understanding Linux / UNIX root user or superuser and how should I use root on my server?
- Linux Disable Hyper Threading for Pentium 4 server GRUB boot loader
- Linux performance tools to troubleshoot problem
- Find files by access, modification date under Linux or UNIX
- How do I setup round robin DNS?
Discussion on This FAQ
Leave a Reply
We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Please do not use the comment form to ask for help / question. Ask your question on the excellent Linux tech support forum. Thank you very much for stopping by our site!
Tags: Apache, command line utilities, head request, latency, linux command line, measure throughput, network throughput, test http latency, test http throughput, web server ~ Last updated on: November 21, 2007




November 22nd, 2007 at 7:05 am
Thanks for this tip, I was just wondering if you could write about measuring network performance and find out what is affecting my network throughput and packet loss