VMware Cloud Community
RichardHoogenbo
Contributor
Contributor

How do cores translate to CPUs and does this matter to the installed OS?

Hello,

Now my question is this, the standard server configuration we buy is a single cpu quad core machine. Now I've searched around to find out how and if you can allocate cores to a client and that it will see these as single CPUs or that you can only assign physical CPUs. I saw different things, so I don't know anymore what to believe.

If I install windows on that client, it will only see one cpu and configure itself to use that, meaning a single processor queue etc. I'm pretty sure that IF windows would see more CPU's, it would handle it's internal housekeeping differently.

Now my worry is with this situation, if I have windows seeing only 1 CPU, (even though that is serviced on the VM host by 4 cores) and if I have a proces that's very CPU intensive and eats up a lot of CPU cycles, other processes on that same windows client will suffer purly because windows thinks it can't multitask over other CPU's because it doesn't see any other CPU's. Windows will share the processing time between the various processes as best as it can. Despite that VM will have the 4 cores handle the work of the client very quickly, I feel that Windows could do a better job if it knew it had 2 cpu's to play with in the first place and the VMhost would use all cores to service those.

So to sum it up:

- can you assign cores in a single CPU to clients so that they will be seen as individual CPUs by the clients OS?

- is there a limitation of the above by VM software versions

- is there any experience/guideline on single CPU/multicore setups or is that just not done?

Cheers,

Richard

0 Kudos
3 Replies
weinstein5
Immortal
Immortal

can you assign cores in a single CPU to clients so that they will be seen as individual CPUs by the clients OS?

Yes - in fact that is how vSphere schedules the virtual CPUs to a single core -

  • is there a limitation of the above by VM software versions

If you are talking about ESX/ESXi 4 vs ESX/ESXi 3 - no there is no diefference

is there any experience/guideline on single CPU/multicore setups or is that just not done?is there a limitation of the above by VM software versions

It is done bot typically not for production environmens - I have seen this done many times for lab/test environments -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
FredPeterson
Expert
Expert

Your subject line is misleading to what your actual question is. The physical sockets and logical processors presented by those sockets is meaningless to the virtual guest. Stop thinking about the virtual guest any differently then the physical server - but think more critically about the services you need to provide. A server running at 100% CPU isn't necessarily a bad thing unless the services it is providing are resource starved.

You are correct in that if you have an application that uses heavy CPU time it will hamper the performance of the rest of the server while Windows plays the multitasking game if you have one CPU assigned. Remember though, nothing trumps the Windows kernel. If the Windows kernel wants CPU time it will take it. Not all functions of the Windows "OS" though are kernel based, so yes, some functions of Windows will be resource starved, but not the actual critical ones that matter to the underlying OS functionality. So if you're trying to RDP to perform server maintenance and the application is still pounding away, yes, your RDP session will be slow. If its important enough that its not, then you assign a second CPU.

For example you could be looking at a situation where you have an application server and a web server together - the web server might not use much CPU at all except every once in awhile, but the application server piece uses a considerable amount all the time. One CPU may seem like the logical choice, but when the interface users have is the web site and the web site responds slowly because of the application server piece...it makes sense to give a second CPU to the guest, even if most of the time it sits and does not do much - what matters is your customers experience.

RichardHoogenbo
Contributor
Contributor

Thank you guys for the answers, it got cleared up now.

My worry was in the upcomming new server we're going to install. The server will be taking care as scan server and OCR-ing the scanned documents. The vender already warned me the OCR process would be heavy and said that is you use a dual core cpu there should be no problem because the remaining processes and windows threads can continue to run and be responsive by running on the second available core.

Now my worry was that, if I can't show cores as CPU's in the client, the multitasking done by Windows seeing only one CPU on the client, would grind the thing to a halt when the OCR servers starts doing it's work.

I got actually one of our IT guys to show me that on our standard servers with one CPU and 4 cores, VMware allows you to set 1, 2 or 4 virtual CPUs to the host. It took a while to get a proper answer from them too about this.

Once again, thank you for your answers. It helped to take my concerns away.

Gr,

Richard

0 Kudos