Verifique seu uso de memória "real" com o comando "free". Note que o linux mantém coisas na memória o maior tempo possível, já que você pode usá-las novamente. Desse modo, ele cria um grande uso de memória cache / buffer.
Editar em resposta ao comentário dos Keeners:
total used free shared buffers cached
Mem: 4058084 3974976 83108 0 89152 3520952
-/+ buffers/cache: 364872 3693212
Swap: 2040212 157048 1883164
Você verificou a linha "- / + buffers / cache" (que eu duvido que você possa ver isso claro no topo), você ainda tem muito pouco espaço livre nessa linha? Porque, como você pode ver no meu exemplo, essa é a memória livre "real", enquanto na primeira linha ou no topo você vê apenas um valor bastante inútil de graça. Agora eu só quero ter certeza que você entende a saída, porque se você já olhou de graça como você disse, você teria visto que você não tem um vazamento e sua máquina está apenas fazendo cache como você diz no seu comentário final para a solução .