A veces, el sistema se queda sin memoria debido a que los objetos almacenados en caché utilizan una gran cantidad de RAM. En esos casos, necesita aumentar la memoria física en el sistema o agregar más espacio de intercambio. También puede indicarle al kernel que borre la caché de la memoria RAM en el sistema agregando un número en /proc/sys/vm/drop_caches
archivo.
Es seguro, pero no recomendado, borrar la memoria caché en un sistema Linux. Borrar la memoria caché en los sistemas Linux ralentiza el rendimiento del sistema, ya que la lectura de archivos de la memoria es mucho más rápida que la del disco persistente. Dado que descarta los objetos almacenados en caché de la memoria, puede costar una cantidad significativa de E/S y CPU recrear los objetos eliminados. Este tutorial lo ayudará a borrar la memoria caché en el sistema Linux/Unix a través de la línea de comandos.
Cómo borrar la caché de memoria en Linux
Hay tres opciones disponibles para borrar la memoria caché en Linux. Elija una de las siguientes opciones para vaciar la memoria caché del sistema Linux según sus requisitos.
- Borrar PageCache, dentries e inodos en la memoria caché. En resumen, borrará todo el caché de memoria:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
- Borrar dentries e inodos solo en la memoria caché
sync; echo 2 | sudo tee /proc/sys/vm/drop_caches
- Borrar el caché de la página solo en la memoria caché
sync; echo 1 | sudo tee /proc/sys/vm/drop_caches
Aquí el primer comando sync
se utiliza para sincronizar todos los archivos de caché en memoria con el almacenamiento persistente. El siguiente comando se separa con un “;”. Una vez que se completa el primer comando, se activará el siguiente comando para borrar la memoria caché.
Programar el borrado de caché de memoria con Crontab
También puede programar un trabajo de maíz para borrar el caché de forma regular. Programe lo siguiente en crontab del sistema para vaciar automáticamente la memoria caché a intervalos regulares.
Abra una terminal y ejecute el comando 'crontab -e' para editar crontab:
crontab -e
Agregue la siguiente entrada al archivo:
0 10 * * * sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
El cron anterior se ejecutará cada hora y vaciará la memoria caché de su sistema.
En los servidores de producción, no se recomienda programar un comando de borrado de caché. Puede conducir a la corrupción de datos o la pérdida de datos. Así que tenga cuidado antes de ejecutar el comando anterior en un entorno de producción.
Cómo encontrar memoria caché en Linux
Usar gratis Comando para averiguar los usos de la memoria caché por parte del sistema Linux. El resultado del comando gratuito es como el siguiente
free -m
Output total used free shared buffers cached Mem: 16050 15908 142 0 12012953 -/+ buffers/cache: 834 15216 Swap: 0 0 0
Aquí, la última columna muestra la memoria caché (12953 MB) en el sistema Linux. La -m La opción se utiliza para mostrar los MB de salida.