I'm trying to benchmark and load test various web server setups (mod_php vs php as fastcgi, max/min worker/thread configuration, and so on). I'm starting with ab, but would be interested in other recommended tools for this job. The web server is a Linux server, but I can run Windows based testing tools from my desktop machine if need be.
I'm also interested in any recommendations as to technique. For example:
-
I'm assuming I'll get more useful results running from a separate machine doing nothing else (as opposed to running on the same machine as the web server, or on my desktop machine as a background process). Is this correct?
-
Likewise, I figure I can reduce the effects of network issues on the testing by putting that machine in the same data center on a private IP.
-
I'll want to setup more than just a single file to get any sort of real test (can I even do this with ab?).
Any other tips?
Best Answer
I like to set up a classroom of computers who run siege.
I crawl the website once using wget
Then I fetch all the unique URLs from the serverlogs by using a oneliner like this:
Then siege can be set up to use this file, and will then attempt them in random order.
It can also be configured to send various headers, set useragent and whatnot.
I'd recommend that you take a look at siege. This is the setup I use when I test website-rigs myself.