Como KahWee Teng disse, não é uma coisa ruim. Parece que a maioria da sua memória RAM está sendo usada para cache, o que é uma coisa muito boa. Veja aqui para mais detalhes:
Portanto, free
reporta 12318288 bytes totais, 11916148 usados e 402140 livres (efetivamente nada).
Então, top
é assim:
Mem: 12318288k total, 11916596k used, 401692k free, 53756k buffers
Swap: 11894776k total, 40596k used, 11854180k free, 11291256k cached
Mas os primeiros processos quando classificados por MEM% são:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1288 postgres 20 0 6361m 6.0g 6.0g S 0 51.3 4:14.82 postgres
1285 postgres 20 0 6358m 125m 125m S 0 1.0 0:04.04 postgres
490 www-data 20 0 232m 30m 4536 S 0 0.3 0:00.42 apache2
493 www-data 20 0 229m 27m 4412 S 0 0.2 0:00.30 apache2
499 www-data 20 0 227m 25m 4552 S 0 0.2 0:01.30 apache2
500 www-data 20 0 227m 25m 4272 S 0 0.2 0:00.65 apache2
491 www-data 20 0 225m 23m 4328 S 0 0.2 0:00.22 apache2
583 www-data 20 0 226m 23m 4272 S 0 0.2 0:00.17 apache2
32603 nobody 20 0 145m 21m 876 S 0 0.2 0:00.46 memcached
Nada realmente parece estar ocupando memória além dos 6GB atribuídos a postgres, então por que todos os 12GB de RAM são usados?
Como KahWee Teng disse, não é uma coisa ruim. Parece que a maioria da sua memória RAM está sendo usada para cache, o que é uma coisa muito boa. Veja aqui para mais detalhes:
É porque o linux não libera completamente a memória. Ele armazena em cache para a memória, caso você precise no futuro. Se o disco estiver cheio, o último segmento de memória usado será liberado. É algum tipo de ajustes. (forums.gentoo.org/viewtopic.php?t=175419) explica a situação muito melhor do que eu: >
Buffers + Cache.
Veja este exemplo de saída "free -m":
$ free -m
total used free shared buffers cached
Mem: 1936 1413 522 0 14 500
-/+ buffers/cache: 898 1037
Swap: 2047 259 1788
Ram total é 2Gb, usado (1413) == 898 (processos) + 14 (buffers) + 500 (cache)
O Linux utiliza bastante RAM para armazenar em cache / buffer, então é muito normal usar 100% de RAM. Os problemas surgem sempre que a memória usada pelos processos atinge 100% (ou seja: você ficou sem RAM).