For The Best Performance Use a Recent Operating System and a Recent Hypervisor

This is post #1 in my December 2013 series about Linux Virtual Machine Performance Tuning. For more, please see the tag “Linux VM Performance Tuning.”

An ancient computer terminal, long replacedJust like in construction, performance tuning is most effective when you have a good foundation. If the underpinnings of your efforts are weak you won’t be able to build a skyscraper, just a small office building. While that’s still better than nothing, there is often a lot to be gained by using the newest versions of your OS & hypervisor of choice. Some quick examples:

  • Windows Server 2012 R2 added Virtual Receive-side Scaling, which allows the load from network traffic to be processed by multiple virtual CPUs.
  • VMware vSphere 5.5 added support for latency-sensitive VMs, which means that you can virtualize and support workloads with special performance needs. These are things like NTP servers and virtual storage appliances.
  • Red Hat Enterprise Linux 6.5 adds native support in OpenSSL for Elliptic Curve cryptography, which has positive performance implications for web servers as well as enabling Perfect Forward Secrecy, a method to counteract surveillance of communications. It also adds support for the hotly-debated RDRAND CPU instruction, which allows access to better random numbers than VMs typically have (the debate is whether to trust that Intel didn’t cave to the USA’s National Security Agency and cripple the RNG).
  • Red Hat Enterprise Linux 6 added the use of the SCSI UNMAP command, which is popular now as a space-saving mechanism in virtual environments.
  • Ubuntu, Red Hat, and others all added SSD support in 2011 and 2012, and in the process fixed partition alignment issues that plagued virtual machines, too, by automatically aligning partitions along 2048 byte boundaries.

Using recent versions of operating systems also generally make it easier to install and use configuration management tools like Chef and Puppet, as they ship with modern editions of programming languages like Ruby. In fact, deploying a new OS version is the best time to start using a configuration management tool, because you’re starting fresh anyhow.

So Why Bother?

When it comes right down to it newer OSes have better support for modern tools, are patched and supported by their vendors, are supported by hypervisor vendors, have public cloud options (you won’t find Red Hat/CentOS 4 in the public cloud, but you will find Red Hat/CentOS 6), have official support for recent hardware updates, and usually don’t require all the hacks and workarounds you’ve been using for years. This means a cleaner, simpler environment, which in turn means more productivity from staff, which means faster time-to-implement and money saved for the business.

This series is inspired in part by SysAdvent, which is 25 days of great sysadmin tips & tricks. I suggest going and checking it out, and then checking out the inspiration for that, which is the Perl Advent Calendar.


Image of the Sperry-UNIVAC terminal copyright (C) 2008 Adamantios, provided via the Wikimedia Commons. Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported license.