|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Snmp cpuRawIdle showing double
On 4/5/2011 2:10 PM, Nathan March wrote:
> Polling the UCE-SNMP-MIB::ssCpuRawIdle counter results in a total that's
> double the actual number of cpu's on the system, so for example:
>
> nms ~ # snmpwalk -v 2c -c 'XXX' xen1 1.3.6.1.4.1.2021.11.53 && sleep 60
> && snmpwalk -v 2c -c 'XXX' xen1 1.3.6.1.4.1.2021.11.53
> UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 1313274
> UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 1324862
>
> (1324862 - 1313274) / 6000 * 100 = 193%
Dug into the net-snmp source code to figure out where it pulls that data
from, here's a test case:
x=$(cat /proc/stat | grep cpu0 | awk '{print $5}') && sleep 60 &&
y=$(cat /proc/stat | grep cpu0 | awk '{print $5}') && echo -e
"X:$x\nY:$y\nIDLE:" $(echo "scale=3; ($y-$x)/6000*100" | bc)
xen1 ~ # x=$(cat /proc/stat | grep cpu0 | awk '{print $5}') && sleep 60
&& y=$(cat /proc/stat | grep cpu0 | awk '{print $5}') && echo -e
"X:$x\nY:$y\nIDLE:" $(echo "scale=3; ($y-$x)/6000*100" | bc)
X:15718848
Y:15730453
IDLE: 193.400
>From the man page, it says the user_hz is 1/100th:
cpu 3357 0 4313 1362393
The amount of time, measured in units of USER_HZ
(1/100ths of a second on most architectures, use sysconf(_SC_CLK_TCK) to
obtain the right value), that the system spent in user mode, user mode
with low priority (nice), system mode, and the idle
task, respectively. The last value should be USER_HZ times the second
entry in the uptime pseudo-file.
and sysconf agrees:
xen1 ~ # perl -e 'use POSIX; print POSIX::sysconf(&POSIX::_SC_CLK_TCK);'
100
Anyone have any ideas?
This works as expected on a very outdated dom0 I have, 2.6.21 and xen
3.2.1. It seems to be broken on at least xen 4.0 (2.6.31.13) and above.
- Nathan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|