Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


Dilemma with choosing the right setup with cores and sockets for terminal server???

Posted on 2016-11-09
Medium Priority
Last Modified: 2016-11-14
Dear Sir/Madam,

I explain the situation down below and the current whay we have it setup is with 6 sockets 4 cores. Our cpu is constantly on high usage and we think that we could optimise
 the performance when we adjust the current setup. The question is how would you do that?
So I have a server with 2 cpu,s, both have 6 cores with hyperthreading so a total of 24 vCPU.

How would you split that up on a terminal server in VMWare?
1 socket, 24 cores
2 sockets, 12 cores
4 sockets, 6 cores

I really appreciate any help you can provide,

Question by:Marcos Santo
  • 10
  • 7
  • 2
LVL 29

Expert Comment

by:Michael Pfister
ID: 41880106
How many terminal servers? Just one? How many concurrent users?
How many other VMs on this VMWare server?
Is this a VMWare cluster or just a stand-alone host?
Where do you see the high CPU load? On the terminal server? If yes, check with Windows Task Manager which processes are using your CPU

Author Comment

by:Marcos Santo
ID: 41880107
Hi there,

It is just 1 Terminal Server (Windows Server 2012 R2 with RDS), about 30 users, stand-alone host.
High cpu load shows on the VMware Host, Task Manager in Windows Server shows around 40-60%.
It's just one Terminal Server on the host, no other vm's.

Thanks in advance!
LVL 29

Expert Comment

by:Michael Pfister
ID: 41880280
Just one VM on one server? Then it doesn't matter how you distribute your CPUs and cores. You won't gain a bit.
Check VMWare real time monitoring to find out which processes are eating up the CPU.
Is this all the time? Or just a few peaks over the day?
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.


Author Comment

by:Marcos Santo
ID: 41880282
If I check online, then the way of distributing the cores does seem to make a difference. Currently the terminal server now "thinks" he has 6 processors with each 4 cores. If we change this to like 4 processors with each 6 cores, wouldn't server 2012 handle the CPU requests differently/faster ?
LVL 125
ID: 41880289
It's quite simple, only use CORES if you have licensing requirements.

VMware vSphere by DEFAULT uses the correct allocation for a VM, which is use SOCKETS.

So that's 2 or 4 vCPUs (CPUS) in a VM.

You will find that using Terminal Services on a virtual server SLOW compared to physical hardware.

So you may find performance e.g. CPU tops out at 90-100% very quickly for 15 concurrent users.

So 30 users, reduce to 15 users, and create a VM with 2 sockets, and build another ts server.

So scale out and build more TS servers, with dual processors, or switch to a physical server, and the same physical server, will provide you with 50 concurrent users per physical server.

also have a read of the following

vSMP (virtual SMP) can affect virtual machine performance, when adding too many vCPUs to virtual machines that cannot use the vCPUs effectly, e.g. Servers than can use vSMP correctly :- SQL Server, Exchange Server.

This is true, many VMware Administrators, think adding lots of processors, will increase performance - wrong! (and because they can, they just go silly!). Sometimes there is confusion between cores and processors. But what we are adding is additional processors in the virtual machine.

So 4 vCPU, to the VM is a 4 Way SMP (Quad Processor Server), if you have Enterprise Plus license you can add 8, (and only if you have the correct OS License will the OS recognise them all).

If applications, can take advantage e.g. Exchange, SQL, adding additional processors, can/may increase performance.

So usual rule of thumb is try 1 vCPU, then try 2 vCPU, knock back to 1 vCPU if performance is affected. and only use vSMP if the VM can take advantage.

Example, VM with 4 vCPUs allocated!

My simple laymans explaination of the "scheduler!"

As you have assigned 4 vCPUs, to this VM, the VMware scheulder, has to wait until 4 cores are free and available, to do this, it has to pause the first cores, until the 4th is available, during this timeframe, the paused cores are not available for processes, this is my simplistic view, but bottom line is adding more vCPUs to a VM, may not give you the performance benefits you think, unless the VM, it's applications are optimised for additional vCPUs.

See here

see here


also there is a document here about the CPU scheduler



Author Comment

by:Marcos Santo
ID: 41880303
So this is my current setup (attachment),
When you say "So that's 2 or 4 vCPU's"...are you talking about the Sockets if I understand correctly ? or the total number of cores in the botom ?

Sorry for my confusion, but I would really like to make sure that I don't misunderstand this (again).

Thank you.
LVL 125
ID: 41880314

and over subscribbed your VM!

if you are going to allocate that much resource to a VM, you might as well forget the hypervisor and install on bare metal!

change to 2 sockets or 4 sockets, and check performance

So that's 2 or 4 in the top box - sockets

