A alteração do swappiness precisa de uma reinicialização?

14

Se eu configurar o valor de swappiness para outro, de ex .: 60 a 0, sempre preciso reiniciar a máquina para que as alterações entrem em vigor? Mesmo ao modificar com:

sysctl -w vm.swappiness=0
evacristina
fonte

Respostas:

25

Tudo está bem explicado na página da Wikipedia que você deu.

# Set the swappiness value as root
echo 10 > /proc/sys/vm/swappiness

# Alternatively, run this as a non-root user
# This does the same as the previous command
sudo sysctl -w vm.swappiness=10

# Verify the change
cat /proc/sys/vm/swappiness
10

Neste ponto, o sistema gerenciará a troca como você a configurou, mas se você reiniciar o NOW, sua alteração será esquecida e o sistema funcionará com o valor padrão (assumindo 60, o que significa que começará a trocar a 40% ocupação da RAM).

Você precisa adicionar a linha abaixo /etc/sysctl.confpara manter sua alteração permanentemente:

vm.swappiness = 10

Espero que esteja mais claro para você agora!

tisc0
fonte
É interessante que o -wswitch escreva a alteração. Alguém poderia pensar que, depois de escrever isso, não seria necessário adicionar a linha padrão no sysctl.conf.
precisa saber é o seguinte
Oi WEBjuju, Você está certo, o switch ainda não funciona para mim (fedora 25 ou centos 7). Não é necessário, pois a alteração do valor ao vivo no arquivo / proc é feita sem qualquer forma.
tisc0
7

precisa reiniciar a máquina para que as alterações tenham efeito?

Na verdade, o oposto - a reinicialização redefinirá o swappiness para seu valor padrão. Para persistir durante as reinicializações, você precisa incluir uma diretiva em um script de inicialização ou usar o método recomendado no artigo da wikipedia adicionando:

vm.swappiness = ??

Para /etc/sysctl.conf(ou um /etc/sysctl.darquivo), onde ??está o valor que você deseja usar. Observe que apenas adicionar isso não causará nenhuma alteração no momento.

Cachinhos Dourados
fonte
1

A resposta aceita está correta, mas é recomendável usar um arquivo de configuração "sysctl" separado para não sobrescrever acidentalmente outras configurações (o que pode acontecer se você sobrescrever o "sysctl.conf" global).

# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf

Aqueles que já modificaram o arquivo de configuração global "/etc/sysctl.conf" podem querer remover linhas que definem esse valor de "troca" desse arquivo. Você pode usar este comando para remover estas linhas do arquivo de configuração global (mantendo comentários):

# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf

Agora, para aplicar o novo valor, diga sysctlpara usá-lo:

# sysctl -p /etc/sysctl.d/swappiness.conf

Ou aplique todas as configurações, incluindo swappiness:

# sysctl -p /etc/sysctl.d/*

Verifique:

# sysctl vm.swappiness
vm.swappiness = 10
basic6
fonte
Concordado, é uma prática recomendada, tornar as coisas mais claras e seguras. Um bom hábito também ao usar uma ferramenta de gerenciamento de configuração.
tisc0
1

Eu descobri que em uma máquina CentOS , o vm.swappinessestava sendo instalado /usr/lib/tuned/virtual-guest/tuned.conf.

Determinar onde o padrão está sendo definido por olhar através de tunedarquivos de configuração :

sudo grep -R swap /usr/lib/tuned | grep swappiness

Após atualizar o padrão, a troca atual ainda pode ser definida sem a reinicialização :

sudo sysctl vm.swappiness=10

e testado por:

cat /proc/sys/vm/swappiness
WEBjuju
fonte
1
O /etc/tuned/tuned-main.conf (RHEL7) possui uma configuração que permite ao /etc/sysctl.conf, /etc/sysctl.d, etc., substituir as configurações aplicadas pelo tuned (por exemplo, reapply_sysctl = 1). Pelo menos na minha instalação, esse é o padrão.
22418 kbulgrien
0

As alterações do usuário sysctlpor convenção entram em arquivos com o prefixo, 60-portanto o nome do arquivo deve ser /etc/sysctl.d/60-swappiness.conf. Execute service procps startcomo root para forçar uma releitura dos valores de configuração (não é necessário reinicializar).

Doug Munch
fonte