user2714092
user2714092

Reputation: 1

httperf for bechmarking web-servers

I am using httperf to benchmark web-servers. My configuration, i5 processor and 4GB RAM. How to stress this configuration to get accurate results...? I mean I have to put 100% load on this server(12.04 LTS server).

Upvotes: 0

Views: 400

Answers (2)

Junji Zhi
Junji Zhi

Reputation: 1470

What's tricky about httperf is that it is often saturating the client first, because of 1) the per-process open files limit, 2) TCP port number limit (excluding the reserved 0-1024, there are only 64512 ports available for tcp connections, meaning only 1075 max sustained connections for 1 minute), 3) socket buffer size. You probably need to tune the above limit to avoid saturating the client.

To saturate a server with 4GB memory, you would probably need multiple physical machines. I tried 6 clients, each of which invokes 300 req/s to a 4GB VM, and it saturates it.

However, there are still other factors impacting hte result, e.g., pages deployed in your apache server, workload access patterns. But the general suggestions are: 1. test the request workload that is closest to your target scenarios. 2. add more physical clients to see if the changes of response rate, response time, error number, in order to make sure you are not saturating the clients.

Upvotes: 0

Rabi
Rabi

Reputation: 111

you can use httperf like this

$httperf --server --port --wsesslog=200,0,urls.log --rate 10

Here the urls.log contains the different uri/path to be requested. Check the documention for details.

Now try to change the rate value or session value, then see how many RPS you can achieve and what is the reply time. Also in mean time monitor the cpu and memory utilization using mpstat or top command to see if it is reaching 100%.

Upvotes: 1

Related Questions