bsnmp a RAM

Dan Lukes dan at obluda.cz
Sun Dec 29 22:40:49 CET 2013


On 29.12.2013 18:32, Miroslav Prýmek:
> Jde mi o jakoukoli "rozumnou" metriku --
> tj. vytahnout ze snmp nejaky cislo, ktery by melo smysl sledovat - tj.
> napr. za normalnich okolnosti by to cislo melo treba oscilovat kolem
> nejake hodnoty, ale nemelo by neustale rust - to by znamenalo memory
> leak nebo nejaky jiny problem.

Otazka "co sakra vlastne sledovat" je zajimavy problem sam o sobe, 
nezavisle na otazce jak/cim to pak sledovat.

Alokaci realne pameti smysl sledovat nema, ta by se mela neustale tocit 
okolo 100%, protoze co nepouziji aplikace, to by mely pouzivat cache 
diskoveho subsystemu.

Sledovat celkove mnozstvi alokovane pameti (linearni) je problematicke 
pokud neni zatizeni toho stroej velice konstantni. Vetsina verejnych 
serveru bude v zavislosti na zatizeni alokovat dost rozdilna mnozstvi 
pameti a tyhle vykyvy budou typicky vetsi pomale vykyvy zpusobene memory 
leakem. Obzvlast, kdyz to sledujeme poscitane pres cely server.

To uz je mozna lepsi mit natypovanou pametovou narocnost konkretnich 
daemonu a nastavit jim podle toho ulimit. Pak uz jen staci sledovat, kdo 
byl systemem zastrelen pro prekroceni limitu. Ale to je dost narocny a i 
tak je to jen heuristika.

To o cem mluvis by se tak podle me dalo sledovat snad jedine v podobe 
trendu dlouhodovych prumeru. Neco jako - zaznamenavat prumerne alokovane 
mnozstvi pameti za 24 hodin (to eliminuje intradenni vykyvy zpusobene 
ruznym pouzivanim) a sledovat v delsim horizontu nekolika tydnu trend 
techto hodnot (do eliminuje vykyvy v ramci pracovniho tydne). A pokud 
tahle krivka vykazuje trvaly rust (po zignorovani lokalnich kratkodobych 
poklesu) tak vis, ze je neco spatne.

Na tom poznas, ze je neco v neporadku.

Ale je to pomerne slozitej zpusob. Sleduju ukazatel, kterej ma trochu 
podobny vlastnosti jako to co jsem popsal, je pro sledovani jednodussi, 
za cenu toho, ze nezachyti to problem dokud se nedobere do dost velkejch 
rozmeru.

Sleduju vyuziti swapu.

Postupne rostouci vyuziti swapu ukazuje na memory-leak, ale v podstate 
jakekoliv netrivialni vyuziti swapu ukazuje na problemy systemu ...


> Proste neco na zpusob metriky "pocet procesu" nebo "pocet navazanych
> spojeni" -- nejaky vesmes libovolny cislo, na kterym by se poznalo ze
> "neco neni v poradku"

Pocet procesu a pocet navazanejch spojeni je dalsi mozna vec ke 
sledovani, ale i tady musis sledovat dlouhodoby trend, nikoliv hodnotu v 
konkretnim okamziku nebo kratkem obdobi.

Sledovani kazdy z tech veci te upozorni na jinej typ problemu. Nade 
vsechnu miru rostouci pocet procesu nemusi zpusobit podstatny rust 
alokovany pameti, pocet navazanych spojeni (ja bych to ale spis videl na 
pocet otevrenejch handlu, jakejkoliv) nemusi bejt spojenej s velkym 
mnozstvim procesu.

No, a taky lze zvolit uplen jinej pristup - takovej Apachovskej (ale 
pouzivaji to i jine servery). Oni proste vedi, ze bez ohledu na 
testovani k necemu takovymu obcas stejen dojde. Apachovske synovske 
procesy proto obslouzi jen urcity pocet pozadavku a pak se ukonci. 
System tak uvolni vsechny zdroje toho procesu, vcetne "zapomenutych" a 
serverovy manager nastartuje novy, "cisty" proces.

Tim chci rict, ze nekdy muze bejt nejlepsi ten celej server proste 
preventivne jednou za cas otocit ...

Dan





More information about the Users-l mailing list