Portál AbcLinuxu, 10. května 2025 01:45

Dotaz: vytizeni CPU v perlu nebo na prikazovy radce

Přemek Vyhnal avatar 27.11.2007 13:41 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
vytizeni CPU v perlu nebo na prikazovy radce
Přečteno: 423×
Odpovědět | Admin
Ahoj lidi,

jak se da zjistit aktualni vytizeni procesoru na prikazovy radce nebo v perlovym scriptu?

Zatim jsem našel tohle: use Sys::Load qw/getload/; getload()[0]

ale to dela neco co nechci.. udajne prumerna zatez za posledni minutu.. ja chci neco jako mam bublani v pluginu s kachnickou do gkrellm .) nebo to cislo co ukazuje htop

Jestli je skutecny vytizeni procesoru vzdycky jenom 0% nebo 100% tak teda chci prumerny ale ne za minutu ale za kratkej casovej usek..

proste jako obsazeni ramky zjistim z "free" nebo "/proc/meminfo" tak neco podobnyho pro cpu

Dekuji!
NO RAPTORS!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.11.2007 15:54 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Odpovědět | | Sbalit | Link | Blokovat | Admin
podle /usr/sbin/lsof | grep gkrellm to vypada na /proc/stat
27.11.2007 18:40 Ash | skóre: 53
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak tak, man proc, konkrétně /proc/stat.
Přemek Vyhnal avatar 28.11.2007 00:05 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Odpovědět | | Sbalit | Link | Blokovat | Admin
skvele, dekuji!

a kdyby nekdo hledal, tak se to udela nejak takhle:
open(STAT,"/proc/stat");
sub cpu {
	seek STAT,0,0;
	<STAT> =~ m/^cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+).*$/;

	my $load = $1+$2+$3;   # prvni, druhy a treti cislo ze souboru /proc/stat (prvni radek - zacinajici cpu)
	my $total = $load+$4;  # navic ctvrta hodnota

	if ($lasttotal==0){ $ret=0; }
	elsif (($total - $lasttotal) <= 0){ $ret=100; }
	else { $ret = int((100 * ($load - $lastload))/($total - $lasttotal)); } ### tady je to dulezity.. porovnavaji se prirustky tech hodnot mezi jednotlivyma spustenima tyhle funkce

	($lastload, $lasttotal) = ($load,$total); # ulozeni hodnot pro pristi beh funkce
	return $ret; # vrati cislo v procentech (0-100)
}
NO RAPTORS!
28.11.2007 00:18 Ash | skóre: 53
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Hm, a iowait, irq, softirq -- to zanedbáváme? :)
28.11.2007 00:19 Ash | skóre: 53
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Jo takhle, vy máte kernel 2.4, tak to pak joo.
28.11.2007 00:21 Ash | skóre: 53
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Ale jinak bacha na to, ve vedlejší diskuzi je nešťastník co má softirq 80pct a nikdo asi zatím neví proč ;)
Přemek Vyhnal avatar 28.11.2007 02:13 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
no.. kernel mam 2.6.. ale nak moc se v ty hromade cisel v /proc/stat nevyznam .) tehle kod je z toho "pluginu s kachnickou a rybickama" .) do gkrellm.. takze tam s tim taky nepocitaj.. nevim.. snad to nevadi ne..
NO RAPTORS!
28.11.2007 08:38 Ash | skóre: 53
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Tak gkrell zrovna dost možná bude pasovat na to jádro 2.4 :) Jinak gkrell je aktuálně ve verzi 2, pokud je mi známo, a myslím že tam tahle kachnička není... Jo, taky mi chyběla ;(

Takže ty tři další hodnoty 5,6,7 prostě ještě přičtěte k té celkové sumě a případně si je i vypisujte a tvařte se chytře. Jak říkám, může se objevit případ kdy vám zaberou třeba 80% času :) Více vizte man proc konkrétně /proc/stat.
28.11.2007 08:43 Ash | skóre: 53
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
Alespoň pak už nebudete muset "šidit" elsif (($total - $lasttotal) <= 0){ $ret=100; }
Přemek Vyhnal avatar 28.11.2007 11:45 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
rekl bych ze ten plugin mam i pro verzi 2 (/usr/lib/gkrellm2/plugins/gkrellm-bfm.so)

no takze ty zbyvajici hodnoty proste prictu k "total", k casu flakani... navic v tom souboru mam o jednu hodnotu vic nez v manualu.. na konci je nula (?)

jinak.. moc diky za pomoc!
NO RAPTORS!
28.11.2007 07:13 pht
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
hm, az na ten kod, ktery by mohl byt, rekneme, vice v perlu a mene v C ;)
Přemek Vyhnal avatar 28.11.2007 11:47 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
Rozbalit Rozbalit vše Re: vytizeni CPU v perlu nebo na prikazovy radce
rad se neco priucim.. v perlu skoro neumim.. navic je to opravdu kod v c pouzitej v perlu .)
NO RAPTORS!

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.