16 Responses

  1. AlphenIT
    AlphenIT at |

    Interesting piece Chris!
    Citrix in the past also has done some writing on this and if I compare your key takeaway:
    Avoid creating a VM with more vCPUs than PHYSICAL cores.
    With theirs:
    It is advisable not to allocate more vCPU than there are LOGICAL cores within the given hardware.
    I’m getting even more confused..maybe I’m crossing logical with physical but confusing it remains (as Yoda would say).
    I’m referring to these articles:
    http://blogs.citrix.com/2011/06/15/virtualization-best-practices-for-xenapp/
    http://blogs.citrix.com/2013/01/07/whats-the-optimal-xenapp-6-5-vm-configuration/
    Any thoughts?

    Reply
  2. @vmMarkA
    @vmMarkA at |

    Consider the advantage of parallelism.

    [corner case]

    I agree with Chris that I often size to the physical core count to be conservative and ensure a solid performance profile. That said, sometimes there is an advantage of offering more vCPUs, and therefore more parallel threads, to an application – IF – you can be reasonably assured the threads don’t saturate the underlying physical execution resource. This type of configuration allows the advantage of many threads to run in a short and/or bursty type pattern which can benefit some workloads. In this case I use the word “evaluate” to see if you can improve application KPI’s by using more logical CPUs than physical CPUs.

    Reply
  3. Chris Conlan
    Chris Conlan at |

    I have noticed since moving to Intel i7-4770 (Quad Core w/ HT) from an AMD FX-8320 (8 core), my CPU is at like 70% for all 4 cores. Does the % take into affect HT?

    Reply
    1. Josh Townsend
      Josh Townsend at |

      Check out VMware KB 2055995 (http://kb.vmware.com/kb/2055995): Difference between cpu.usage and cpu.utilization counters for HostSystem object.

      “The counters for the HostSystem object provide this information:

      cpu.utilization – Provides statistics for physical CPUs.
      cpu.usage – Provides statistics for logical CPUs. This is based on CPU Hyperthreading.”

      Reply
  4. Welcome to vSphere-land! » CPU Links
    Welcome to vSphere-land! » CPU Links at |

    […] Hyper-Threading Gotcha with Virtual Machine vCPU Sizing (Chris Wahl) VMware vSphere 4: The CPU Scheduler in VMware ESX 4 (VMware Tech Paper) The CPU Scheduler in VMware ESX 4.1 (VMware Tech Paper) The CPU Scheduler in VMware vSphere  5.1 (VMware Tech Paper) Virtual Machine Monitor Execution Modes: in VMware vSphere 4.0 (VMware) Does corespersocket Affect Performance? (VMware vSphere Blog) Four Things You Should Know About ESX 4’s Scheduler (Virtual Performance) […]

  5. REZ
    REZ at |

    Is this “best practice” per Socket or per core(s)? For instance, I get that in a 1 socket 6 core processor a VM should not have more that 6 vCPUs. That makes sense to me. But what about a host with 2 socket, 6 core processor (12 cores total). Does this mean that my “monster VM” can have 12 vCPUs? Does the scheduler span processes across cores?

    Or will it schedule 6 threads…then wait for the other 6 threads from the other 6 vCPUs on the other socket?

    Reply
    1. REZ
      REZ at |

      I wrote:

      “Does the scheduler span processes across cores?”

      I meant:

      Does the scheduler span processes across sockets? lol

      Thanks!

      Reply
  6. faf1967
    faf1967 at |

    I have a ESX 5.1 cluster running a windows 2008 SQL cluster and a Windows 2012 SQL cluster. We will have 2 (2 node 2008) and 2 (2 node 2012) clusters. Should I turn on hyper-threading?

    Thanks in advance for any responses.

    Reply
  7. Cheap and green ESXi homelab – Part I | brunier.nl

    […] deliver that big an advantage, especially in my lab environment. Nice piece on this subject: http://wahlnetwork.com/2013/09/30/hyper-threading-gotcha-virtual-machine-vcpu-sizing/ I decided to buy the Intel i5 4440 processor. A common CPU, on-cpu graphics, well […]

Share your point of view!