Portál AbcLinuxu, 13. května 2025 22:39

Dotaz: Prosim o MRTG script na zjisteni vytizenosti CPU

26.2.2008 16:23 Nes | skóre: 20 | blog: Nes
Prosim o MRTG script na zjisteni vytizenosti CPU
Přečteno: 1958×
Odpovědět | Admin
navazuji na http://www.abclinuxu.cz/forum/show/208211 (napsalo mi to ze mam napsat reseni nebo radsi zalozit new tema, tak pisu jeste jednou)

Aktualne mam DEBIAN + 4jadrovy xeon Quad-Core Intel® Xeon® X3220 BOX 2,40GHz 2x4M 1066MHz LGA-775

Potrebuji nejaky sh script pro zjisteni vytizenosti procesoru 1 , 2, 3 a 4 (jelikoz je to 4jadro tak tusim ze ne vsechna jadra budou vzdy vytizena stejne - u dvou jadra mi napr gnome-system-monitor na suse ukazuje dva rozdilne grafy) - kdosi mi predtim navrhl:

#!/bin/sh top -n 1 | awk '/Cpu/{print $2}' | cut -d '%' -f 1

toto mi sice da hodnotu, ale je PORAD stejna (3) - potreboval bych neco presnejsiho...

Ti co mi pomuzou tak zvu v Brne na kafe :-)

Diky
ICQ 454104749 zacatecnik v debianu 64 bit, mala znalost anglictiny
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.2.2008 18:20 svaca | skóre: 38
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:
300 km sice na kafe nepojedu ale mam to takhle:

crontab -l

*/5 * * * * /usr/local/mrtg-2/bin/mrtg /var/www/html/mrtg/cfg/cpu.cfg --logging /var/log/mrtg.log > /dev/null 2>&1

cpu.cfg prikladam a jeste si musis zmenit cesty ... Vysledek vypada takto:

Never give up ! Stay ATARI !
26.2.2008 18:29 svaca | skóre: 38
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
Tak ted na to koukam, jak magor, ze to CPU nefunguje .... :-) Mrknu na to a opravim si to ... :-)
Never give up ! Stay ATARI !
26.2.2008 18:29 svaca | skóre: 38
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
tak jsem mel chybu v: LoadMIBs: ceste ... :-)
Never give up ! Stay ATARI !
26.2.2008 21:18 Nes | skóre: 20 | blog: Nes
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
funguje :-)

Dalo by se to jeste nejak udelat aby meril 4 jadra zvlast misto tohoto hromadneho?

Prosim take o vysvetleni proc prikaz @top@ mi ukazuje: Cpu(s): 6.2%us, 1.9%sy,

a hned pod tim je: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

23128 afdhre1 15 0 1297m 1.2g 7884 R 31 30.8 49:22.84 create

2885 mysql 15 0 166m 47m 4608 S 2 1.2 113:59.61 mysqld

trochu nechapu proc mi nahore ukazuje 6% a jen jediny proces ma pres 30%..... - znamena to tedy 30% z jednoho jadra a to nahore 6,2% ukazuje prumer?

