WoRsTeNBoY schreef op donderdag 15 december 2005 @ 23:30:
(none):~ # cat /proc/stat | head -1; sleep 1; cat /proc/stat | head -1
cpu 47303011 972941 7142025 186501873 6915175 859929 2300251
cpu 47303020 972941 7142028 186501954 6915183 859929 2300252
waar ik niet direct inzie hoe ik hiervan een % kan maken

Het 4e getal is de idle time:
186501954 (2e idle) - 186501873 (1e idle) = 81
De verstreken tijd is 1 seconde (100 jiffies)
Van de 100 waren er 81 idle jiffies. Omrekenen naar procenten mag je zelf doen
Verder zitten er 9 in usermode, 0 in nice en 3 in kernel mode. Samen 12 + 81 = 93 totaal. Jouw seconde mist dus 7 jiffies
Bij mij klopt het heel aardig:
code:
1
2
3
| # cat /proc/stat |head -1; sleep 1; cat /proc/stat |head -1
cpu 136972518 82227204 112965468 1088479885
cpu 136972518 82227204 112965469 1088479986 |
0 user, 0 nice, 1 kernel, 101 idle.
Door de onnauwkeurigheid van de sleep, en wat overhead van de 2 cat zal je altijd wat afwijking hebben.
Over 10 seconde wat het 2 jiffies af:
code:
1
2
3
| cat /proc/stat |head -1; sleep 10; cat /proc/stat |head -1
cpu 136972810 82227368 112965719 1088493473
cpu 136973123 82227368 112965814 1088494067 |
user 313, nice 0, kernel 95 idle 594 = 1002
Je kan ook elke 5 minuten de boel in mrtg/rrdtool pompen, dan hoe je het niet eens om te rekenen. 5x60x100 is 30.000 jiffies in 5 minuten. Dus je gooit je idle timer rechtstreeks naar mrtg (eventueel inverteren met 30.000 - idle), en je zet maxbytes van mrtg op 30.000. Bij 30.000 idle cycles zal hij dan 100% idle in de grafiek plotten.
[
Voor 12% gewijzigd door
Coen Rosdorff op 16-12-2005 04:31
]