Al igual que cualquier otro sistema operativo, GNU/Linux ha implementado una gestión de memoria eficiente e incluso más que eso. Pero si algún proceso está consumiendo su memoria y desea borrarla, Linux proporciona una forma de vaciar o borrar la memoria caché de ram.
¿Cómo borrar Caché en Linux?
Cada sistema Linux tiene tres opciones para borrar la caché sin interrumpir ningún proceso o servicio.
1. Borrar PageCache solamente.
# sync; echo 1 > /proc/sys/vm/drop_caches
2. Limpiar dentaduras e inodos.
# sync; echo 2 > /proc/sys/vm/drop_caches
3. Borrar PageCache, dentaduras postizas e inodos.
# sync; echo 3 > /proc/sys/vm/drop_caches
Explicación del comando anterior.
sync vaciará el búfer del sistema de archivos. El comando separado por ";”
se ejecuta secuencialmente. El shell espera a que cada comando termine antes de ejecutar el siguiente comando de la secuencia. Como se mencionó en la documentación del núcleo, escribir en drop_cache limpiará la caché sin matar ninguna aplicación / servicio, el comando echo está haciendo el trabajo de escribir en file.
Si tiene que borrar la caché de disco, el primer comando es más seguro en enterprise y producción, ya que "...echo 1 > ….”
solo borrará la caché de páginas. No se recomienda usar la tercera opción anterior "...echo 3 >”
en producción hasta que sepa lo que está haciendo, ya que borrará el caché de páginas, las dentaduras y los inodos.
¿Es una buena idea liberar Búfer y caché en Linux que podría ser utilizado por el Kernel de Linux?
Cuando está aplicando varias configuraciones y desea verificar si realmente se implementa especialmente en el punto de referencia de E / S extensivo, es posible que deba borrar la caché del búfer. Puede soltar la caché como se explicó anteriormente sin reiniciar el sistema, es decir, sin necesidad de tiempo de inactividad.
Linux está diseñado de tal manera que mira en la caché del disco antes de mirar en el disco. Si encuentra el recurso en la caché, la solicitud no llega al disco. Si limpiamos la caché, la caché del disco será menos útil ya que el sistema operativo buscará el recurso en el disco.
Además, también ralentizará el sistema durante unos segundos mientras se limpia la caché y todos los recursos requeridos por el sistema operativo se cargan de nuevo en la caché del disco.
Ahora crearemos un script de shell para borrar automáticamente la memoria caché de RAM diariamente a las 2 a.m. a través de una tarea cron scheduler. Crear un script de shell clearcache.sh y añade las siguientes líneas.
#!/bin/bash# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"echo "echo 3 > /proc/sys/vm/drop_caches"
Establecer el permiso de ejecución en el clearcache.sh archivo.
# chmod 755 clearcache.sh
Ahora puede llamar al script cuando lo necesite para borrar la memoria caché de ram.
Ahora establezca un cron para borrar la memoria caché de RAM todos los días a las 2 a.m. Abre crontab para editarlo.
# crontab -e
Añadir la siguiente línea, guardar y salir a correr es a las 2 de la madrugada.
0 2 * * * /path/to/clearcache.sh
Para obtener más detalles sobre cómo cron un trabajo, puede consultar nuestro artículo sobre 11 Trabajos de programación Cron.
¿Es buena idea borrar automáticamente la memoria caché de RAM en el servidor de producción?
¡No! no lo es. Piense en una situación en la que haya programado el script para borrar la memoria caché de ram todos los días a las 2 a.m. Todos los días a las 2 a.m. se ejecuta el script y vacía la memoria caché de RAM. Un día, por cualquier razón, es posible que más de lo esperado los usuarios estén en línea en su sitio web y busquen recursos de su servidor.
Al mismo tiempo, el script programado se ejecuta y borra todo en la caché. Ahora todos los usuarios están obteniendo datos del disco. Resultará en un bloqueo del servidor y dañará la base de datos. Así que borre la memoria caché de ram solo cuando sea necesario, y conozca sus pasos, de lo contrario, será un Administrador del Sistema de Culto de Carga.
¿Cómo borrar el Espacio de Intercambio en Linux?
Si desea borrar el espacio de intercambio, puede ejecutar el siguiente comando.
# swapoff -a && swapon -a
También puede agregar el comando anterior a un script cron anterior, después de comprender todo el riesgo asociado.
Ahora combinaremos los dos comandos anteriores en un solo comando para crear un script adecuado para borrar la memoria caché de RAM y el Espacio de intercambio.
# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'OR$ su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root
Después de probar ambos comandos anteriores, ejecutaremos el comando «free-h» antes y después de ejecutar el script y comprobaremos la caché.