Memória não usada mais, mas ainda alocada

1

Eu tenho algo meio estranho acontecendo com a memória.

Eu tenho servidores Ubuntu 14.04 com o Zimbra 8.6 com kernel (para este) 3.13.0-37-genérico. Mas eu já vi o problema com outros kernels.

Memória e troca estão cheias:

$ free
             total       used       free     shared    buffers     cached
Mem:       6112624    5991208     121416         88       4752      79224
-/+ buffers/cache:    5907232     205392
Swap:      3905532    3624768     280764

Eu achei que Zimbra estava comendo toda a minha memória, mas, estranhamente, não parece:

# ps -A --sort -rss -o comm,pmem | head -n 11
COMMAND         %MEM
java            10.6
clamd            4.7
mysqld           3.0
java             2.0
slapd            1.2
/opt/zimbra/ama  1.1
/opt/zimbra/ama  1.0
/opt/zimbra/ama  1.0
/opt/zimbra/ama  1.0
/opt/zimbra/ama  0.9

Todo o meu processo ocupa metade da memória. Meus buffers e cache não levam quase nada.

Quando eu paro o Zimbra, ainda há 3.5Gb:

# ps -A --sort -rss -o comm,pmem | head -n 12
COMMAND         %MEM
bash             0.0
bash             0.0
bash             0.0
sudo             0.0
rsyslogd         0.0
http             0.0
http             0.0
htop             0.0
init             0.0
ps               0.0

Após uma reinicialização, menos de 200Mb foi usado.

O servidor estava em funcionamento por 139 dias e o uso de memória crescia pouco a pouco a cada dia.

Minha pergunta é: o que poderia ter tirado toda a memória?

EDIT1, adicione algumas informações:

$ ls -l /dev/shm
lrwxrwxrwx 1 root root 8 mai    2 12:46 /dev/shm -> /run/shm

$ ipcs 
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    


$ df 
Filesystem                  1K-blocks     Used Available Use% Mounted on
udev                 3051744         4    3051740   1% /dev
tmpfs                 611260       496     610764   1% /run
/dev/sda2           14287344   2765996   10772548  21% /
none                       4         0          4   0% /sys/fs/cgroup
none                    5120         0       5120   0% /run/lock
none                 3056288         0    3056288   0% /run/shm
none                  102400         0     102400   0% /run/user

Após a reinicialização, (o Zimbra começou):

$ free
             total       used       free     shared    buffers     cached
Mem:       6112576    5712908     399668        832     237892    1829424
-/+ buffers/cache:    3645592    2466984
Swap:      3905532          0    3905532

Alguns gráficos da RAM (reiniciei o servidor por volta das 12:30):

O segundo gráfico mostra os resultados de:

ps aux |awk '{s+=$4} END {print s}'

E terceiro, os resultados de:

smem -tw |grep -v Area | sed 's/ //;s/ //'
    
por ouzmoutous 02.05.2016 / 12:54

1 resposta

0

Cache.

Um bom resumo no link .

Linux is borrowing unused memory for disk caching. This makes it looks like you are low on memory, but you are not! Everything is fine!

Para limpar os caches, use este comando, como root, e observe o uso de memória resultante.

echo 3 > /proc/sys/vm/drop_caches
    
por 02.05.2016 / 13:16

Tags