Para o motivo mais provável em uma caixa linux, seu swappiness
está definido para um número diferente de zero. Veja This Question e a resposta aceita pelo motivo direto pelo qual você tem memória livre e troca em uso. Dito isso, se você estiver fazendo essa pergunta, provavelmente é melhor deixar o swappiness
no valor padrão.
Outro motivo possível: que 3 GB de memória estavam em uso e foram liberados apenas recentemente. O sistema não perderá tempo carregando dados de troca e memória até saber que realmente precisa (ou seja, falhas de página)
Explicação geral, como se aplica à maioria dos sistemas operacionais modernos:
Você nunca pode ter memória suficiente (a menos que você tenha mais RAM do que o espaço do disco rígido). A RAM não é apenas para memória que os aplicativos precisam executar (memória "ativa"). Ele também é muito usado para arquivos de mapeamento de memória e armazenamento em cache de dados.
O objetivo completo de um gerenciador de memória é olhar para o sistema e dizer "Tudo bem, tenho 8 GB de memória e tenho $diskSize+$applicationMemory
data para caber nele. O que é mais importante?" Ele tentará mover os dados menos importantes para o disco e os dados mais importantes para a memória.
Isso funciona muito bem para arquivos mapeados e arquivos em cache. Eles já existem no disco (como arquivos), então se eles se tornarem "sem importância", o sistema pode simplesmente soltá-los da memória. Se eles se tornarem importantes novamente, eles poderão ser carregados a partir do arquivo original. A memória da aplicação é diferente; Normalmente não existe no disco, então o sistema tem que salvar a memória de aplicativos sem importância para trocar.
O problema é que salvar memória de aplicativos sem importância em disco é tão lento quanto carregar arquivos importantes do disco; Para ajudar a minimizar a quantidade de tempo gasto esperando para descarregar a memória de aplicativos sem importância, o sistema irá "adivinhar" antecipadamente quais partes da memória não são importantes, e copia aquelas para trocar mais cedo. Isso permite que apenas descarte a memória do aplicativo da RAM, se algo mais importante aparecer.
Se você está se perguntando como algo pode ser mais importante do que a memória ativa do aplicativo, considere um processo em segundo plano que verifica as atualizações uma vez a cada 24 horas. 99,9% do tempo, este programa não está fazendo nada, mas dormindo. O sistema identificará aplicativos como esse e os enviará para swap para que haja mais espaço para arquivos em cache (como logs ou arquivos de configuração, que podem ser gravados ou lidos várias vezes por segundo).
TL; DR : você não tem RAM suficiente (RAM < tamanho do disco + memória de aplicativo). RAM livre é uma ilusão temporária que será corrigida quando você usar o sistema. O swap está em uso porque o sistema identificou a memória de aplicação de baixa prioridade e já empurrou uma cópia dela para o disco, para que ele possa rapidamente abrir espaço para coisas de maior prioridade se necessário.