VMware Cloud Community
C_Charpentier
Contributor
Contributor
Jump to solution

Limited CPU at 50% on a 2CPU w2k3 guest OS

Hi everyone !

I've disapointed with my problem.

I have an ESX 3.5 with 2 Xeon bi core, so i have 4 CPU which can be available for my guests OS.

I've got two W2k3 guest on 1 CPU and another one with 2 CPU. So i used my all 4 CPU.

When i see the task manager of this last one, when the software on it works hard, i've got two view of the CPU works.

If i choose one graphe by CPU, i can see they're not at all at their cpu limit, and if i choose one graphe for both, i see the CPU limited at 50%...

I've searched on the guest OS which is an W2k3 Server, i can see the two CPU. And with Vi Center, the percent CPU utilisation doesn't go higher than 50%...

I don't know where this limit could come from?

Anyone has an idea?

Thanks for your help Smiley Wink

0 Kudos
1 Solution

Accepted Solutions
eeiseman
Enthusiast
Enthusiast
Jump to solution

It sounds like your application is single threaded. The Windows 2003 kernel is really good about taking a single threaded application and bouncing it between the 2 CPU's. The net result is you see 50% usage on both CPU's. If the application can't actually fire up another thread, you won't see any higher results.

View solution in original post

0 Kudos
5 Replies
eeiseman
Enthusiast
Enthusiast
Jump to solution

It sounds like your application is single threaded. The Windows 2003 kernel is really good about taking a single threaded application and bouncing it between the 2 CPU's. The net result is you see 50% usage on both CPU's. If the application can't actually fire up another thread, you won't see any higher results.

0 Kudos
mike_laspina
Champion
Champion
Jump to solution

Hello,

This does not sound correct. Are you assigning CPU to VM as in "affinity" on the VM settings area?

Granting a VCPU does not imply that the CPU is all used.

Can you post the vmx file?

http://blog.laspina.ca/ vExpert 2009
0 Kudos
C_Charpentier
Contributor
Contributor
Jump to solution

Hi !

I didn't assign CPU affinity to my VM.

I can't post the vmw for now.

I know if i've got 2 vCPU, both won't be all used but sometimes

In my VM, i've got an SQL Server. When one person make a request, the vCPU works well and sometimes it goes up until 90-95% and after goes down.... that's the normal case.

My problem is when at least two person make a request DTS, the vCPU goes up until 50% ,and a stay at 50%, it's like if it use only one vCPU.

The CPU on my HP Proliant ML370 G5 are Xeon dual core 1,866GHz.

The hyperthreading has been disabled by the society which implement our virtual infrastructure.

Is it good to disabled it?

0 Kudos
Texiwill
Leadership
Leadership
Jump to solution

Hello,

Moved to the Virtual Machine and Guest OS forum.

I would not use the task manager to get any ideas on pure CPU performance numbers. I would use it as a guage to tell if things get better or worse.

Use the VIC to see performance numbers of the vCPUs for the VM. It does not sound like there are many issues however, it shows that more threads are in use as both CPUs are being used.


Best regards,

Edward L. Haletky

VMware Communities User Moderator

====

Author of the book 'VMWare ESX Server in the Enterprise: Planning and Securing Virtualization Servers', Copyright 2008 Pearson Education.

CIO Virtualization Blog: http://www.cio.com/blog/index/topic/168354

As well as the Virtualization Wiki at http://www.astroarch.com/wiki/index.php/Virtualization

--
Edward L. Haletky
vExpert XIV: 2009-2023,
VMTN Community Moderator
vSphere Upgrade Saga: https://www.astroarch.com/blogs
GitHub Repo: https://github.com/Texiwill
0 Kudos
mike_laspina
Champion
Champion
Jump to solution

MSSQL has a scheduling function that performs better with hyperthreading disabled. VMware performs better with hyperthreading on for most VM's and I have configured both and prefer it enabled as the overall gain is about 15%more efficient on max CPU usage. If you are going to use more than one CPU for an SQL server you may need to keep the VM from running its threads across two physical CPUs. I have seen some indication that this is less that optimum as the built in MSSQL scheduling function does not work optimally when this occurs. You can use CPU affinity to keep the VM from running across more that one physical core.

http://blog.laspina.ca/ vExpert 2009
0 Kudos