A volte il sistema esaurisce la memoria a causa dell'enorme quantità di RAM utilizzata dagli oggetti memorizzati nella cache. In questi casi, è necessario aumentare la memoria fisica nel sistema o aggiungere più spazio di scambio. Puoi anche indicare al kernel di svuotare la cache della memoria RAM sul sistema aggiungendo un numero in /proc/sys/vm/drop_caches file.
È sicuro, ma non consigliato, svuotare la cache di memoria su un sistema Linux. La cancellazione della cache di memoria nei sistemi Linux rallenta le prestazioni del sistema poiché la lettura dei file dalla memoria è molto più veloce del disco persistente. Poiché elimina gli oggetti memorizzati nella cache dalla memoria, può costare una quantità significativa di I/O e CPU per ricreare gli oggetti eliminati. Questo tutorial ti aiuterà a svuotare la cache di memoria sul sistema Linux/Unix tramite la riga di comando.
Come cancellare la cache di memoria su Linux
Sono disponibili tre opzioni per svuotare la cache di memoria in Linux. Scegli una delle seguenti opzioni per svuotare la memoria cache del sistema Linux secondo le tue esigenze.
- Cancella PageCache, dentries e inode nella memoria cache. In breve cancellerà tutta la cache di memoria:sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
- Cancella dentries e inode solo nella memoria cachesync; echo 2 | sudo tee /proc/sys/vm/drop_caches
- Cancella la cache della pagina solo nella memoria cachesync; echo 1 | sudo tee /proc/sys/vm/drop_caches
 Qui il primo comando sync viene utilizzato per sincronizzare tutti i file della cache in memoria nella memoria permanente. Il comando successivo è separato da un ";". Una volta completato il primo comando, verrà attivato il comando successivo per svuotare la memoria cache.
Pianifica la cancellazione della cache di memoria con Crontab
Puoi anche pianificare un lavoro di mais per svuotare la cache su base regolare. Pianifica quanto segue nel crontab di sistema per svuotare automaticamente la memoria cache a intervalli regolari.
Apri un terminale ed esegui il comando 'crontab -e' per modificare crontab:
crontab -e 
Aggiungi sotto la voce al file:
0 10 * * * sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
Il cron sopra verrà eseguito ogni ora e svuota la cache di memoria sul tuo sistema.
Sui server di produzione, non è consigliabile pianificare un comando di svuotamento della cache. Può portare alla corruzione o alla perdita di dati. Quindi attenzione prima di eseguire il comando precedente in un ambiente di produzione.
Come trovare la memoria cache in Linux
Usa gratuitamente comando per scoprire la memoria cache utilizzata dal sistema Linux. L'output del comando gratuito è come di seguito
free -m 
Output 
             total       used       free     shared    buffers     cached
Mem:         16050      15908        142          0        120      12953 
-/+ buffers/cache:        834      15216
Swap:            0          0          0
 Qui l'ultima colonna mostra la memoria cache (12953 MB) sul sistema Linux. Il -m l'opzione viene utilizzata per mostrare i MB di output.