De load-percentage van een server meten...
Nu zat ik te denken om de algehele load als percentage te meten, maar ik vroeg me af hoe je dat het beste kan doen? Ik kijk nu elke 2 minuten of de server nog leeft met mijn NOC-script.
Maar ja, een percentage die aangeeft wat de load is, lijkt me ook zeer interessant (of kent Linux al zo'n commando?), en hoe kan ik zoiets qua berekeningen realiseren? Het lijkt me duidelijk dat ik de load (van de 5 min) steeds in de database moet opslaan, maar de berekening dan?
iemand die me verder kan helpen hiermee?
Even uitgevoerd op een test-server:
Quote:
$ top
top - 12:01:37 up 82 days, 48 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 90 total, 1 running, 89 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 506876k total, 484412k used, 22464k free, 107652k buffers
Swap: 524284k total, 8512k used, 515772k free, 262736k cached
top - 12:01:37 up 82 days, 48 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 90 total, 1 running, 89 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 506876k total, 484412k used, 22464k free, 107652k buffers
Swap: 524284k total, 8512k used, 515772k free, 262736k cached
Verder kan je per process nog vanalle gegevens bekijken (cpu, mem, ...)
Meer info op:
http://www.sitepoint.com/unix-server-performance/
of
man top
Maar het gaat me even om de berekening. En als het anders kan dan uptime, waar mee dan wel? Met 'top' geloof ik niet zo.
sys_getloadavg geeft je die gemiddelden (voor 1, 5, en 15 minuten) die uptime ook geeft.
Ik heb een keer geprobeerd uit te zoeken waar ze precies voor staan, of hoe ze berekend worden, maar volgens mij is dat het "best kept secret" van heel Linux. Het is een combinatie van CPU-gebruik, io-activiteit en etc. Wat de maximum is is ook niet helemaal duidelijk. Idle is m'n load meestal iets rond 0.nogwat, maar ik heb hem omhoog zien gaan tot 80 in sommige situaties!
edit: bij 80 is je server echter wel zo goed als dood.
Ik heb een keer geprobeerd uit te zoeken waar ze precies voor staan, of hoe ze berekend worden, maar volgens mij is dat het "best kept secret" van heel Linux. Het is een combinatie van CPU-gebruik, io-activiteit en etc. Wat de maximum is is ook niet helemaal duidelijk. Idle is m'n load meestal iets rond 0.nogwat, maar ik heb hem omhoog zien gaan tot 80 in sommige situaties!
edit: bij 80 is je server echter wel zo goed als dood.
Gewijzigd op 03/07/2012 12:22:21 door Jelmer -
http://www.linuxinsight.com/proc_loadavg.html
Deze percentages worden al automatisch voor u berekend ...
Je hebt nog meer info in '/proc/stat'
http://www.linuxhowtos.org/System/procstat.htm
Daar kan je dan het totaal CPU tijd optellen en vervolgens de load uit halen:
((total_cpu - total_idle) / total_cpu) * 100
Wat je volgens mij best kan doen is:
stuur het totaal door en het totaal-idle door.
Als je dan na 5 minuten terug gaat controleren, dan kan je daarvan het vorige totaal aftrekken.
Zo weet je dus de load van de laatste 5 minuten.
Ik was even aan het zoeken naar een voorbeeld-script, en ik denk dat dit het beste in de buurt komt: (shell)
http://colby.id.au/node/39/
Is het zoiets dat je zoekt?
Gewijzigd op 03/07/2012 12:48:37 door de VeeWee