Experimental FreeBSD 7 + ZFS + MySQL technology trial

For most of our production servers, we run FreeBSD 6.3, which is a well-tested, stable, and excellent-performing release. However, the FreeBSD world moves on and FreeBSD 7.0 was released earlier this year. The primary benefit to the new version is supposed to be vastly improved performance, ranging from 350% to 1500% faster, under heavy workloads.

Hey, we have some heavy workloads…

However, as longtime members may know, when confronted with a choice between stability and performance, we tend to choose stability. In fact, that preference led us to skip FreeBSD 5 entirely while the FreeBSD team tirelessly worked out the changes needed to support modern SMP hardware. (I look back to the FreeBSD 4 days when we had to use single-core systems and I whimper.)

Another flagship technology in FreeBSD 7 is ZFS. The primary benefits of ZFS wouldn’t accrue directly to our members (although it might provide the underpinnings for some neat stuff), but rather it would make our lives a lot easier. The problem with that is that there’s some debate on whether or not ZFS is ready for prime-time usage. So far, it’s tested pretty well and we’ve done some fairly abusive things to it.

Even so, odds are that FreeBSD 7.0 will never see production in our web cluster; we will most likely give serious consideration to 7.1 or 7.2, depending on the results of our internal testing. That internal testing is (and has been) underway, and we’d like to offer the adventurous a chance to participate.

Putting FreeBSD 7.0 into our web cluster isn’t really a good option, because it would entail building FreeBSD 7 versions of a couple thousand software packages, CPAN modules, python eggs, and etc, and might cause problems for custom-built CGI binaries. Instead, we feel that heavy MySQL usage is most likely to show the benefits of improved SMP code in a controlled software environment.

Thus we have set up an experimental MySQL server running MySQL 5.0.51a on FreeBSD 7 with a ZFS filesystem. If you would like your MySQL process moved to this experimental server, please submit a secure support request indicating the name of your MySQL process. Migrating MySQL between servers is very fast, but it takes about 10 minutes for a moved process’s new IP address to propagate through our network.

The trade-offs should look like this:

  • Your MySQL process will probably be a lot faster, especially if it’s busy.
  • There might be an increased chance of MySQL downtime due to instability.

Naturally we won’t let stability issues get out of hand on that server. If ZFS presents a problem, we’ll blow it away and try FreeBSD 7 under UFS2, and if that’s also unstable, we’ll kill the test and try again at 7.1. We’d also move anyone back out of the test who encountered problems on request.

Give it some thought. If your MySQL process is not mission-critical and you’re interested in helping us plan the next generation of NearlyFreeSpeech.NET servers, please drop us a line.

No Comments yet

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Entries Feed and comments Feed feeds. Valid XHTML and CSS.
Powered by WordPress. Hosted by NearlyFreeSpeech.NET.