5.5. Ottimizzazione della memoria virtuale
La memoria virtuale viene generalmente usata dai processi, dalla cache del file system e dal kernel. Il suo utilizzo dipende da un certo numero di fattori i quali possono essere influenzati dai seguenti parametri:
swappiness
- Un valore da 0 a 100 controlla il grado con il quale viene eseguito lo swap del sistema. Un valore elevato da una priorità alle prestazioni, ed esegue uno swap aggressivo dei processi dalla memoria fisica quando gli stessi non risultano attivi. Un valore basso conferisce una priorità ai processi di interazione ed evita lo swap dei processi dalla memoria fisica il più a lungo possibile. Il valore predefinito è
60
. min_free_kbytes
- Il numero minimo di kilobyte da mantenere libero su tutto il sistema. Questo valore viene usato per calcolare un valore limite per ogni zona con una memoria bassa, alla quale viene assegnata un numero di pagine libere riservate proporzionale alla dimensione.
Avvertimento
Fate attenzione quando impostate questo parametro poichè valori troppo bassi o valori troppo alti possono essere controproducenti.Una impostazione troppo bassa dimin_free_kbytes
impedisce al sistema di riappropriarsi della memoria. Tale impostazione può risultare in una sospensione del sistema e in un arresto da parte di OOM di processi multipli.Tuttavia l'impostazione di questo parametro ad un valore troppo alto (5-10% del totale della memoria del sistema) causerà l'uso immediato di tutta la memoria. Linux è stato creato per utilizzare tutta la RAM disponibile per memorizzare in cache i dati del file system. Impostando un valoremin_free_kbytes
elevato causerà l'impiego di un periodo più lungo da parte del sistema per riappropriarsi della memoria. dirty_ratio
- Definisce un valore percentuale. La rimozione dei dati corrotti (tramite pdflush) inizia quando i dati raggiungono questa percentuale del totale della memoria del sistema. Il valore predefinito è
20
. dirty_background_ratio
- Definisce un valore percentuale. La rimozione dei dati corrotti (tramite pdflush) inizia nello sfondo quando i dati raggiungono questa percentuale del totale della memoria del sistema. Il valore predefinito è
10
. drop_caches
- L'impostazione di questo valore su
1
,2
, o3
causa l'abbandono di varie combinazioni da parte del kernel di cache slab e pagine.- 1
- Il sistema non convalida e libera tutta la memoria in cache della pagina.
- 2
- Il sistema libera tutta la memoria in cache della slab non utilizzata.
- 3
- Il sistema libera tutta la cache della pagina e la memoria in cache della slab.
Questa è una operazione non-distruttiva. Poichè non è possibile rendere disponibili oggetti corrotti, è consigliata l'esecuzione disync
prima di impostare il valore di questo parametro.Importante
Non è consigliato l'uso didrop_caches
per liberare la memoria in un ambiente di produzione.
Per impostare temporaneamente questi valori durante il processo di ottimizzazione, usare il comando echo con il valore desiderato per il file appropriato nel file system proc. Per esempio per impostare
swappiness
momentaneamente su 50
, eseguire:
# echo 50 > /proc/sys/vm/swappiness
Per impostare questo valore in modo permanente, usare il comando
sysctl
. Per maggiori informazioni consultare la Deployment Guide disponibile su http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.