Dikz
ICQ 454104749 zacatecnik v debianu 64 bit, mala znalost anglictiny
27.2.2008 08:47 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
Přesně tak, zkuste zmáčknout klávesu "1" pro rozlišení jader (je na to i parametr, ale ten si nikdy nepamatuji :).
27.2.2008 09:13 Nes | skóre: 20 | blog: Nes
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
:-( ja nevim kam tu jednicku dopsat :-( - do cpu.cfg? Pokud ano kam presne tam to napsat?

Diky :-)
ICQ 454104749 zacatecnik v debianu 64 bit, mala znalost anglictiny
27.2.2008 09:49 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
Promiň měl jsem upřesnit že to je interaktivní příkaz v případě puštění top bez parametru -n 1, tedy pokud napíšete
$ top
tak pak běží top v interaktivním režimu a lze ho všelijak ovládat, napíklad klávesa 1 zobrazí jádra odděleně. Pro neinteraktivním použití top -n 1 si to opravdu nepamatuji, jen se domnívám že to jde. Nebo kdyžtak to toho konfiguračního souboru (cpu.cfg ne, konfigurační soubory pro top sice existují, ale asi by se jmenovaly jinak, více viz man top).
27.2.2008 10:54 Nes | skóre: 20 | blog: Nes
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
super, to bych presne potreboval - tam jsou vsechny 4 jadra... ale jak to zakomponovat do toho cfg aby mi to ukazalo jadro 0 pak jadro 1 atp....?
ICQ 454104749 zacatecnik v debianu 64 bit, mala znalost anglictiny
27.2.2008 13:56 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
RTFM?

   5b. PERSONAL Configuration File
       This  file is written as ’$HOME/.toprc’.  Use the ’W’ interactive command
       to create it or update it.
To znamená, že si spustíte top
$ top
pak zmáčknete "1" a pak "W". Při dalším spuštění, i neinteraktivním top -n 1 už uvidíte všechna core samostatně.
27.2.2008 15:18 Nes | skóre: 20 | blog: Nes
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
jj to vim - ja se neptal na to jak to udelat i po spusteni, ale jak to dostat do toho mrtg.cfg ....
ICQ 454104749 zacatecnik v debianu 64 bit, mala znalost anglictiny
27.2.2008 14:19 Ondrej Skutka | skóre: 1
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
Odpovědět | | Sbalit | Link | Blokovat | Admin

Na top bych se vykašlal, ten je spíš určený na interaktivní práci. Zkuste nainstalovat balík sysstat a v něm použít příkaz mpstat například takto nějak:

mpstat -P $CISLO_PROCESORU 1 1 | grep Average | awk '{print $3}'

Nevím, v jakém přesně formátu ten výsledek chcete dostat, ale s výstupem mpstat -P ALL 1 1 | grep Average si už určitě poradíte.

Co se týče toho, že hodnota je pořád stejná - to je způsobené tím, že pro první výstup topu se použije průměrná hodnota od bootu systému. Proto někdo v té vaší minulé diskusi použil top -n 2 | grep Cpu | tail -n 1, tedy nechal proběhnout top dvakrát a použil až druhý výsledek.

Rozdílnost grafů v gnome-system-monitoru může být způsobený i tím, že všechny tyto scripty používají pouze vytížení na uživatelské úrovni (bez nice procesů, vytížení na úrovní jádra atd.). Celkové vytížení procesoru se dá spočítat sečtením jednotlivých vytížení, ale pro vás bude nejspíš zajímavější hodnota 100% - doba nevytížení. Toto není to samé, neboť pokud procesor čeká na IO (harddisk), tak není v idlu, ale vlastně není ani vytížený:

echo 100 - `LC_ALL=C mpstat -P 0 1 1 | grep Average | awk '{print $10}'` | bc

27.2.2008 14:23 Ondrej Skutka | skóre: 1
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU

Už se drbu levou rukou za pravým uchem. Awk přece umí odečítat, takže:

mpstat -P 0 1 1 | grep Average | awk '{print 100-$10}'

27.2.2008 14:27 Ondrej Skutka | skóre: 1
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
A ještě pravou rukou za levým uchem. Awk umí i grepovat, takže:

mpstat -P $CISLO_PROCESORU 1 1 | awk '/Average/{print 100-$10}'

27.2.2008 15:38 Nes | skóre: 20 | blog: Nes
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
to se mi nejak nezda - vraci mi to i minusove hodnoty - nemel by vracet hodnoty od 0 do 100(%)?

xentium:/home/nes# mpstat -P 1 1 1 | grep Average | awk '{print 100-$10}' 2 xentium:/home/nes# mpstat -P 1 1 1 | grep Average | awk '{print 100-$10}' -1 xentium:/home/nes# mpstat -P 1 1 1 | grep Average | awk '{print 100-$10}' -2 xentium:/home/nes# mpstat -P 1 1 1 | grep Average | awk '{print 100-$10}' -1 xentium:/home/nes# mpstat -P 1 1 1 | grep Average | awk '{print 100-$10}' 2

tak i tak nechapu kam mam tento prikaz napsat - prosim nakopnete me - ted to mam takto:

WorkDir: /var/www/mrtg

LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt

Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ ssCpuRawSystem.0&$

RouterUptime[localhost.cpu]: public@127.0.0.1

MaxBytes[localhost.cpu]: 100

Title[localhost.cpu]: CPU Load

PageTop[localhost.cpu]:

Active CPU Load %

Unscaled[localhost.cpu]: ymwd

ShortLegend[localhost.cpu]: %

YLegend[localhost.cpu]: CPU Utilization

Legend1[localhost.cpu]: Active CPU in % (Load)

Legend2[localhost.cpu]:

Legend3[localhost.cpu]:

Legend4[localhost.cpu]:

LegendI[localhost.cpu]: Active

LegendO[localhost.cpu]:

Options[localhost.cpu]: growright,nopercent

ps - nechapu proc se mi to active cpu tak blbe zformatovalo...
ICQ 454104749 zacatecnik v debianu 64 bit, mala znalost anglictiny
27.2.2008 16:07 svaca | skóre: 38
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU
Clovece s temi skripty co jsm ti posilal (a hlavne s temi jadry) ti nepomuzu .... Protoze sam tomu poradne nerozumim a to cpu.cfg jsem musel vygooglovat ...

Ja jsem pouzit MRTg jen u dvou routeru a nepripadalo mi to moc jednoduchy, takze jinde pouzivam cacti ... Cacti je o necem jinem ... :-)

Musis si ty configy vygooglovat .. :-)
Never give up ! Stay ATARI !
28.2.2008 09:17 Ondrej Skutka | skóre: 1
Rozbalit Rozbalit vše Re: Prosim o MRTG script na zjisteni vytizenosti CPU

Hm. Mrtg vypadá dost vybíravě, co se týče vstupů:

http://oss.oetiker.ch/mrtg/doc/mrtg-reference.en.html#IExternal_Monitoring_Scripts

Takže budete muset vracet 4 řádky se dvěma hodnotama. Pokud použiju 100 - %idle jako první hodnotu a %user jako druhou, tak asi něco takovéhoto:

mpstat -P 1 1 1 | awk '/Average/{print 100-$10"\n"$3"\n01:00:00\nCPU1"}'

Nevím ale, v jakém tvaru MRTG očekává ten uptime, tak vracím něco jako hodinu. Výsledný řádek v cfg by pak vypadal nejspíš:

Target[localhost.cpu1]: `mpstat -P 1 1 1 | awk '/Average/{print 100-$10"\n"$3"\n01:00:00\nCPU1"}'`

S MRTG ale zkušenosti nemám, takže zkouším jenom střílet od boku. Ale nějak v tomto smyslu by to fungovat mohlo

Co se týče těch záporných hodnot, tak to opravdu netuším. Leda by na 10. pozici výstupu mpstatu u vás nebyla hodnota idle, ale něco, co přeleze 100... Ještě mě napadá, jestli máte locale české, nebo anglické (desetinná čárka/tečka) a jakým způsobem se s tím vypořádávají mpstat a awk a taky mrtg.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.