Memoriaszivargas - felderites

Udv!

Adott egy szerver, amin valami eszi a memoriat. Most kaptam hozza hozzaferest, de van nemi adat az elmult egy honapbol. 256G ram van benne, ebbol 1 honapja ilyet lehetett latni:


Tue May 14 10:08:01 IST 2013
             total       used       free     shared    buffers     cached
Mem:        258440      13877     244562          0        217       7932
-/+ buffers/cache:       5727     252712
Swap:         2047          0       2047

, most viszont ez van:


Mon Jul  8 15:08:01 IST 2013
             total       used       free     shared    buffers     cached
Mem:        258440      18412     240027          0        324      10778
-/+ buffers/cache:       7310     251129
Swap:         2047          0       2047

. Na jo, ez mar majdnem 2 honap. A megkapott logfilek alapjan nagyjabol folyamatosan tunt el ez a masfel giga memoria (5727 -> 7310), es nem sokat latok, hogy mi lehet ennek az oka. Ime a mem logok. Van hozza egy altalam generalt grafikon is, amin latszik nemi novekedes a puppetmasterd- nel, de a ez csak 100- 200MB, es nem masfel GB (landscape = obq).

Ezen adatokbol nem igazan lehet kitalalni (szvsz), hogy mitol fogy a memoria, de erdekelne, hogy mivel probalkoznatok ennek kideritese erdekeben. Egy szerverrol van szo, tulajdonkeppen csak puppetmasterkent szolgal, illetve ez a landscape nevu valami fut rajta. A gepnek kozvetlen Internetkapcsolata sincs, es amennyire latom, Red Hat- rol van szo, ill.:



Linux dhcp-172-19-29-160 2.6.32-358.6.1.el6.x86_64 #1 SMP Tue Apr 23 16:15:13 CDT 2013 x86_64 x86_64 x86_64 GNU/Linux

.

Koszi a valaszokat!

Hozzászólások

Ez teljesen normalis, nem memory leak, hanem a buffers/cache novekszik (pont azert, mert rengeteg memoriad van, amit a linux probal ertelmesen hasznalni)

ha erdekel, hogy pontosan mi, akkor inkabb futtass sar-t, vagyd nezegesd a /proc/meminfo-t + /proc/slabinfot-t (vagy inkabb slabtop -o c)
En nem aggodnek emiatt, ez olyan memoria, amit szukseg eseten a kernel fel tud szabaditani.

Nem en aggodom :- ).

Leginkabb ezt olvasgattam. Ez es ez:



free -m
             total       used       free     shared    buffers     cached
Mem:        258440      18424     240016          0        324      10783
-/+ buffers/cache:       7316     251123
Swap:         2047          0       2047

alapjan ugye van 256GB memoria, ebbol 18GB hasznalt, es 240GB teljesen erintetlen. Eddig teljesen egyertelmu. Ez a 18GB nem a programok altal hasznalt / foglalt memoria, hanem minden, amit a rendszer felhasznal.

A buffers + cached = 11107MB, es a masodik sorban ugye ennek az osszege (free +) es kulonbsege (used -) talalhato.

Ebben az esetben a kerdesem az lenne, hogy mi valojaban ez a 7316- os ertek? Illetve hogy tudom megnezni, hogy mennyi az a memoriamennyiseg, amit a programok valojaban foglalnak - bar tudom, hogy ez nem ilyen egyszeru kerdes.

ps -eo rss | awk '{sum=sum+$1}END{print sum}'

Ezzel eleg kozel leszel a valos memoria hasznalathoz, kiveve, hogy pl. a dinamikusan linkelt libraryk memoria foglalasat tobbszor fogod szamolni, igy extrem esetben ez sem pontos. (Nekem ez kb. 5% hibahataron belul szokott mozogni)

A /proc/meminfo-bol matekozik a free, de hogy eppen hogyan, azt nem tudom, mert az ujabb kernelekben itt bejottek uj sorok. (pl. SReclaimable,SUnreclaim,Shmem,Bounce,NFS_Unstable)

Szerintem ha nem akarsz beleorulni, akkor boven eleg az, amit a linuxatemyram.com-on leirnak :)