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 cache
sync; echo 2 | sudo tee /proc/sys/vm/drop_caches
- Cancella la cache della pagina solo nella memoria cache
sync; 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 12012953 -/+ 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.