Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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 di min_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 valore min_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, o 3 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 di sync prima di impostare il valore di questo parametro.

Importante

Non è consigliato l'uso di drop_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/.