Na verdade, você está interpretando mal a saída de livre.
$ sudo free -m
total used free shared buffers cached
Mem: 3957 2746 1211 0 169 2320
-/+ buffers/cache: 256 3701
Swap: 6212 0 6212
Isso informa que você tem 3957 megabytes de memória, dos quais 1211 são "instantaneamente gratuitos" e 2746 estão "em uso agora".
Mas desses 2746 megabytes, 2320 megabytes são usados pelo cache linux porque eles não estavam sendo usados de outra forma - o Linux otimiza isso e decide usar a RAM não utilizada para acelerar o acesso aos arquivos solicitados com freqüência, etc.
Sua quantidade real de RAM livre é esta 2320 + 1211 = 3531 . Soa melhor, não é?
Não se preocupe com a memória que está sendo usada pelo cache - quando um aplicativo exige mais memória, o linux reduzirá o cache e o entregará a esse aplicativo. O importante é que o seu arquivo SWAP (6212) não está sendo usado - isso é bom.