Troca desnecessária no Linux

Troca desnecessária no Linux

Parece que às vezes meu computador começa a trocar desnecessariamente (o uso de memória é de aproximadamente 25%) e não consigo entender o porquê.

Parece acontecer com mais frequência ao executar scripts Perl, mas esses não são scripts intensivos e não consigo encontrar nada dizendo que o Perl só pode ver uma certa quantidade de memória. O uso de swap persiste após a conclusão dos scripts e mesmo após fechar o Firefox, Banshee, etc. Reiniciar o X às vezes resolverá o problema, mas outras vezes, é necessária uma reinicialização completa.

Isso se torna um grande problema para mim porque assim que o que quer que seja começa a ser trocado, todo o resto parece também. Coisas básicas como fechar o programa ou mudar de ponto de vista demoram cada vez mais. Se não for verificado, esse uso de troca acabará por forçar meu computador a uma agitação indefinida, incapaz de responder até mesmo às teclas digitadas!

Estou executando o kernel Ubuntu 9.04, 2.6.28-15, tenho 4 GB de RAM e geralmente estou com cerca de 25% de uso.

Também tentei diminuir a "troca", sem sorte.

Responder1

Minha sugestão é definir sua troca como 0.

Definir sua swappiness para um "número menor" pode reduzir a "frequência" de uso de swap, mas configurá-lo para 0 forçará o kernel a seguir um caminho de código diferente, forçando toda a alocação de memória a usar primeiro toda a memória e cache disponíveis antes de usar swap espaço.

Você pode definir a troca como zero emitindo o seguinte:

eco 0 > /proc/sys/vm/swappiness

informação relacionada