vmware 1:1 processor mapping virtual to physical cores

cmatchett
cmatchett used Ask the Experts™
on
If i have 2 physical processors with 4 cores each and to maintain a 1:1 mapping between virtual to physical cores, i cannot give more than 8 cpus in total to all virtual machines?

In this environment, there is an exchange vm that is running on the above physical core specification.  In total, there are 22 vpus to assigned to all the virtual machines running on this host.

I know that vmware / hyper-v best practice for exchange is 1:1.  I was told today that the exchange virtual machine is running on a one-to-one mapping.

The other thing is that hyper-threading is enabled on the physical host giving it 16 cores.  I understand that virtual to physical core mapping isn't based on hyper-threaded cores but actual physical cores.

how is this possible that the exchange vm is running on 1:1
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Andrew Hancock (VMware vExpert / EE Fellow)VMware and Virtualization Consultant
Fellow 2018
Expert of the Year 2017

Commented:
In simple terms, we like to state that a single virtual cpu in the virtual machine = (equals) a single core on the physical processor.

but in reality, this could be on different cores, throughout the execution of the Virtual Machine, as the scheduler maintains, and moves workloads across ALL cores available on the hosts processors.

We work on a rule of thumb of  5-6 Virtual Machines per physical core in the server.

So Dual Processor Quad Core Servers, handle approx 40 VMs. (single vCPU and dual vCPU sockets).

So I would have to investigate the 1:1 mapping statement, and try to dig further what this means, unless they have changed the affinity settings on the CPU, to lock each vCPU to a specific core, which we do not generally do, and we leave the hypervsor (that's why we pay money to VMware), to do the donkey work, of shuffling resources.

Author

Commented:
if i go technet..

Exchange supports a virtual processor-to-logical processor ratio no greater than 2:1, although we recommend a ratio of 1:1. For example, a dual processor system using quad core processors contains a total of 8 logical processors in the host system. On a system with this configuration, don't allocate more than a total of 16 virtual processors to all guest virtual machines combined.
Andrew Hancock (VMware vExpert / EE Fellow)VMware and Virtualization Consultant
Fellow 2018
Expert of the Year 2017

Commented:
Well as in my example above we allocated 5-6 VMs per core, that's 40 VMs, on 16 virtual processors, time sliced working well, and we have many more VMs per server now with Hadoop, and many worker nodes.

I supose the article is describing over allocation of compute resources, there are some servers, that have high CPU utilisation, e.g. Terminal Services, VDI, Citrix etc where you would expect CPU to be greater than 90%, and therefore, would need a 1:1 mapping, and hence you would scale your servers accordingly.

But, there's not really any OS/Exchange configuration for it, unless you change the CPU Affinity settings, so you then lock a virtual socket to a core on the physical processor.

It's more of a design, do not over subscribe CPU resources.

e.g. in my example, do not also put Exchange Server VM, on a Host, which is already hosting 40 VMs!
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Author

Commented:
from the vmware exchange 2013 best practices

Although Microsoft supports a maximum virtual CPU to physical CPU overcommitment
ratio of 2:1, the recommended practice is to keep this as close to 1:1 as possible. For example,

in the case of an ESXi host with eight physical cores, the total number of vCPUs across all Exchange virtual machines on that host should not exceed eight vCPUs. After hyperthreading is enabled on the ESXi host, the hypervisor has 16 logical processors where it can schedule worlds to run.  

Is the above paragraph assuming that the host is only dedicated to exchange ?

hyper-threading should be disabled because of the .net managed code.  where each database runs in its own store process..
Andrew Hancock (VMware vExpert / EE Fellow)VMware and Virtualization Consultant
Fellow 2018
Expert of the Year 2017

Commented:
I believe that's normal, that you would not allocate more virtual sockets, than total cores on the physical host.

e.g. 8 vCPUs

I do not think VMware, can expect us to just host Exchange on it's own VMware Hypervisor, that increases costs, not reduces them, it would be better off, on it's own physical hardwar with no hypervisor license.

Author

Commented:
apparently now that advice is to install the exchange 2013 mailbox role on a physical server, due to resource demands.

So this paragraph..

"in the case of an ESXi host with eight physical cores, the total number of vCPUs across all Exchange virtual machines on that host should not exceed eight vCPU"

Is it really saying that the vcpus assigned to all virtual machines running on the host shouldn't exceed the total number of physical cores?  This would be consistent with technet.
VMware and Virtualization Consultant
Fellow 2018
Expert of the Year 2017
Commented:
That's correct, which is always good design practice. (with high CPU utilisation servers).

Author

Commented:
Hi,  I found this white paper about cpu ready time.  what do you calculate the cpu ready as of the vm in the uploaded imagecpu ready

taken from the pdf...

to convert this to a percentage value, you have to take what is reported (2173 ms) and divide by 20 seconds (20000 ms) to arrive at a CPU Ready value as a %. In the case
of this graph, 2173/20000 = 0.10865, or 10.865%, which is twice the 5% guideline

Author

Commented:
it says in the pdf..

To check how much CPU Ready is being experienced in your environment, it’s most effective if you look at CPU Ready on a per-vCPU basis,

calculating the CPU ready then for each of the 4 vcpus, i calculate it to be above the recommended level

Author

Commented:
i have found the below.  If i wanted to go back to particular day, what value would i use

The formula requires you to know the default update intervals for the performance charts. These are the default update intervals for each chart:

Realtime: 20 seconds
Past Day: 5 minutes (300 seconds)
Past Week: 30 minutes (1800 seconds)
Past Month: 2 hours (7200 seconds)
Past Year: 1 day (86400 seconds)
CPU ready %

To calculate the CPU ready % from the CPU ready summation value, use this formula:

(CPU summation value / (<chart default update interval in seconds> * 1000)) * 100 = CPU ready %

Author

Commented:
if i wanted to use the value of 300 and use a custom value, i would have to specify the dates as

23/04/2014 09:00 - 24/04/2014 09:00

is that correct?
Andrew Hancock (VMware vExpert / EE Fellow)VMware and Virtualization Consultant
Fellow 2018
Expert of the Year 2017

Commented:
Your question has gone off-topic, about CPU Ready times and performance.

If the answers to this question have been helpful, please assign points, and please post a new question for myself or other Experts to answer.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial