Il cambio di swapiness richiede un riavvio?


14

Se configuro il valore di swappiness su un altro, ad es. Da 60 a 0, devo sempre riavviare la macchina per rendere effettive le modifiche? Anche quando si modifica con:

sysctl -w vm.swappiness=0

Risposte:


25

Tutto è ben spiegato nella pagina Wikipedia che hai dato.

# 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

A questo punto, il sistema gestirà lo swap come appena configurato, MA se si riavvia ORA, la modifica verrà dimenticata e il sistema funzionerà con il valore predefinito (supponendo 60, nel senso che inizierà a scambiare al 40% occupazione di RAM).

Devi aggiungere la riga in basso /etc/sysctl.confper mantenere la modifica in modo permanente:

vm.swappiness = 10

Spero sia più chiaro per te adesso!


È interessante notare che lo -wswitch dovrebbe scrivere la modifica. Si potrebbe pensare che dopo averlo scritto non sarebbe necessario aggiungere la riga predefinita in sysctl.conf.
WEBjuju,

Ciao WEBjuju, hai ragione, l'interruttore non funziona ancora per me (fedora 25 o centos 7). Non è quindi necessario, poiché la modifica del valore live nel file / proc viene eseguita senza.
tisc0,

7

è necessario riavviare la macchina per rendere effettive le modifiche?

Al contrario, infatti, il riavvio ripristinerà lo swappiness al suo valore predefinito. Per renderlo persistente al riavvio, è necessario includere una direttiva in uno script di avvio o utilizzare il metodo consigliato nell'articolo di Wikipedia aggiungendo:

vm.swappiness = ??

A /etc/sysctl.conf(o un /etc/sysctl.dfile), dove si ??trova il valore che si desidera utilizzare. Si noti che semplicemente aggiungendo questo non si verificherà alcun cambiamento al momento.


1

La risposta accettata è corretta, ma si consiglia di utilizzare un file di configurazione "sysctl" separato in modo da non sovrascrivere accidentalmente altre impostazioni (cosa che può accadere se si sovrascrive il "sysctl.conf" globale).

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

Coloro che hanno già modificato il file di configurazione globale "/etc/sysctl.conf" potrebbero voler rimuovere le righe che definiscono questo valore di "scambio" da quel file. È possibile utilizzare questo comando per rimuovere queste righe dal file di configurazione globale (mantenendo i commenti):

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

Ora, per applicare il nuovo valore, dire sysctldi usarlo:

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

Oppure applica tutte le impostazioni, inclusa la swappiness:

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

Verifica:

# sysctl vm.swappiness
vm.swappiness = 10

D'accordo, è una buona pratica, che rende le cose più chiare e sicure. Una buona abitudine anche quando si utilizza uno strumento di gestione della configurazione.
tisc0

1

Ho scoperto che su una macchina CentOS , vm.swappinessveniva impostato /usr/lib/tuned/virtual-guest/tuned.conf.

Determina dove viene impostato il default guardando attraverso i tunedfile di configurazione :

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

Dopo aver aggiornato l'impostazione predefinita, è ancora possibile impostare lo swappiness corrente senza riavviare :

sudo sysctl vm.swappiness=10

e testato da:

cat /proc/sys/vm/swappiness

1
/etc/tuned/tuned-main.conf (RHEL7) ha un'impostazione che consente a /etc/sysctl.conf, /etc/sysctl.d, ecc., di sovrascrivere le impostazioni applicate da tuned (ovvero reapply_sysctl = 1). Almeno sulla mia installazione, questa è l'impostazione predefinita.
kbulgrien,

0

Le modifiche dell'utente per sysctlconvenzione vanno in file con il prefisso, 60-quindi il nome del file dovrebbe essere /etc/sysctl.d/60-swappiness.conf. Eseguire service procps startcome root per forzare una rilettura dei valori di configurazione (non è necessario il riavvio).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.