Strona 1 z 1

[+] Duże zużycie pamięci przez serwer, jak to zlokalizować?

: 07 marca 2010, 10:11
autor: debian_user
Witam.
S
erwer dostaje dziwnego zużycia pamięci, dziwnego bo nie widać kto zużywa pamięć ani przez:ani przez:

Kod: Zaznacz cały

ps aux
Przy każdym poleceniu mam w kolumnach zero.

Kod: Zaznacz cały

top - 10:09:21 up 20:34,  2 users,  load average: 0.07, 0.09, 0.03
Tasks:  74 total,   2 running,  72 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.7%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1028536k total,  1011164k used,    17372k free,    50248k buffers
Swap:  2650684k total,    78708k used,  2571976k free,   828716k cached

Kod: Zaznacz cały

free -m
                   total       used       free     shared    buffers     cached
Mem:          1004        987         17          0         49        809
-/+ buffers/cache:        128        875
Swap:         2588         76       2511

Kod: Zaznacz cały

 vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0  78708  16712  50404 828736    3    6    14    27  391   99  0  0 99  0
W jaki sposób można sprawdzić, co lub kto zużywa tyle pamięci?

Po ponownym uruchomieniu, mam przez jakiś czas dobrze, może przez 30 minut.

Kod: Zaznacz cały

 free -m
                   total       used       free     shared    buffers     cached
Mem:          1004        100        903          0          4         52
-/+ buffers/cache:         43        961
Swap:         2588          0       2588
Dziekuje i pozdrawiam.

: 07 marca 2010, 23:22
autor: sojeft
Jeżeli z vmstata nic nie wynika to spróbuj jeszcze atop. Inna sprawa jest taka, że ten ram wcale nie musi być zajęty w tym czasie kiedy go sprawdzasz. Istnieje spore prawdopodobieństwo, że obciążenie wystąpiło wcześniej i jądro sobie po prostu zaalokowało tę pamięć podręczną na przyszłość czy coś. Najprostszy sposób (poza vmstat) to uruchamiać po kolei usługi i patrzeć, przy której zużycie pamięci wzrośnie.

: 08 marca 2010, 00:56
autor: Karol Mrozik
A jak po tych 30 min jest z partycjami? Może coś ma 100%?

Kod: Zaznacz cały

df -m

: 08 marca 2010, 10:16
autor: lessmian2
Przecież vmstat pokazuje że jako cache jest 828736 kB pamięci (co z resztą potwierdza free). Linux keszuje sobie pamięć, w celu lepszego jej wykorzystania w późniejszym czasie. W moim odczuciu, na razie nie masz się czym przejmować.

: 08 marca 2010, 15:27
autor: debian_user
Dziękuje za wszelką pomoc. Myślę, że to wina sprzętu, a dokładnie płyty głównej. Zmieniłem ram i to nic nie dało, dołożyłem do 2GB i po godzinie miałem wolne 50MB. Po wyjęciu płyty zauważyłem spuchnięte 8 kondensatorów, więc oddałem do serwisu.
Dziękuję i pozdrawiam.

: 08 marca 2010, 22:40
autor: TooMeeK
Jak to kolega powiedział: Linux jest tak stabilny, że nawet błędy są stabilne.
Ja miałem już wadliwe kości pamięci, dyski zatrzymywane w trakcie ładowania jądra (RAID1 w trakcie testów) czy uszkodzony procesor. I raczej nie zdarzyła się zawieszenie, co najwyżej dziwne komunikaty w syslogu.
Ale spuchniętych kondensatorów i takich objawów szczerze powiedziawszy jeszcze nie widziałem. Podobny objaw z zapychaniem pamięci może występować jak np. jest uszkodzony sektor na partycji swap.

Pozdrawiam.

: 08 marca 2010, 22:58
autor: grucha
Kondensatory swoją drogą, ale z tego co piszesz wygląda to normalnie. Po prostu źle to interpretujesz. Tak jak napisał lessmian2 Linux "keszuje" pamięć ram. Druga linijka free to faktyczny stan pamięci (128 MB i 43 MB to całkiem normalny wynik). Jeżeli nadal chcesz to optymalizować, to w top-ie można za pomocą "<" i ">" zmieniać kolumnę sortowania wyników. Wystarczy ustawić, żeby sortowało po pamięci (domyślnie jest CPU) i zrobić porządek z procesami które zajmują najwięcej, a są Ci niepotrzebne.