As promised today I’ll be dealing with the TOP 5 Don’ts for VMware.
1) Overcommit CPU (unless ESX Host usage is less than 50%)
I’m sure that most of you have heard of CPU Ready Time. CPU Ready Time is the time spent (msecs) that a guest vCPUs are waiting to run on the ESX Hosts physical CPUs. This wait time can occur due to the co-scheduling constraints of operating systems and a higher CPU scheduling demand due to an overcommitted number of guest vCPUs against pCPUs. The likelihood is that if all the ESX hosts within your environment have on average a lower CPU usage demand, then overcommitting vCPUs to pCPUs is unlikely to see any significant rise in CPU Ready Time or impact on guest performance.
2) Overcommit virtual memory to the point of heavy memory reclamation on the ESX host.
Memory over-commitment is supported within your vSphere environment by a combination of Transparent Page Sharing, memory reclamation (Ballooning & Memory Compression) and vSwp files (Swapping). When memory reclamation takes place it incurs some memory management overhead and if DRS is enabled automatically, an increase in the number of vMotion migrations. Performance at this point can degrade due to the increase in overhead required to manage these operations.
3) Set CPU or Memory limits (unless absolutely necessary).
Do you really need to apply a restriction on usage to a guest or set of guests in a Resource Pool? By limiting usage, you may unwittingly restrict the performance of a guest. In addition, maintaining these limits incurs overhead, especially for memory, where the limits are enforced by Memory Reclamation. A better approach is to perform some proactive monitoring to identify usage patterns and peaks, then adjust the amount of CPU (MHz) and Memory (MB) allocated to your guest virtual machine. Where necessary guarantee resources by applying reservations.
4) Use vSMP virtual machines when running single-threaded workloads.
vSMP virtual machines have more than one vCPU assigned. A single-threaded workload running on your guest will not take advantage of those “extra” executable threads. Therefore extra CPU cycles used to schedule those vCPUs will be wasted.
5) Use 64-bit operating systems unless you are running 64-bit applications.
Whilst 64-bit operating systems are near enough the norm these days, do check that you need to use 64 bit as these require more memory overhead than 32-bit. Compare the benchmarks of 32/64-bit applications to determine whether it is necessary to use the 64-bit version.
I'm running a webinar on VMware memory ‘Taking a Trip down vSphere Memory Lane’ this Wednesday, visit our website and sign up to come along