We've got a VM running 2008 server as a Terminal Server. All works really well, but with the increased number of happy users the server is running at near 100% for CPU usage. It has 24gig of RAM so that isn't a problem. What's the best config for the CPUs so that we don't get alarm emails sent out every time it goes over 95%. And is there any way of adding extra CPUs - I believe there is a 4 CPU limit on ESX.
ESX requires the number of phyiscal CPU or CPU cores to be available per vCPU instruction cycle. therefore if you have a dual Quad core server you would have eight logical vCPUs available to service guests. now you install eight guests on to this server (for the purpose if this I am going to ignore the Service consoles user of CPU0)
if they have 1vCPU each there is not contention and all guest will receive a full core. now if these guest have 2 vCPU in their servers then you are at 2-1 utilisation and with 4 vCPU per server you are looking at 4-1 contention, now on single vCPU guests this would not be an issue, but with multi-vCPU guests the vmware scheduler will be trying to find free physical CPU,s in groups equal to the number of vCPUS in the Guest, subsequently 32 single vCPU guest running on the above server functions better that 8 Quad vCPU guests. as it is significantly easier to find a free single core that four cores. this is evidenced the guests by high context switching and in ESXTOP by a high %CPUREADY counter.
I hope this clears it up a bit for you,
If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points
Tom Howarth
VMware Communities User Moderator
Blog: www.planetvm.net
Welcome to the forums.
Does your guest have 4 vcpu's? You should see better performance with only 1 vcpu.
If you need more computing power, why not setup another terminal server guest, rather than trying to add more vcpus.
The 4 cpu limit is only at the guest level for vCPUs.
Jase McCarty
Co-Author of VMware ESX Essentials in the Virtual Data Center
(ISBN:1420070274) from Auerbach
Please consider awarding points if this post was helpful or correct
I agree with Jase, try with 1 VCPU. Also you can check the performnace using esxtop and then hitting m, this will show you the memory and cpu utlization of the VM in actual.
Regards
Anil
Save the planet, Go Green
if you found my answer to be useful, feel free to mark it as Helpful or Correct.
Hi,
You can consider setting up more reservations for this VMs vcpu and also increase shares. That will ensure that this VM is going to get more physical CPU cycles alloted to it that should be the best way to move forward if you don't want to add up one more VM with terminal server.
Thanks,
Samir
P.S : Please consider rewarding points if you think the answer is helpful.
Thanks for the replies. 1vcpu I don't think would do it, given the amount of current activity. I have reserved 10 Ghz of processing power already and it still runs high. I'm going to dig a little further to isolate which programs are hogging all that power. Cheers
Hi Jase
Maybe I missed something, but why is having only 1 vcpu better than 4? The physical server has 2 quad cores.
Cheers
Chris
ESX requires the number of phyiscal CPU or CPU cores to be available per vCPU instruction cycle. therefore if you have a dual Quad core server you would have eight logical vCPUs available to service guests. now you install eight guests on to this server (for the purpose if this I am going to ignore the Service consoles user of CPU0)
if they have 1vCPU each there is not contention and all guest will receive a full core. now if these guest have 2 vCPU in their servers then you are at 2-1 utilisation and with 4 vCPU per server you are looking at 4-1 contention, now on single vCPU guests this would not be an issue, but with multi-vCPU guests the vmware scheduler will be trying to find free physical CPU,s in groups equal to the number of vCPUS in the Guest, subsequently 32 single vCPU guest running on the above server functions better that 8 Quad vCPU guests. as it is significantly easier to find a free single core that four cores. this is evidenced the guests by high context switching and in ESXTOP by a high %CPUREADY counter.
I hope this clears it up a bit for you,
If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points
Tom Howarth
VMware Communities User Moderator
Blog: www.planetvm.net
Thanks Tom
You've put it very succinctly and clearly. My googling had led me down this path, but it is good to see it in an answer. Tried to reduce the number of vcpus last night, but the guest wouldn't start - a message about not there being a conflict or problem with the allocation of hardware resources. I suspect this was due to the reservation I'd put on the vcpus to make sure it didn't shut down (confession here - I didn't set up the vm and if I did, I would only have given it two). Which makes sense as I had 10360 set as reserved for the CPU, which isn't possible if you only have 2 vcpu. I'm going to try it again tonight (it's running in a 24/7 type business) and default the reservations.
Once again, thanks to all for clarifying things. Hope some other rookies benefit from the wisdom on this post too!
Cheers
Chris
Reducing the VM to 2 vCPUs would be a good idead but you really do need to look at exactly what is using so much CPU within the guest.
Also have a look at the HAL, make sure it is correct or you can get completly wacky results with regards to CPU and RAM usage.
An issue when running TS in a virtual server is that the many processess generates soft page faults in memory which ESX not handles very well and makes the CPU utilization very high. Check for page faults with perfmon and if possible split the load on 2 or more servers and you will probably get much better performance than having one big server.
Have a look at this
http://professionalvmware.com/category/page-faults/
If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points
Which CPU are you using?
Choose an AMD CPU Shanghai which has NTP or the coming Intel Nehalem CPU with EPT.
Look at page 18 of the amd docu, they mention 58 % better performance with NTP
developer.amd.com/assets/NPT-WP-1%201-final-TM.pdf
Both reduce context switches
Look at context switches
Take some infos from this blows:
Take a look at the vmware world präsentation
Grap some infos from citrix on vmware presentations