Skip navigation

I do understand that there are quite few articles around talking about how to enable multiple cores. But I did encounter few issues when I tried to do it by myself. Therefore, I write this down just as reference.

Why do we need to have Multiple cores in your VM?

The reason is simple. Microsoft Windows only support limited number of processors on their OS.

 

Win OS Version Max Processor
Win2k3/2k8 Standard 4 CPUs
Win2k3/2k8 Enterprise 8 CPUs
Windows 2003 DataCen 32bit 32 CPUs
Windows 2003 DataCen 64bit 64 CPUs
Windows 2008 DataCen 64bit 64 CPUs
Win 2k8 R2 64 physical CPU or 256 logical CPU

 

Let’s say, if you are running a Dynamics AX AOS server, it is required to run multiple cores to do your batch jobs. With AOS server, you can setup number of helpers to work with distributed batch jobs. The maximum number of helpers (number of supporting cores) is 21. If I run AOS on Windows 2003 Standard, I need to enable multicores so a Win2k3 standard can run 8 cores to help me improve calculating.

How do we enable multicore on VM?

You need to do that in vm 7 hardware which means it should be vSphere 4.x version. (I was told it could work on ESX 3.5, but I haven’t tried yet). Most important and difficult condition is you need a Enterprise Plus license to let VM to support 8 vCPUs.

You can work around by installing a new ESXi host(not your vCenter since CPU license is related to Host license)

Let’s say if  you want to have your vm to have 4 vCPUs and 2 cores on each vCPU. Here is a trick. You need to give this VM 8 vCPUs(4vCPU x 2 cores= 8vCPUs) instead of 4 vCPUs.

mulcor-01

This will give VM 8 vCPU all together. Now you need to setup 2 cores for each vCPU. In terms of doing that, we need to add a special Configuration Parameters. Turn off you VM->Edit VM Setting

mulcor-02

Manually add this new row into your sheet.

mulcor-03

 

Then, you turn on VM.

How to verify I’m using multicores?

Well, the basic way is to open Task Manager and Device Manager.

mulcor-04

Please be notice that the above picture is from another example. It should show up with 8 cores but it only shows 4 cores because that’s another machine. I will replace picture later.

There is another way to see number of cores if you running windows 2008 above.

Get into your machine->cmd->wmic->cpu

mulcor-05

Move your scroll bar to middle. Here is just example. Again, it’s not related to my test machine. And you need to remember this method only works on Win2k8. For W2k3, you need other third party tools.

mulcor-06

 

Possible problems you may run into

Like what I said before, you need to have Enterprise Plus license or Evaluation license on host. Otherwise, you will be pleasure to see this error.

mulcor-07

 

What difference between multicores and multiCPUs?

The answer is, from performance wise, nothing. It’s just different way to call it. VM still pass on the CPU cycle to host and process it. The best practise is if you want to have 8 vCPU, you can either have 4 vCPU x 2 cores or 2 vCPU x 4 cores.

It’s total you choose and your call.

 

Reference:

Vmware KB Article: 1010184

7 Comments

  1. Hi,

    Just a quick query regarding multicores and multicpus.

    I have a R610 server with 2x Intel X5660 6 cores processors. So 12 physical cores in total but a ESX 4 Standard licence but under the presumption that I could have 2 vsmp’s in the guest VM setting and add the set the cpuid.coresPerSocket = “6” in the config.

    This should enable the VM running 2008 R2 Enterprise to see all 12 cores right? Well 2008 R2 see’s cores as processors so this should give me 12 cores?

    Thanks for your assistance.

    • hi, Mark:
      Thank u for asking questions. Yes, you are basically right about giving R2 12 cores.
      But there are few things I would like to point out.
      1. Try to use standard num for cpuid.coresPerSocket. (e.g 1,2,4)
      Because odd number is not supported by Vmware.
      2. You really need to change your ESX host license to Evaluation or Enterprise.
      Otherwise, you won’t able to boot up machine after you change your vSMP from 2 to 12.

        • Mark
        • Posted 12/11/2010 at 2:06 am
        • Permalink

        Thanks for the info. I was under the assumption that the vmware standard edition supported up to 6 cores per processor, hence buying a 2x CPU licence for the understanding of being able to utilise all 12 cores? Is this not the case?

        Can you confirm the settings so I can see all 12 cores on my 2008 R2 Ent server? i.e the value in Number of virtual processors in the Guest VM settings and the value in cpuid.corespersocket.

        Thanks 🙂

  2. hi, Mark:
    Please follow this link.

    Short-Take: vSphere Multi-core Virtual Machines

  3. thanks geeksilver, although I still don’t understand what configuration I need to make my 2008 R2 server use all 12 cores

    hope you can help

    thanks,

    mark.

    • Sorry, I think I misunderstood your question. I think the right answer for you is no. You can’t do it. As vSphere 4.1, the maximum vSMP in one VM is 8 vCPUs.That’s what you can get at this stage.

  4. While parallels supports 12-way SMP:

    http://www.parallels.com/products/extreme/technology/

    geeksilver is correct in pointing out that vSphere 4.1 supports a maximum of 8-way SMP. This puts some limits on your ability to get the most out of your 12-cores.

    I would look at one 8-way plus one 4-way per socket (obviously Enterprise Plus), two 6-way per socket (again, Enterprise Plus) or three 4-way per socket (any vSphere version). If you’re going down the path of 1:1 core-to-vCPU ratio, that’s how you’re going to need to do it.

    Frankly, only a few applications scale-up better than they scale-out, so you’re looking at a small part of the market (today).


Leave a comment