O kernel usa um algoritmo que tenta preencher o cache com o máximo de coisas possível. É um cache, é para isso que existe e quanto mais coisas em cache, menos coisas que potencialmente temos que voltar ao disco. Lembre-se de que o disco pode ser 100 vezes mais lento que o cache.
Por que isso é um problema ou qual problema você está enfrentando? O que você está usando para ver o quão "cheia" é a memória? Você deve estar usando a coluna de buffers / cache +/- do free:
$ free
total used free shared buffers cached
Mem: 968304 922820 45484 0 318792 205404
-/+ buffers/cache: 398624 569680
Swap: 0 0 0
Este sistema tem mais da metade de sua memória livre. Está em um estado muito feliz.
Um sistema com muita memória livre na coluna Mem geralmente significa que ele tem tanta memória que o kernel não consegue nem encontrar um uso para ele (por exemplo, mais memória do que o tamanho do banco de dados). Isso significa que você perdeu memória.