Come cancellare o eliminare la cache e il buffer di memoria di Linux

La memoria cache è il posto in cui, di norma, un sistema operativo memorizza i dati che presumibilmente devono essere caricati più rapidamente che altri. Infatti, come qualcuno di voi già sa, i dati che devono essere elaborati non passano direttamente dal supporto di memorizzazione all’elaboratore, bensì:
Supporto di memorizzazione (0) <==> Memoria di massa (RAM – 1) <==> Memoria ad accesso rapido (cache di I e/o II lvl. -2/3) <==> Processore (4)
Noterete quindi che, secondo questo piccolo schema, lo stato della memoria cache è assolutamente fondamentale per la valutazione delle prestazioni di un sistema.
Il kernel di Linux di per se ha una gestione molto, molto efficiente della memoria cache gestione che, però, potrebbe non piacere molto ai più temerari… ai quali magari farebbe piacere avere libero arbitrio anche sulla gestione della cache.
E’ a questo proposito che vi suggerisco un piccolo trucco per mettere mano anche alla gestione della cache.
ATTENZIONE: se non sapete esattamente cosa state facendo vi consiglio di lasciare i parametri che il sistema tiene di default, pena instabilità di quest’ultimo.
Useremo, per la gestione della cache, il valore del parametro drop_caches presente nel filesystem virtuale /proc. Da terminale potremo settare questo parametro a 4 valori diversi, e precisamente:
Il kernel controlla la memoria cache (valore di default)
sudo -s
sync; echo 0 > /proc/sys/vm/drop_caches
Viene svuotato il buffer delle pagine sulla cache
sudo -s
sync; echo 1 > /proc/sys/vm/drop_caches
Vengono svuotati gli i-nodes e le d-entries sulla cache
sudo -s
sync; echo 2 > /proc/sys/vm/drop_caches
Vengono svuotati i-nodes, d-entries e buffer delle pagine
sudo -s
sync; echo 3 > /proc/sys/vm/drop_caches
NB: in alcuni sistemi Linux sarà necessario sostituire al comando “sudo -s” il comando “su”.





