Thursday, October 16, 2008

web server performance measurement tools

Measuring Web Server Performance:

Web performance benchmarking tool httperf. Httperf sends requests to the web server at a specified rate and gathers stats. Increase till one finds the saturation point.

Installation:
  • Debian: apt-get install httperf
Example useage:
  • Print performance stats for home page of yourdomain.com: httperf --hog --server www.yourdomain.com
  • Create 100 connections at a rate of 10/sec: httperf --hog --server http://www.yourdomain.com/ --num-conn 100 --rate 10 --timeout 5
  • Generate 10 sessions at a rate of i seesion/sec every 2 seconds: httperf --hog --ser=www --wsess=10,5,2 --rate 1 --timeout 5

httperf command line options:

CommandCommand Description
--hogUse as many TCP ports as necessary to generate stats (else limited to port 1024-5000)
--num-callsSession oriented workloads.
--max-connections=#Limit the number of connections to that specified.
--num-calls=#Specify the number of calls to issue on each connection before closing it.
--server host-nameDefault localhost. Specify IP address of host name.
--wsess=N1,N2,XSpecify session where
N1: number of sessions
N2: number of calls per session
X: delay between calls (sec)
--timeoutStop if there is no response within timeout period.

Links:

Other web performance measurement tools:
  • autobench: Perl wrapper to httperf which itterates and gathers data for each run. Creates csv file for use in a spreadsheet to generate graphs.
  • openload: Simulates number of concurrent users. Measures completed requests/sec.
  • Apache JMeter: Java app for static and dynamic performance analysis.

No comments: