Product Announcements

BIOS Power Policies Affect Performance

How should one set the BIOS power management policies of their VMware infrastructure for maximum virtual performance?

Simple: OS Controlled in the host BIOS, Balanced within vSphere

But are there exceptions?

You’ve probably heard the general guidance to configure your hosting server’s BIOS to “Maximum Performance” to draw out everything you can from a host.  While this might have been sage advice in the past, it is no longer current.  In the vSphere 5 era, VMware’s recommendation is to set the physical server’s BIOS to:

  • OS Controlled
  • Turbo Boost – Enabled
  • C1E – Enabled
  • P-States – Enabled

Reference page 17 of the Performance Best Practices for VMware vSphere 5.5 guide.

These settings allow vSphere to maximize power versus performance using some easily selected policies.

vSpherePowerPolicies

By default, vSphere will use a “Balanced” policy which continues to demonstrate excellent performance while providing power savings. In fact, when using this policy, Turbo Boost can provide higher performance for single threaded workloads.

There are two exceptions though worth noting:

  1. If your workloads are extremely IO latency sensitive, typically network on the order of microseconds, you should consider using the vSphere “High Performance” power policy.  This will prevent the use of all P-States and C-States beyond C1, which removes small latencies incurred when switching between these various states.  Remember though this also effectively disables Turbo Boost.
  2. If you are using performance critical MonsterVM’s, there is some benefit to leveraging the vSphere “High Performance” power policy which will provide a more predictable performance profile across the many physical cores on a host as again there will be no changing of states. This ensures that all the vCPU’s of a virtual machine make even progress.

Keep in mind, the vSphere power polices are set on a per host basis, so your decision needs to take into account all possible workloads that might be hosted or migrated there.

Two great references: