(postado como resposta, pois demorou muito para ser adicionado como um comentário adicional à resposta de Avery Payne)
Além disso, se swap tiver sido usado durante um período de pico que já passou, você pode descobrir que a maioria dos dados em swap também está atualmente na RAM. Se o Linux ler páginas de swap para a RAM, ele não desalocará imediatamente o espaço de troca, a menos que precise dele para obter mais dados, dessa forma, se precisar trocar as páginas de volta (e saber que os dados nelas não foram alterados) ) realmente não precisa gravar as páginas no disco como elas já estão lá.
Veja / proc / meminfo para detalhes. Em um pequeno servidor meu atualmente:
olm:/proc# free -m
total used free shared buffers cached
Mem: 1487 1457 30 0 15 1094
-/+ buffers/cache: 347 1139
Swap: 980 112 868
olm:/proc# cat meminfo
MemTotal: 1523572 kB
MemFree: 30688 kB
Buffers: 15724 kB
Cached: 1120884 kB
SwapCached: 67868 kB
SwapTotal: 1004052 kB
SwapFree: 888928 kB
Então, aqui ~ 66Mb do espaço de troca de 112Mb alocado também está atualmente presente na RAM. Não faz sentido remover 66Mb do swap, já que não há demanda para o espaço para outros usos (há bastante espaço de troca livre). Se a troca ficar cheia, estas páginas serão realocadas, se as páginas mudarem na RAM, elas serão marcadas como sujas e livres para serem realocadas, mas se precisarem ser trocadas de volta, o kernel pode salvar um monte de gravações em disco. p>
Se eu forçar os caches e buffers de disco a serem limpos com
sync; echo 3 > /proc/sys/vm/drop_caches
o resultado permanece o mesmo:
olm:/proc# free -m
total used free shared buffers cached
Mem: 1487 1278 209 0 0 979
-/+ buffers/cache: 298 1189
Swap: 980 112 868
olm:/proc# cat meminfo
MemTotal: 1523572 kB
MemFree: 212320 kB
Buffers: 652 kB
Cached: 1005732 kB
SwapCached: 67868 kB
SwapTotal: 1004052 kB
SwapFree: 888928 kB
A leitura "armazenada em cache" permaneceu alta depois de solicitar que os caches de disco fossem limpos, já que isso também conta a memória alocada para VMs do VMWare devido à maneira como ela é alocada. A leitura do SwapCached não foi alterada, pois não há sentido em copiar as páginas de volta na RAM só porque a RAM agora está livre - elas podem nunca ser necessárias antes que a RAM seja alocada para outra coisa novamente, então essas leituras seriam desperdiçadas.
A situação acima é ligeiramente diferente da sua, já que esta máquina quase sempre tem toda sua memória RAM alocada para algo (VMs, outros processos, cache de E / S + buffers), mas dependendo do histórico de carga da sua máquina desde a última inicialização. Não é improvável que uma parte das páginas no espaço alocado em sua área de troca esteja similarmente também na RAM.