O Linux geralmente tenta manter as coisas em memória RAM, qualquer um só começa a trocar quando você fica sem memória RAM disponível (que é o total de RAM usado por aplicativos, buffers e arquivos em cache). Quando iniciar a troca é configurável, no entanto, isso pode variar dependendo da configuração e é controlado pelo valor swappiness
. Para ver qual é o valor atual de swappiness
definido para ser executado
cat /proc/sys/vm/swappiness
A maioria dos sistemas padrão tem valor de cerca de 60. Quanto menor o valor, mais agressivo o kernel irá trabalhar para manter as coisas dentro do RAM e configurá-lo para 0 desabilitar a troca inteiramente (swap será usado para hibernação mas não usado ativamente durante a execução).
O Swappiness só afeta quando o RAM do seu sistema está quase completamente cheio de aplicativos e buffers e caches combinados. Ele muda o que o kernel favorece quando um aplicativo solicita mais memória RAM, jogando fora os dados do cache ou gravando alguma memória menos usada no disco. O valor do swappiness controla a proporção entre estes, onde 1 basicamente sempre joga fora o cache e 100 fará com que os dados do aplicativo sejam trocados na maior parte do tempo.
Você pode configurar o swappiness de um sistema rapidamente com
sysctl vm.swappiness=10
E defina-o permanentemente, editando /etc/sysctl.conf
para incluir
vm.swappiness = 10
Para a sua situação em que você tem um servidor com uma boa quantidade de RAM e JVM usando a maioria, você provavelmente não desejará estar trocando muito se isso reduzir o valor para 10 ou até mesmo 1 para ser benéfico. Reduzi-lo para 10 é bastante benéfico na maioria dos sistemas modernos com muitos ram.