Hoje notei que encontrei o seguinte:
Como você pode ver, a RAM está quase sem metade e o uso do espaço de troca é muito alto. Com base no meu conhecimento de livros didáticos, costumava pensar que o sistema operacional Linux tenta fazer o melhor uso da RAM e, quando fica sem RAM, move algumas das páginas menos usadas da RAM para o espaço de troca.
Alguém pode me explicar se meu conhecimento teórico está incorreto e me explicar como no mundo do linux ele realmente funciona.
Embora seja verdade que o kernel usa swap mesmo que haja memória restante, usar mais de dois terços dela pode ser um indicador de que historicamente o servidor pode ter ficado sem memória e é por isso que começou a troca. Eu correlacionaria o uso de swap com o uso de memória nos relatórios do sar para deduzir se o sistema tem memória RAM suficiente. Eu também verificaria o dmesg ou os logs para determinar se o servidor de fato ficou sem memória e o oom-killer entrou em ação.
O Linux Kernel começa a trocar as páginas de memória, mesmo se você tiver bastante memória RAM livre. Você pode ajustar esse comportamento definindo um swappiness personalizado.
http://en.wikipedia.org/wiki/Swappiness
Para servidores, recomendo definir o swappiness como 1 se você sempre tiver memória suficiente para sua carga de trabalho. Para estações de trabalho, recomendo usar o padrão de 60.
Torne a configuração permanente em /etc/sysctl.conf definindo
e recarregue-o com
Infelizmente, alguns aplicativos irão martelar a troca diretamente, pulando intencionalmente a RAM. Olhando para você, Chrome (e em um ponto do Photoshop). A única maneira de fazer com que esses aplicativos não troquem é executar sem uma partição de troca. Mesmo swappiness 0 IIRC ainda lhes dará acesso, uma vez que eles o exigem explicitamente.
Alterar a capacidade de troca conforme acima funcionará para todo o resto. Eu sugeriria um valor de 10-20 em vez de 1.