VMware Cloud Community
J-D
Enthusiast
Enthusiast

Citrix - Terminal Server on VMware - vCPU

Hi,

I got a VMworld 2007 slide of a Citrix session (which I could not attend because another interesting one was scheduled at the same time) that says you should only assign 1 vCPU to a Citrix or Terminal Server.

I would like to know why? If there is one app taking 100% cpu, then the entire VM is slow...so why only one vCPU?

TIA.

0 Kudos
8 Replies
Chris_S_UK
Expert
Expert

Just like any other VM, start with 1 vCPU and add more as needed. Normal rules apply, e.g. don't assign a Citrix VM with 2 vCPUs if the host only has 2 cores.

It could of course be argued that a Citrix VM is more likely to need >1 vCPU when compared with other servers.

Chris

boydd
Champion
Champion

You should start with 1vCPU (Best Practice anyways) - test it and then add additional vCPU's if necessary.

DB

DB
0 Kudos
J-D
Enthusiast
Enthusiast

I thought 1 vCPU was the best practice, not just the way to start with.

I remember things about CPU contention or something I can't explain...

But still: if one application suddenly hangs and takes 100% cpu, then every user will feel this. If there are 2 vCPU's, at least the other vCPU will still be available...

so my best practice would be to start with 2vCPU's...

0 Kudos
TomHowarth
Leadership
Leadership

That logic is true in a single user environment, however is a application suddenly takes 100% cpu chances are there are serveral users that have instances of that application open as well so it would not matter if you had one CPU or 8 CPUs all would be at 100%

The only why do deal with that scenairo is to have some sort of memory mamagement in the VM like Appsence Performance manager or TScale.

The main reason as to why you use a single vCPU is to cut down on CPU contention,

for example if you have a dual core 2 CPU host you will have 4 vCPU available for machine, if you have a dual vCPU machine you will have to wait for two of the four cores to become available to accept instructions before you could complete a single instruction within your guest, bearing in mind that the SC need access to a pCPU or core that means in reality 3 core available for instructions.

If you found this or any other post helpful please consider the use of the Helpfull/Correct buttons to award points

Kind Regards

Tom,

Tom Howarth VCP / VCAP / vExpert
VMware Communities User Moderator
Blog: http://www.planetvm.net
Contributing author on VMware vSphere and Virtual Infrastructure Security: Securing ESX and the Virtual Environment
Contributing author on VCP VMware Certified Professional on VSphere 4 Study Guide: Exam VCP-410
FERC_ESX1
Enthusiast
Enthusiast

I would say it's an issue of scale up vs. scale out. You may get better performance/user if you build multiple Citrix VMs rather than try add more users to a single VM. It's always easier for the ESX host to schedule a single CPU than to try to schedule multiple CPUs.

0 Kudos
J-D
Enthusiast
Enthusiast

If there are about 10 Citrix users, I think 1 VM is enough. I'll use 2 vCPU when on a dual CPU quad core ESX server.

When less than 4 cores contention might indeed occur more often and then I'll use 1 vCPU.

I don't understand why a memory management tool would help in controlling CPU usage... I don't know the products though.

Indeed, sometimes an app can crash for multiple users and then having 2 or 8 vCPU's won't matter. But for the occasional crash/hang of just one app...taking 2 vCPU's will at least help there. The user noticing the crash will try to kill the process and then the Citrix will be okay again and other users won't have been affected.

0 Kudos
TomHowarth
Leadership
Leadership

Appsense performance manager is actually a CPU manager, it is their Optimiser product that manages Memory, have a look at their website www.appsense.com. I would not use a dual vCPU guest under any circumstances. The CPU profile of a terminal Server is such that it is always running at high CPU usage. therefore you would be tieing down two of your pCPU cores almost perminantly. personally if your Guest needs that much CPU I would consider leaving it Physical. the other alternative is to create another Citrix Guest to half the work load, you will find that you will get more users over two single vCPU machines than you would on 1 dual vCPU guest. this is due to the fact that your guest will only be waiting for one pCPU core per processor cycle to come available, rather than having to wait for 2 pCPU cores per processor cycle.

Kind Regards

Tom,

Tom Howarth VCP / VCAP / vExpert
VMware Communities User Moderator
Blog: http://www.planetvm.net
Contributing author on VMware vSphere and Virtual Infrastructure Security: Securing ESX and the Virtual Environment
Contributing author on VCP VMware Certified Professional on VSphere 4 Study Guide: Exam VCP-410
0 Kudos
trusted1
Contributor
Contributor

I think I was at this session. The reason for choosing 1 vCPU VMs was that you cold pack more concurrent Citrix users per physical hardware, then if you used 2 vCPU VMs to load an ESX server.

0 Kudos