Httperf
httperf is a tool to measure web server performance. It speaks the HTTP protocol both in its HTTP/1.0 and HTTP/1.1 flavors and offers a variety of workload generators. While running, it keeps track of a number of performance metrics that are summarized in the form of statistics that are printed at the end of a test run. The most basic operation of httperf is to generate a fixed number of HTTP GET requests and to measure how many replies (responses) came back from the server and at what rate the responses arrived.
IMPORTANT: To obtain correct results, it is necessary to run at most one httperf process per client machine. Also, there should be as few background processes as possible both on the client and server machines.
EXAMPLES
httperf --hog --server www
This command causes httperf to create a connection to host www, send a request for the root document (http://www/), receive the reply, close the connection, and then print some performance statistics.
httperf --hog --server www --num-conn 100 --ra 10 --timeout 5
Like above, except that a total of 100 connections are created and that connections are created at a fixed rate of 10 per sec‐ ond. Note that option ``--rate has been abbreviated to ``--ra.
httperf --hog --server=www --wsess=10,5,2 --rate 1 --timeout 5
Causes httperf to generate a total of 10 sessions at a rate of 1 session per second. Each session consists of 5 calls that are spaced out by 2 seconds.
httperf --hog --server=www --wsess=10,5,2 --rate=1 --timeout=5 --ssl
Like above, except that httperf contacts server www via SSL at port 443 (the default port for SSL connections).
httperf --hog --server www --wsess=10,5,2 --rate=1 --timeout=5 --ssl \ --ssl-ciphers=EXP-RC4-MD5:EXP-RC2-CBC-MD5 --ssl-no-reuse --http-version=1.0
Like above, except that httperf will inform the server that it can only select from two cipher suites (EXP-RC4-MD5 or EXP-RC2-CBC-MD5); furthermore, httperf will use HTTP version 1.0 which requires a new TCP connection for each request. Also, SSL session ids are not reused, so the entire SSL connection establishment process (known as the SSL handshake) occurs for each connection.