Improving VMware ESX Server performance: 10 best practices

Follow these best practices regarding hardware considerations, virtual machine (VM) configurations and more to improve VM performance.

When you decided to virtualize, you never agreed to sacrifice performance. But VMware virtual machine performance...

in particular can be sluggish if you don't observe some basic best practices. Without further ado, here are 10 ways to ensure that your virtualized infrastructure performs at its best.

1. Make sure your hardware satisfies the hardware compatibility requirements
Prior to purchasing hardware to be used for VMware virtualization, you need to make sure that that hardware will meet the VMware ESX Server hardware compatibility requirements. Keep in mind that this applies to the server, the NIC cards and Fibre Channel cards, as well as the internal or external storage that will be used.

If you already have hardware, you will want to check it against the Hardware Compatibility List (HCL) prior to installing ESX Server. I know this may seem obvious to most administrators, but you'd be surprised how many times people have contacted me with non-working ESX Servers, only to find out that the underlying hardware wasn't supported.

Also, just because your non-HCL listed hardware seems to work with VMware ESX doesn't mean that it is going to work and perform well over the long term.

Here are a few quick links to the various VMware Hardware Compatibility lists:

2. Know your hardware; ensure correct sizing
There are a lot of unknowns when trying to work with a virtual network that you personally did not configure. How many CPUs are there? Are they 32-bit or 64-bit? How much RAM is available?

In a small virtual data center, the VMware Infrastructure Client (VI Client) can give you the basics on each VMware ESX Server. On the other hand, in a large virtual data center, getting to know the hardware could mean examining data from hundreds of servers.

Either way, you might want to consider looking at a tool like Veeam Reporter which can give you a professional report of all of your hardware, its detailed specifications, and information on all of the virtual machines running on that hardware, including their specifications.

Finally, make sure that your hardware is sized properly for the virtual machines and the applications on those virtual machines. The VI client is very good at pinpointing performance issues, such as why one VM is using 2.5 GB of RAM when all the others use 350 MB. A nice new tool that is used to find performance bottlenecks (even predict them) is the VKernel Capacity Bottleneck Analyzer.

3. Know your virtual guest operating systems and applications
If you understand how much hardware your applications in each virtual guest need, you'll be able to size you hardware properly. When you configure the amount of RAM, the number of CPUs, and the disk space for each virtual guest, you're also configuring those variables for the applications running on the virtual guest. The more you can do to understand the specific applications, the more successful you will be at sizing the virtual guest servers and the VMware physical hardware.

4. Benchmark your server hardware and use a performance monitor utility
Using a benchmarking tool will help you understand which host system, storage system, and/or virtual guest configuration is the best for your application. Unfortunately, traditional benchmarking utilities don't understand virtualization.

VMware's VMmark virtualization benchmarking tool is free. It can help you get the best performance when testing out new hardware and configuration changes. Additionally, you should use a performance monitoring utility that understands your virtualized environment. To start, I recommend looking at Vizioncore's vCharter Pro and the VKernel Capacity Bottleneck Analyzer.

5. Enable VMware DRS
VMware's Distributed Resource Scheduler (DRS) is a nice piece of software because it reads information about your virtual guest operating systems, the resources in use, and the resources available. It then makes the best decision as to which virtual guest needs to be on which VMware ESX Server. It doesn't work, however, unless you configure it. Enable DRS.

6. Follow VMware best practices
VMware offers a number of documents detailing best practices for performance. I encourage you to read them and follow them, so long as they fit your hardware and applications requirements. VMware offers specific documents on VI3 performance enhancements, networking performance, best practices for the VMware VMFS, aligning VMFS partitions, how to use VMmark, and resource management with DRS.

7. Keep VMware Tools up to date
Each virtual guest needs to be performing as well as possible to ensure that you're getting the most performance out of your entire virtual infrastructure. To make sure each virtual guest has the most efficient drivers, you need to make sure that the guest VMs' VMware Tools are always up to date. Fortunately, this isn't too difficult using the VI Client. Simply select Upgrade Tools on a guest (however, this does require a reboot).

Additionally, remove unneeded virtual hardware from the guests. Why have a floppy drive on every guest if it isn't needed? There's no reason to allocate 1 GB of RAM to a guest VM that only uses 256 MB..

8. Beware of virtual machine sprawl
When the number of virtual guests seems to grow quickly without proper analysis or planning, you are experiencing VM sprawl. This happens because it's very easy to create VMs. For optimal performance, you should only have as many guests as is necessary. By controlling VM sprawl, you can prevent unneeded guests that drain your performance.

9. Keep patches up to date
Make sure that you keep your VMware ESXi and ESX 3.5 patches up to date. There are always new updates coming out for these virtualization platforms and there are cases where performance draining bugs are resolved. Fortunately, this has become easier with the new VMware Update Manager.

10. Scan blogs for the latest performance tips
There is new information coming out every day concerning how to best tweak the performance of your virtual infrastructure. I encourage you to subscribe to blog RSS feeds and to newsletters from both SearchServerVirtualization.com and SearchVMware.com, and subscribe to VMware VROOM!, a blog about performance run by VMware.

ABOUT THE AUTHOR: David Davis (CCIE #9369, VCP, CWNA, MCSE, CISSP, Linux+, CEH) has been in the IT industry for 15 years. He has written hundreds of articles, six video training courses – including the Train Signal VMware ESX Server video training series. His websites are Happy Router.com and VMwareVideos.com.

Dig Deeper on VMware performance enhancements

Virtual Desktop
Data Center
Cloud Computing