Linux swapiness - Regolazione delle impostazioni della VM del kernel


9

Prima di leggere questo, tieni presente che ho compreso i vantaggi della memorizzazione nella cache. Conosco il dogma che lo sperone inutilizzato è sperone sperperato.

Questa domanda è una che ho adattato da una domanda precedente:

eliminazione di RAM nella cache di Linux

In quella domanda ero curioso di modificare il modo in cui il mio server utilizza e memorizza nella cache ram. Il sistema è abbastanza dinamico, quindi credo che i file memorizzati nella cache non mi permettano molto di guadagnare. Inoltre, abbiamo un codice sul server che deve accedere rapidamente a grandi quantità di RAM in brevi periodi di tempo per elaborare i file video e credo che vedrò un vantaggio in termini di prestazioni dalla gestione diretta della RAM piuttosto che dalla sua cancellazione dalla cache e quindi consegnandolo.

Vorrei scoprire se qualcuno di voi ha esperienza con la regolazione del valore predefinito di 60 nel seguente file (questo accade su un server Ubuntu):

/proc/sys/vm/swappiness  

E se è così, quali effetti hai visto. Se sostituisco il valore predefinito di 60 con 30 vedrò meno scambio e molto più riutilizzo della cache non aggiornata? Devo avvicinarmi a 0 o 100 per ridurre la swapiness e aumentare il riutilizzo della cache?

Infine, qualcuno sa perché il valore predefinito è 60?

NOTA: se è vicino a 0, Linux preferirà mantenere le applicazioni nella RAM e non aumentare le cache. Se è vicino a 100, Linux preferirà scambiare le applicazioni e allargare il più possibile le cache. Il valore predefinito è 60. - Grazie per il link seguente, 3dInfluence.

Risposte:


6

Modifica: riscrivi la risposta in modo che sia più breve e più chiara spero :)

Devi davvero capire come funziona il sottosistema VM nel suo insieme per iniziare a modificare i parametri sintonizzabili o potresti scoprire che non stai ottenendo i risultati che ti aspetti. Questo articolo è un ottimo punto di partenza sul modo in cui queste impostazioni funzionano insieme a un'inclinazione del desktop.

Quindi di più alla tua domanda. Lo swappiness controlla quando il sottosistema VM recupera le pagine della tabella dei processi disimballando e paginandole, ovvero scambiando. Questa sintonizzazione funziona dicendo al sottosistema VM di cercare pagine da scambiare quando la% di memoria mappata per elaborare le tabelle delle pagine + il valore di swap è> 100. Quindi un'impostazione di 60 farà iniziare il paging delle pagine non aggiornate dalla pagina del processo tabella quando utilizza più del 40% della memoria del sistema. Se si desidera consentire ai programmi di utilizzare più memoria a spese della cache, è necessario ridurre il valore di scambio. Dovresti anche dare un'occhiata a / proc / sys / vm / min_free_kbytes e / proc / sys / vm / vfs_cache_pressure. Poiché ciò controllerà anche la quantità di memoria riservata e la capacità aggressiva di memorizzazione nella cache.


@ 3dinfluence - Ho lavorato su quell'articolo a cui hai fatto riferimento in precedenza. Grande risorsa!
Patrick R,

1
linuxinsight.com/proc_sys_vm_hierarchy.html vi darà una frase o due su ciò che ciascuno dei parametri sintonizzabili fanno. Ma ho ricevuto queste informazioni su come funziona la swapiness da un libro intitolato "Performance Tuning for Linux Servers"
3dinfluence

+1 grazie 3dinfluence. Finora quel libro è stato estremamente educativo.
Patrick R,

È fantastico .... sei stato in grado di migliorare le prestazioni della tua applicazione?
3dinfluence,

Sono stato in grado di migliorare le prestazioni. Inoltre, ho scoperto che il seguente comando aiuta durante la torsione: # sysctl -w vm.swappiness = 40
Patrick R
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.