bsnmp a RAM

David Pasek david.pasek at gmail.com
Mon Jan 6 15:41:36 CET 2014


Ahoj,

2014/1/6 Miroslav Prýmek <m.prymek at gmail.com>
>
> Dne 29. prosince 2013 22:40 Dan Lukes <dan at obluda.cz> napsal(a):
> > Sledovat celkove mnozstvi alokovane pameti (linearni) je problematicke pokud
> > neni zatizeni toho stroej velice konstantni.
>
> Pro me je ted momentalne asi nejproblematictejsi se vubec vyznat v
> tom, co ktery nastroj vlastne ukazuje pod jakym nazvem :)
>
> Napr. to ucd mi dava:
> UCD-SNMP-MIB::memErrorName.0 = STRING: swap
> UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 4194176 kB
> UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 4194176 kB
> UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 8333220 kB
> UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 687100 kB
> UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 687100 kB
> UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
> UCD-SNMP-MIB::memShared.0 = INTEGER: 361760 kB
> UCD-SNMP-MIB::memBuffer.0 = INTEGER: 843248 kB
> UCD-SNMP-MIB::memCached.0 = INTEGER: 0 kB
> UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
> UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
>
...

>
> Chtel bych se nejak dopocitat k pameti, kterou si procesy postupne
> alokuji, ale nejak mi to teda z techto cisel nevychazi...
>
> TotalReal - AvailReal - Buffer - Shared = 8G - 0.7G - 0.8G - 0.4G =~ 6G
> V top:
> Mem: 327M Active, 5884M Inact, 1036M Wired, 823M Buf, 644M Free
>
> Kdyby tech 5.8G bylo v TotalFree, tak bych tomu rozumel - pak by cca
> 200M mely dynamicky naalokovany procesy. Takhle mi to ale moc smysl
> nedava...


S pouzitou (takze i volnou) pameti RAM je to bohuzel slozite ve vsech
beznych operacnich systemech, FreeBSD nevyjimaje.

SNMP.memAvailReal / 1024 = 671 MB, coz je skoto to same co v TOPu v
polozce Free. Polozka TOP.Free ti to ukazuje 644MB, coz jsou cisla
dosti podobna. A to je opravdu volna pamet.

SNMP.Buffered a SNMP.Shared jsou dulezite, ale to co ve vypisu SNMP
nevidim je tzv. dirty pamet. Otazkou je, jestli to SNMP umi vratit
Active nebo Inactive pamet.

TOP ti ukazuje TOP.Active Mem 327M a TOP.Inact Mem 5884M.

Ta TOP.Active i TOP.Ianactive pamet je celkove vyuzita pamet, ale
TOP.Inactive (tzv.dirty) pamet se uz "dlouho" nepouziva, ale neni
opravdu uvolnena a uvolnovat se nebude, protoze je to relativne
"narocna" operace a pro OS k tomu neni dostatecny duvod, potoze prece
ma jeste relativne dost volne pameti. Inaktivni (dirty) pamet se
uvolni az to bude opravdu potreba. Kdy to bude, to resi Memory
Management algoritmus, ktery spousti tzv. garbage.

Takze volne pameti je opravdu jen cca 671MB, ale tu neaktivni pamet je
v podstate take mozne brat jako skoro volnou, protoze ta se uvolni a
pouzije jeste pred tim, nez se zacne swapovat.

Proto sledovani pouzivani volne pameti a swapu, jak navrhoval Dan, je
asi nejlepsim identifikatorem nedostatku fyzicke pameti. Bohuzel ti to
nic nerekne o tom, jaka pamet by ti teoreticky stacila a nemuzes
ocekavat velke mnozstvi volne pameti. Kdybys toto chtel, tak bys to
mohl zkusit odhadnout podle trendu aktivni pameti.

Shrnul bych to tak, ze OS by byl hloupy, kdyby nevyuzival tak drahy
zdroj jako je pamet, takze kdyz ji ma, tak ji prote vyuzije a uvolnuje
az kdyz je potreba :-)

Doufam, ze jsem nic neprekroutil, vysvetlil to dostatecne. On me
kdytak Dan doplni nebo opravi :-)

-- 
David Pasek
david.pasek at gmail.com, +420 602 525 736



More information about the Users-l mailing list