One of the crucial aspects of VMware vSphere administration is making sure the provisioned production virtual machine workloads are performing as expected. This ensures the applications hosted by the virtual machine workloads are performing adequately as well. Running virtual machines on top of a hypervisor can make troubleshooting performance issues more difficult. However, there are performance best practices that VMware vSphere administrators can implement that helps to ensure virtual machine performance is as expected. Let’s take a look at a VMware virtual machine performance checklist and configuration that helps to ensure virtual machine performance.

VMware Virtual Machine Performance Checklist

Protect Your Data with BDRSuite

Cost-Effective Backup Solution for VMs, Servers, Endpoints, Cloud VMs & SaaS applications. Supports On-Premise, Remote, Hybrid and Cloud Backup, including Disaster Recovery, Ransomware Defense & more!

There are many fairly easy things that you can do to ensure virtual machine performance is optimal. We will take a look at the following virtual machine performance checklist best practices:

  • Run current virtual machine hardware and VMware Tools versions
  • Assign only the needed number of vCPUs to a Virtual Machine
  • Configure only the memory needed
  • Pay attention to NUMA boundaries
  • Use PVSCSI disk controller and VMXNET3 network controllers

Run Current Virtual Machine Hardware and VMware Tools Versions

Making sure you are running the current virtual machine hardware and VMware Tools versions is important for ensuring the best virtual machine performance. The virtual machine hardware version is what determines the virtual hardware functionality and allows the virtual machine to take advantage of the latest and greatest enhancements that come with new hypervisor versions. This can include numerous performance enhancements and tweaks that allow the best performance.

Download Banner

vmware-virtual-machine
Right click the VM and choose Compatibility >> Upgrade VM Compatibility

vmware-virtual-machine
Configuring VM Compatibility level

Running VMware Tools inside your guest operating system loads the suite of utilities that enhances the performance of the virtual machine’s guest operating system and adds many additional management features to the virtual machine. The performance enhancements include:

  • Faster graphics performance
  • Improved mouse performance
  • Time synchronization
  • Automation features such as scripting that helps to automate services

In addition to the above, making sure VMware Tools is updated and running allows backups of the virtual machine running applications such as Microsoft SQL Server to be backed up in an application consistent state

Both the virtual machine version and VMware Tools versions allow the virtual machine to perform optimally along with the most current set of features and functionality.

Assign Only the Needed Number of vCPUs to a Virtual Machine

A mistake that many VMware vSphere administrators have made is simply assigning multiple vCPUs to every virtual machine in the vSphere environment. Assigning multiple vCPUs to every virtual machine is not good for performance. First off, assigning too many vCPUs to every virtual machine can create a dangerous amount of overcommit on a given host. This can increase the amount of CPU Ready and Co-Stop values. CPU Ready time is the amount of time a virtual machine must wait in a CPU ready state before the kernel can schedule it on a CPU. Co-Stop is the amount of time that multi-vCPU virtual machines were ready to run but were delayed due to co-vCPU scheduling contention. In addition, “wide VMs” can cross NUMA nodes which can also affect performance as we will discuss later.

vmware-virtual-machine
A host that is severely overcommitted will have high Co-Stop and CPU Ready values

Configure only the memory needed

As is the case with the assigning of too many vCPUs, memory can be overcommitted on a VMware ESXi host. It is best practice in sizing memory on virtual machines to only allocate the amount of memory that is needed or required by the application the virtual machine is running and no more. The Active Memory counter can come in handy in monitoring the actual memory being used. You want to allocate enough memory so that memory swapping isn’t used. VMware ESXi contains a balloon driver that takes over when memory is overcommitted. The balloon driver allows the guest operating system to give up physical memory pages that are not being used. If you see tremendous memory ballooning activity, you may need to look at the memory overcommit on the host. ESXi also uses TPS to deduplicate memory to get rid of redundant memory pages. Both ballooning and TPS allow extremely successful overcommit on an ESXi host, however, be sure to monitor memory used and avoid an overcommit ratio that degrades performance.

vmware-virtual-machine
Active, Ballooned, Consumed, Granted, Shared Memory Counter

Pay attention to NUMA boundaries

Non-uniform memory access or NUMA can come into play when so-called “wide VMs” are configured where you have assigned more vCPUs or memory to a virtual machine than is contained in the physical socket in the ESXi host. Each CPU package has “local” or low-latency memory that can be accessed. Accessing “remote” memory from another CPU package can affect performance as latency is introduced. The so-called “wide VMs” get distributed across NUMA nodes. Keeping this in mind when allocating resources can play a tremendous role in making sure virtual machine performance is optimal.

Use PVSCSI disk controller and VMXNET3 network controllers

Additionally, important to virtual machine performance is making sure to use the latest virtual hardware components in building a virtual machine. By default, the “New Virtual Machine” wizard will use the LSI SAS storage controller and the e1000 network adapter. However, these do not offer the best performance and/or efficiency. For best performance, VMware recommends making use of the Paravirtual SCSI or PVSCSI storage controller and the VMXNET3 network adapter. In particular, the PVSCSI storage controller can do more work using less CPU cycles, partly due to the fact it isn’t emulating hardware as the LSI SAS controller. In the official documentation of the PVSCSI storage adapter, it provides 8% better throughput at 10% lower CPU cost. The VMXNET3 network adapter boasts many of the same benefits as the PVSCSI adapter since it is written to be optimized for virtual environments and not emulating hardware.

vmware-virtual-machine
Make sure to utilize PVSCSI storage controllers for best performance

Concluding Thoughts

There are many practical and quite easy guidelines you can follow to ensure virtual machine performance as shown in this VMware virtual machine performance checklist. Making sure to have the current virtual machine hardware version and latest VMware Tools ensures the newest functionality and enhancements available for the particular version of ESXi you are running. Keeping sizing considerations in mind such as the number of vCPUs and memory that are actually needed can ensure virtual machines perform optimally and make sure there is as little contention as possible. Additionally, keeping NUMA boundaries in mind when configuring “wide VMs” is necessary to understand potential performance impacts of crossing physical CPU and memory barriers. Lastly, make sure to utilize the newest virtual hardware such as PVSCI and VMXNET3 adapters which offer the best performance with the least amount of CPU cost.

Experience modern data protection with this latest Vembu BDR Suite v.3.8.0 FREE edition. Try the 30 days free trial here: https://www.bdrsuite.com/vembu-bdr-suite-download/

Got questions? Email us at: vembu-support@vembu.com for answers.

Follow our Twitter and Facebook feeds for new releases, updates, insightful posts and more.

Rate this post