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.