and 1 core in the bottom box!

Did you get a chance to read what I wrote, and read the links ? (bottom one at least!)

Author Comment

by:Marcos Santo
ID: 41880369
Hi Andrew,

Thanks again for all the information. In the last article they are talking about Numa, I have checked the server with ESXTOP and find that in my Guest (Terminal server) it's currently set to 0,1  (which is not good I think and therefore...as you said..the performance issues). If I see correctly in ESXTOP, they have 2 NUMA, but it's not (correctly) used.

Is this correct what I'm saying or do I still not understand correctly ? (sorry for asking so much :P)

When we put the bottom number of cores per socket on 1, is this best practise, or can we set it to like 6 (maximum), because it has 6 cores per socket ?

Or is this the miscalculation that everyone makes and the most importing thing is the socket ?

Thank you very much.

ESX TOPHardware resources
LVL 125

Accepted Solution

Andrew Hancock (VMware vExpert / EE MVE^2) earned 2000 total points
ID: 41880380
Always use Sockets and set CORES to 1.

Unless you have a licensing restriction.

VMware Defaults to Sockets, and therefore selects the best for your VM.

So 2 x 1, or 4 x 1.

Try with 2 vCPUs or 4 vCPUs, and see what performance is like.

as I wrote in my article, MOST/EVERYONE makes this mistake, and forgets what you are trying to do with virtualisation, which is consolidation, at the compromise of performance!

Author Comment

by:Marcos Santo
ID: 41880443
Good afternoon Andrew,

We will start with 4 vCPU's with 1 core to see what the performance will do.
Thanks again for the explanation and the very quick replies.

I will let you know how the change will affect the VM.
Don't know for sure if I can do this today, maybe it will be this weekend.


LVL 125
ID: 41880503
not a problem, and then try 2!

when you find there is no performance increase by adding processors, that's the sweet spot, and I think you'll find scaling out is better than adding processors.

Author Comment

by:Marcos Santo
ID: 41881724
Performance went from ok/bad to really really poor
after adjusting it to 4/1
What is the next step.....add more sockets or switch back to the previous overkill cpu's ?


Author Comment

by:Marcos Santo
ID: 41881780
Goodmorning Andrew,

We had to shutdown the server during production and we gave it 16 sockets with 1 core
performance is back to normal - we keep monitoring it during the day, but now it's around 50% all the time with +- 30 users

CPU and Cores
LVL 125

Assisted Solution

by:Andrew Hancock (VMware vExpert / EE MVE^2)
Andrew Hancock (VMware vExpert / EE MVE^2) earned 2000 total points
ID: 41881790
Okay, so a change from 6x4 to 4x1 to 16x1

did you try 8 x 1 ?

But if performance is good for you, then that's the configuration you need.

We still recommend, many TS servers.

Author Comment

by:Marcos Santo
ID: 41882032
Hi Andrew,
Yes we went from 6x4 (sluggish) to 4x1 (really, really bad) to 16x1 (seems ok/good so far). some users say it's faster...some users say it's the same.....
Keep you posted about the peformance, we're already looking to add a TS, but first we're gonna try to add sockets to see if the performance goes up.
Do you happen to know what is better for SQL ? I'm aware you are a VMWare and not SQL expert (I think). But do you have any experience in settings sockets/cores to SQL servers ? Currently the SQL server is set to 2x1
LVL 125
ID: 41882061
Exactly the same for SQL and ALL VMs!

Do not oversubscribe, and allocate the sockets you require.

But remember, performance as a VM is not ever likely to match a physical server.

Author Comment

by:Marcos Santo
ID: 41885921
Andrew thanks once again,

The story is clear and we are now monitoring the performance.
We are using 16 sockets and 1 core.

Author Closing Comment

by:Marcos Santo
ID: 41885923
Thanks everyone for responding!!!
LVL 125
ID: 41885929
no problems

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this article, I will show you HOW TO: Create your first Windows Virtual Machine on a VMware vSphere Hypervisor 6.5 (ESXi 6.5) Host Server, the Windows OS we will install is Windows Server 2016.
This article outlines why you need to choose a backup solution that protects your entire environment – including your VMware ESXi and Microsoft Hyper-V virtualization hosts – not just your virtual machines.
Teach the user how to configure vSphere Replication and how to protect and recover VMs Open vSphere Web Client: Verify vsphere Replication is enabled: Enable vSphere Replication for a virtual machine: Verify replicated VM is created: Recover replica…
Teach the user how to configure vSphere clusters to support the VMware FT feature Open vSphere Web Client: Verify vSphere HA is enabled: Verify netowrking for vMotion and FT Logging is in place or create it: Turn On FT for a virtual machine: Verify …
Suggested Courses

579 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question