Mover um processo de e para swap [closed]

1

Eu tenho vários processos do tipo servidor no meu servidor linux que usam até 50MB de RAM. Eles não estão sendo usados constantemente e eu gostaria de poder executar mais instâncias do que a minha capacidade de RAM permite. Eu quero ser capaz de remover um processo da RAM e movê-lo para a troca do disco. O kernel do linux fornece alguma coisa para ajustar o swappiness por processo?

    
por Daniel S 08.08.2013 / 04:46

2 respostas

4

O kernel Linux fornece via sistema de arquivos proc uma propriedade que define quão agressivamente as páginas de memória (anônimas apenas!) são trocadas para o disco.

A propriedade vm.swappiness é aplicada globalmente por sistema, mas não por processo. Defina este valor baixo se você quiser evitar a troca o máximo possível. Se o processo do sistema for suspenso por muito tempo, você poderá se beneficiar com um comportamento agressivo de troca, aumentando esse valor.

Você pode alterá-lo temporariamente da CLI (ele não sobreviverá à reinicialização do sistema)

echo 90 > /proc/sys/vm/swappiness

Ou persistentemente adicionando esta linha ao /etc/sysctl.conf

vm.swappiness=90

E aplicando-o com

sysctl -p

Ou deve ser possível torná-lo mais granular com o subsistema cgroups e memória se o seu sistema estiver executando no kernel recente do Linux (desde 2.6.24?!?) . Vamos supor que você tenha disponível uma hierarquia do cgroup com memória subsistema anexado (/ cgroups / mem) e um cgroup (/ cgroups / mem / your_cgroup) com tarefas / processos definidos (/ cgroups / mem / your_cgroup / tasks ). Em seguida, você pode alterar o comportamento de swappiness para este grupo de tarefas da seguinte forma:

cd /cgroups/mem/your_cgroup
echo 90 > memory.swappiness

Para mais detalhes sobre o subsistema de memória, você pode ler, por exemplo Guia de recursos do RedHat .

    
por 08.08.2013 / 08:55
1

Você não é mais esperto do que o subsistema VM do kernel. Apenas deixe os processos serem, e se eles estiverem realmente sem uso, eles serão trocados sem que você precise fazer nada.

    
por 08.08.2013 / 04:51