Trying to plot CPU load on my server, with the following hardware: ProLiant DL360p Gen8 (same behavior on ProLiant DL360 G7).

The machine is running VMWare ESXi5.1

To create a CPU spike I run dd if=/dev/zero of=/dev/null, and I know the CPU is overloaded, because I can see a correlating spike in the graphs displayed on vCenter.

enter image description here

However, running this snmpwalk:

snmpwalk -v 1 -c ******** 192.168.MY_IP

Shows the following results:

iso. = INTEGER: 3
iso. = INTEGER: 2
iso. = INTEGER: 2
iso. = INTEGER: 3

Am I not looking into the right MIB? Should I be multiplying these by a constant?

By the way, using HP Agentless Monitoring I was able to get some cpu stats, but not what I'm looking for, at least nothing I could find wading through these MIBs.

  • from the snmp walk it's shown you have 4 processor, on your graph i only see 1 graph, how do you create the graph ? (based on which oid ?). your graph using % which i believe the snmp result not in %. – chocripple Dec 10 '12 at 9:50
  • This is the graph shown for the machine on vCenter, under "Performance" in the "Monitoring" tab. It doesn't specify what exactly it's showing, but there's a specific correlation between when I start the CPU-intensive process and the spike in the graph – Ovesh Dec 10 '12 at 12:12
  • That's the server's aggregate CPU utilization. – ewwhite Dec 11 '12 at 1:17
  • so i believe Esxi monitoring not came from snmp. it's internal Esxi. you can't compare it directly with snmp walk result (cmiiw) – chocripple Dec 11 '12 at 1:32
  • @Rikih OK, I can't compare it directly. But there should be at least some correlation between them. There is no change in the CPU values I'm getting at all, in any of them. – Ovesh Dec 11 '12 at 5:28

Try using the the stress utility to generate load in Linux, please. It's very granular and makes more sense than what you're doing.

What I see you doing is generating a single-threaded I/O load on a 4-CPU virtual machine. The CPU graph you pasted-in from the vSphere client shows a 25% load because you're only straining one of the four CPU's assigned to the virtual machine.

Download stress (which is available for most Linux distributions) and try with some specific parameters...

For instance, simply running the following on a 4-CPU virtual machine:

# stress -c 4
stress: info: [594013] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd


enter image description here

  • However, there is a definite correlation between when I start the CPU-intensive process and the spike in the graph. So why don't I see any change in the metrics of any of the 4 CPUs? – Ovesh Dec 10 '12 at 12:13
  • What are you running snmpwalk against? It's not very clear. – ewwhite Dec 10 '12 at 12:21
  • Sorry, should have made it clearer. It's running against the SNMP agent running on the machine itself, not against the iLO. The iLO itself (as far as I could see) doesn't offer any CPU load data. – Ovesh Dec 10 '12 at 12:38
  • @Ovesh SNMP on what machine? The virtual machine or the ESXi? – pauska Dec 10 '12 at 15:26
  • the ESXi itself – Ovesh Dec 10 '12 at 21:47

Vmware doesn't collect this information, and there's really no good way for it to do so. The problem is that it has no way to know when you're going to ask -- so in order to make this work, it would have to always have an average ready for the past sixty seconds. Since you might ask now and then ask a second later, it would have to properly count the CPU time forty seconds ago towards both intervals. That's a really ugly, complicated thing to do.

Supporting this would add a high cost as the SNMP agent would have to constantly probe the CPU usage and update multiple intervals all running at the same time.

  • So what does this chart actually show? – Ovesh Dec 10 '12 at 12:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.