Domanda Come configuro lo swappiness?


Ho bisogno di un metodo passo-passo, semplice e facile da configurare swappiness.


298
2018-02-13 18:31


origine


Una fodera sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf" - redanimalwar
@redanimalwar devi anche eseguire sudo sysctl -p per caricare il nuovo valore swappiness dal file sysctl.conf, altrimenti la modifica si applica solo al prossimo riavvio. - waldyrious


risposte:


Il kernel di Linux fornisce un'impostazione modificabile che controlla la frequenza con cui viene utilizzato il file di swap, chiamato swap.

Un'impostazione swappiness di zero significa che il disco verrà evitato a meno che non sia assolutamente necessario (si esaurisce la memoria), mentre un'impostazione swappiness di 100 significa che i programmi verranno scambiati su disco quasi istantaneamente.

Il sistema Ubuntu viene fornito con un valore predefinito di 60, il che significa che il file di swap verrà usato abbastanza spesso se l'utilizzo della memoria è circa metà della mia RAM. È possibile verificare il valore di swappiness del proprio sistema eseguendo:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Dato che ho 4 GB di RAM, vorrei ridurlo a 10 o 15. Il file di scambio verrà quindi utilizzato solo quando l'utilizzo della RAM è in giro 80 o 90 per cento. Per modificare il valore di swappiness del sistema, aprire /etc/sysctl.conf come radice. Quindi, modifica o aggiungi questa linea al file:

vm.swappiness = 10

Riavvia il sistema affinché la modifica abbia effetto.

Puoi anche modificare il valore mentre il tuo sistema è ancora in esecuzione con:

sysctl vm.swappiness=10

Puoi anche cancellare lo scambio eseguendo swapoff -a e poi swapon -a come root invece di riavviare per ottenere lo stesso effetto.

Per calcolare la tua formula di scambio:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

quindi il totale è 3950/100 = 39,5 * 10 = 395

Quindi, cosa significa questo quando? 10% (395 MB) di ram è rimasto, quindi inizierà a usare lo swap.


Aiuto . Ubuntu. Scambiare

Cos'è lo swappiness

Il parametro swappiness controlla la tendenza del kernel a spostare i processi fuori dalla memoria fisica e sul disco di scambio. Poiché i dischi sono molto più lenti della RAM, questo può portare a tempi di risposta più lenti per il sistema e le applicazioni se i processi sono troppo aggressivamente spostati dalla memoria.

  • swappiness può avere un valore compreso tra 0 e 100.
  • swappiness=0:
    • Kernel versione 3.5 e successive: disabilita lo swapiness.
    • Versione kernel precedente alla 3.5: evita lo swapping dei processi dalla memoria fisica il più a lungo possibile.
  • swappiness=1:
    • Kernel versione 3.5 e successive: swappiness minimo senza disabilitarlo interamente.
  • swappiness=100:
    • Indica al kernel di scambiare in modo aggressivo i processi con la memoria fisica e spostarli nella cache di scambio.

Vedere http://en.wikipedia.org/wiki/Swappiness.

L'impostazione predefinita in Ubuntu è swappiness=60. La riduzione del valore predefinito di swappiness probabilmente migliorerà le prestazioni generali di una tipica installazione desktop di Ubuntu. Un valore di swappiness=10 è consigliato, ma sentiti libero di sperimentare.


Esempio

Iniziato usando swap a 91%:

enter image description here Come ho configurato il mio sistema e vm per utilizzare RAM in 90%, a 90% non c'era scambio.

Dopo di che ho aperto alcune applicazioni come Firefox e Shutter, e ha iniziato lo scambio perché l'utilizzo della RAM è sopra 90%.


453
2018-02-13 18:33



Lo swappiness di 100 non fa in modo che i programmi vengano scambiati immediatamente, né viene utilizzato un valore di 60 o 90 mean swap quando ram è pieno al 60 o 90%. È un rapporto di preferenza per rubare pagine dalla cache e scambiare le cose per liberare memoria quando non ce n'è abbastanza. Un valore basso preferisce fortemente rubare pagine dalla cache e un valore elevato preferisce fortemente provare a scambiare pagine. L'impostazione ha effetto solo quando la memoria è (quasi) tutta usata e il kernel deve scegliere come liberare un po '. - psusi
È necessario sottolineare che la RAM NON occupata dall'esecuzione di programmi viene utilizzata come cache del disco ... quindi, diminuendo la swappiness, si aumenta la possibilità che un programma non venga scambiato, ma allo stesso tempo riduca la dimensione della cache del disco, che può rallentare l'accesso al disco. Quindi gli effetti di questa impostazione sulle prestazioni effettive non sono così semplici ... sei libero di sperimentare, certo, ma sospetto che le impostazioni predefinite siano impostate da persone che capiscono abbastanza nell'argomento :) - Sergey
@Sergey e l'ironia di ciò è che quelli con RAM di piccole dimensioni sono più propensi a provare ogni trucco che possono incontrare per migliorare le prestazioni e sono più propensi a essere le persone per le quali 60 o anche più alto sarebbe la cifra migliore. Quelli di noi l'impostano su 10 perché abbiamo tonnellate di RAM che non stanno guadagnando tanto quanto potrebbero perdere se lo fanno. - Jon Hanna
@Freedom_Ben: Vedi linuxatemyram.com :) - Sergey
Basta lasciare una discussione simile qui - unix.stackexchange.com/questions/88693/... - Elijah Lynn