Eu estava treinando em uma aula ensinada por Ted Ts'o, e a maneira como ele me explicou quando fiz a mesma pergunta foi assim ...
Por padrão, o kernel reserva a maior parte da memória para armazenar coisas como metadados do sistema de arquivos. É por isso que sua coluna "usada" mostra 905MB. Essa é a memória total que é "usada", ou seja, por programas e por cache. A quantidade real de memória livre está sob a coluna "livre", ao lado de "- / + buffers / cache", em outras palavras, 561MB. Essa é a quantia disponível para uso pelos programas.
Agora, como o kernel tem 462MB usado para cache, ele deixa 118MB completamente disponíveis. Quando um programa diz ao kernel, "ei, eu preciso de 50MB de memória AGORA!", O kernel extrai a memória desse conjunto "livre". Isso faz com que o conjunto "livre" fique em torno de 68 MB, o que é muito pequeno para o conforto, portanto, depois que a memória é desenhada, a quantidade de coisas armazenadas no cache é diminuída e o pool "livre" volta a funcionar.
Mas o que acontece se um programa é um porco e diz "Preciso de 120MB de memória AGORA!". Você não tem muita memória "livre", então o kernel não pode fornecê-la ao programa, mesmo temporariamente, para que o kernel busque a troca, apenas o suficiente para alocar memória livre suficiente para dar ao programa o que ele precisa, então, dados de cache suficientes são liberados para permitir que a memória "livre" volte a um nível confortável.
Por meio do processo de acomodação, os dados na troca não são liberados da troca imediatamente, mesmo que sejam dados armazenados em cache. A única vez que a memória swap vai se acostumar é se algo solicitar os metadados (ou qualquer informação armazenada em cache) armazenada naquele pequeno segmento de swap. Então não há mal em deixá-lo.
Se isso te incomoda, você pode executar 'swapoff' e 'swapon' para se livrar dele, mas não está prejudicando nada.