Vediamo come liberare RAM non più in uso e svuotare la cache del nostro server o desktop linux Debian o Ubuntu. E’ possibile eseguire anche questa azione in modo automatico con il crontab.

Talvolta le applicazioni o i vari comandi che lanciamo, allocano memoria o creano file di cache. Per velocizzare le varie operazioni, quindi il Kernel linux le alloca nella RAM, ma spesso dopo aver terminato le operazioni, queste non vengono cancellate, occupando memoria inutilmente.

E’ possibile svuotare la cache e la RAM del nostro linux box  o server linux basati su Debian/Ubuntu semplicemente usando questo comando, senza quindi riavviare.
sync; echo 3 > /proc/sys/vm/drop_caches

Tecnicamente con questo comando verranno eliminati dalla memoria cache: pagecache, dentries e inodes

E’ possibile svuotare anche singolarmente questi elementi. Infatti possiamo pulire la pagecache con
sync; echo 1 > /proc/sys/vm/drop_caches
mentre dentries e inodes
sync; echo 2 > /proc/sys/vm/drop_caches

E’ possibile anche creare una azione schedulata, che quindi, verrà avviata ogni tot minuti o ore. Vediamo come.
Prima di tutto accediamo al crontab con il seguente comando
crontab -l

ora non ci resta che aggiungere questa linea e salvare
0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches

Questo singolo comando permette quindi di avere un server o il nostro linux box desktop sempre scattante, senza essere costretti a riavviare.

Ecco invece come vedere la RAM in uso

E possibile usare il comando free. L’output del comando free è mostrato nel box seguente:

# free -m

Esempio output

             total       used       free     shared    buffers     cached
Mem:           992        406        586          0        155        134
-/+ buffers/cache:        116        876
Swap:         2015          0       2015

L’ultima colonna, quella con 134 MB è la colonna che mostra la cache che usa il sistema. Mentre l’opzione -m è usata per mostrare i valori in MB.

Approfondimento: Cos’è la memoria cache – clicca qui