Link to home
Create AccountLog in
Avatar of dougdog

asked on

virtual sql server reporting cpu ready of 3000ms

im running a sql 2005 server on vsphere 5.0
the server has 2 x cpu
I set up an alert to see what the cpu ready times were
I often get alerts to say the cpu ready time is 3000
im aware this can be caused by 2 many cpus
we had another sql server that reported high cpu ready  and we added more cpu and it made it faster
should I add or remove cpu to this server
Avatar of Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Flag of United Kingdom of Great Britain and Northern Ireland image

what's the baseline over two weeks?
Avatar of dougdog


please see attached baseline for 2 weeks
I would add another CPU, and try it for a few weeks.

is performance an issue on the VM?
Avatar of dougdog


so high cpu ready time can also mean MORE cpus are needed
it can also mean too many cpus, and scheduling issues.
Avatar of dougdog


which would mean my hosts are not powerfull enough is that correct
see my EE Article

HOW TO:  Performance Monitor vSphere 4.x or 5.0

is performance suffering?

create a baseline for the server, and check disk and cpu activity, doe sthe cpu bottleneck at 100%
Avatar of dougdog


if im correct cpu ready means the server is waiting for a physical cpu to be ready
so high cpu ready could only mean

not powerfull enough cpu in host
2 many cpus assigned to vm

surely it could never mean that I need more cpus for the virtual server
The higher the ready time is, the slower the virtual machine is performing.

The ready time should preferably be as low as possible. Virtual machines that are allocated multiple cpus or have high timer interrupts are more frequently seen with high ready time values.

see here

is performance of SQL affected?
Avatar of dougdog


but what im trying to figure out is could it need another cpu
im told cpu ready should be no higher than 1000ms per vcpu
I have 2 vcpus so it shouldn't be higher than 2000ms
but mine is alerting at 3500 ms
but I really think removing a cpu would make it slower
I had high cpu ready on another sql server and turned out adding cpus made a big difference where everyone told me I should removce cpus
I'm not sure where to you have the figures from, VMware states as low as possible, these figures could be good for your servers.

usually you would assign, a single vCPU, and check performance of the VM, if VM performance is poor, add another CPU.

very few require more than 2.

However SQL can have issues under a hypervisor, if you are experiencing performance issues with SQL, but I've not seen any other metric to support this.
Avatar of dougdog


so your saying 3500ms is not high
User generated image
these are stats from our vCenter Server which has no performance issues, max cpu ready is 8000! (it has 1 vCPUs)

no, 2000, 3,500 is not high!

it's milliseconds!
Avatar of dougdog


so what should I set my alerts to if this is incorrect
but it does also state:-

Since CPU Ready is most likely to affect VMs with the largest CPU allocations first, use those as your “canary in a coal mine”.

e.g. every installation is different.

if you suspect you have a performance issue, on your VM, highlighted by %CPU Utils, and sluggish performance in the VM, then start looking at other metrics.
Avatar of dougdog


%cpu util as in esxtop
vSphere Performance Charts.

Please see my EE Article, and read the Performance section on CPU and Memory.

HOW TO:  Performance Monitor vSphere 4.x or 5.0
Avatar of dougdog


with no disrespect

"Please see my EE Article, and read the Performance section on CPU and Memory"

In this article it shows graphs
a mention of veeam monitor
and also links to VMware articles

it does not explain  what values are good or bad
it also doesn't explain to me how to really troubleshoot performance issues and the key metrics to look for
I have vms that have a very low active memory which suggest no need for more ram but are very slow I add more ram and it sorts the problem
machines that have high cpu ready and low cpu utilization when monitored over a week which suggests cpu is fine
I then add another cpu and this makes a world of difference
I realize that I don't know a lot about this but that's why im asking the question

my problem is that all these metrics are so confusing and nearly every single
article you read on the internet has a different take on it

perfect example was some people say 3000 ms is high cpu ready others say this is low
some people say cpu latency is the same as cpu ready
3000ms is not high for our environment....

what are all you other servers like?

does your server suffer from poor performance? yes or no?

please upload CPU Utilisation Figures of the VM?

if you look at our vCenter Server, it's at 8000ms!

see this EE Article, if you think yours is high!
Avatar of Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Andrew Hancock (VMware vExpert PRO / EE Fellow/British Beekeeper)
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of dougdog


its just diagnosing servers in gereral
how to do it
what to look for
whats good whats bad
first start with high cpu and high memory.

ignore spikes, look for periods, of flatline for many hours!

and then ask yourself, is that normal...why, what is happening, is performance affected, our users complaining....

e.g. virus scanning a server will cause 100% CPU, Updating a Server will cause 100% CPU, Backups/Snapshots will cause 100%, this does not mean, add another CPU, it's normal for the server, when that activity is occuring. It's called a Baseline.

Get to know your environment, and Baseline performance for your servers.

and the Best Articles I've highlighted, written by the VMware Communiy Folk.
Avatar of dougdog


ok so high cpu being cpu utilization
and high memory being active memory
Yes, do not get hooked on a single metric.

Check the VM Summary, Consumed Host CPU and Consumed Host Memory.

Active Guest Memory, which should be lower than Consumed Host Memory.
Avatar of dougdog


ok one last thing what is your description of the consumed host memory on a vm
the memory that's been allocated from the Host. it will always be large than what you have assigned.

e.g. you assign 4GB to a VM, 4GB is taken from the Hosts Memory, plus a little more to manafe the VM.

it's shown in the VM Summary.
Avatar of dougdog


so active memory over say 2 weeks would give the best reading of what the vm is using