Super Smack
(8/30/05): Oops! I had to do a restore of my web content, but I forgot Super Smack, so it was gone for a few days. Sorry about that! It's back now.
(5/30/05): Super Smack 1.3 is is released!. Super Smack 1.3 includes the following fixes:
Thanks to Dan Price who did the Solaris fixes, and Josh Varner submitted a definition for Mac OS X, and Simon Lundström who helped work out a NetBSD build issue.
(5/27/05): I recently realized that PostgreSQL support for Super Smack doesn't work. It doesn't compile under any platform I tried (including Linux). I tinkered with the C++ code and I got a clean compile and it looks like it works. I've got some more testing to do, but if everything checks out then I'll post my fixes.
Just added (5/25/045): Super Smack FAQ
Super Smack is a benchmarking, stress testing, and load generation tool for MySQL (and PostgreSQL). Super Smack was originally written by Sasha Pachev, and then hosted and maintained by Jeremy Zawodny.
I've found it a very useful tool, and when Jeremy Zawodny announced he wanted someone to take over the project, I happily volunteered.
I used Super Smack for a series of articles I did on MySQL performance on multiple operating systems (Part I: Method and Part II: Results).
The current version is 1.2, and Super Smack 1.2 should compile for Linux without any problems. With some adjustments, I've been able to get Super Smack to compile for NetBSD 2.0, FreeBSD 5.3, FreeBSD 4.11, and OpenBSD 3.6. Dan Price has submitted some patches to get it to compile on Solaris 10.
Shortly I'll have a 1.3 release ready, which incorporates my BSD compilation fixes and Dan's Solaris fixes, then followed by some binary releases.
For those that want to try Super Smack on FreeBSD 5.3, I've got a source-binary tarball available: Super Smack 1.2 for FreeBSD 5.3. Just unzip, untar, cd into the directory and do a make install. I'll get around to making a FreeBSD package sometime soon.
Downloads
Todo List
Other Benchmarks
Super Smack isn't the only database benchmark around of course. Here are a few others that I've found to be very useful.
SysBench is a selection of benchmarks for I/O, scheduler, threads, and other tests. It also includes an OLTP benchmark for testing transactions per second on a database, and is a favorite of the MySQL folks. MySQL and PostgreSQL are both supported.