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.