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
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:
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.conf
per mantenere la modifica in modo permanente:
vm.swappiness = 10
Spero sia più chiaro per te adesso!
è 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.d
file), dove si ??
trova il valore che si desidera utilizzare. Si noti che semplicemente aggiungendo questo non si verificherà alcun cambiamento al momento.
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 sysctl
di 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
Ho scoperto che su una macchina CentOS , vm.swappiness
veniva impostato
/usr/lib/tuned/virtual-guest/tuned.conf
.
Determina dove viene impostato il default guardando attraverso i tuned
file 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
Le modifiche dell'utente per sysctl
convenzione vanno in file con il prefisso, 60-
quindi il nome del file dovrebbe essere /etc/sysctl.d/60-swappiness.conf
. Eseguire service procps start
come root per forzare una rilettura dei valori di configurazione (non è necessario il riavvio).
-w
switch dovrebbe scrivere la modifica. Si potrebbe pensare che dopo averlo scritto non sarebbe necessario aggiungere la riga predefinita in sysctl.conf.