While benchmarking performance for deathy death match I realized something: Benchmarking sucks!
That said, and me being the lazy person I am, I asked myself how can I make this easier? My answer: benchsid, two shell scripts that make benchmarking easier.
disclaimer
This is a 1,2,3 trick pony – use it as such
These scripts are offered as is and I am not responsible for anything you do, create, break, etc.
Both scripts are released under the do whatever the hell you want, but don’t blame me license. This of course isn’t a real license, but you get the point.
Make benchmarks easier, if only a bit
I’ve tried as much as possible to keep your commands to a minimum. If running as root you can run a complete benchmark, save both the results and you benchmark servers top + free output, and reboot with 3 commands. See lazy right? 
monitor.sh – run this script on the machine your benchmarking
bench.sh – run this script on the machine your benchmarking from
you do not need to run these on separate machines, but I recommend it
How do I use…
monitor:
./monitor.sh
./monitor.sh help
bench:
./bench.sh
./bench.sh help
If your still having issues post a comment
monitor.sh
Monitor should be ran on the machine your benchmarking. It automates the process of recording free (free -m) and top, and if running as root will reboot the server when you tell it to stop monitoring a benchmark
Sounds good so far right?
monitor.sh process overview
start process
clear out any benchmarks that will be overwritten
save output from free to a file (free -m)
save output from top to a file
start a top process to monitor to a file while we benchmark
confirm that we are up and running
stop process
stop top
save output of free to file
save output of top to file
reboot server
monitor.sh: umm why?
monitor.sh saves the information about the server before, during and after your benchmark has been run. By running top during the benchmark process (10 second intervals), we can get a real time overview of both server load and the loads created by applications
bench.sh
bench.sh is the benchmarking portion. bench.sh can benchmark your server using one of three programs: ab, siege, or httpref. I considered adding an option to do all three, but honestly that more poor mans dos than benchmark.
bench.sh first will perform a warm-up cycle of 2000 requests to your server using your desired (or default) concurrency. After that it will perform 3 benchmark cycles of your desired number of requests and concurrency.
All cycle results (including warm up) are saved to the filesystem.
download
download benchsid: http://gregsidberry.com/httpdocs/wp-content/uploads/2008/12/benchsid.tar.gz
known issues
siege output – siege outputs a couple of variables to screen that aren’t included, or properly recorded, in the created file. I’ve tried output redirection, script, etc, but haven’t been able to find a fix that keeps everything in one script
input validation – there is no input validation, so please don’t put these files in a web public location.
funyuns – I’m out of funyuns, please send more
enjoy
Sid