Você pode definir o valor de /proc/sys/vm/swappiness
para controlar a proporção de segmentos de dados trocados para os segmentos de dados mantidos na memória. Um valor de 0 evita completamente a troca a todo custo.
Isso pode ser feito usando:
-
echo 0 > /proc/sys/vm/swappiness
-
sysctl -w vm.swappiness=0
- Armazenando essa configuração em
/etc/sysctl.conf
Geralmente, usar apenas uma pequena troca não é uma coisa ruim. A memória livre pode ser usada para armazenar em cache dados lidos do disco, e o sistema pode planejar com antecedência uma necessidade súbita de muita memória por um aplicativo.
Quando muitos programas são trocados, no entanto, há muita atividade relacionada ao disco durante cada mudança de programa, o que realmente torna tudo mais lento. Antes que algo possa ser usado, ele precisa ser carregado de volta na memória.
As leituras de discos são terrivelmente lentas em comparação com o acesso à memória, pois leva muito mais tempo para os dados chegarem. O sistema precisa agendar a leitura entre as outras solicitações de leitura / gravação, o inversor começa a tentar encontrar o cilindro certo e, finalmente, começa a fornecer dados lentamente.
Por isso, acho que sua lógica é falha. Geralmente, você deseja manter os programas em execução na memória, mantendo espaço suficiente para o crescimento repentino. Não use o swap com muita frequência para "gravar coisas no disco", porque não é um backup nem uma melhoria de desempenho.
Computadores mais antigos continham menos memória e sofriam com a troca de problemas como resultado. Quando muitos programas eram abertos ao mesmo tempo, o sistema ficava mais lento e você podia ouvir a leitura e a gravação do disco para o arquivo de troca.