Cómo borrar la caché de la memoria RAM, el búfer y el swap en Linux

Cómo Limpiar la Caché en Linux

Cada sistema operativo, incluyendo GNU/Linux, ha implementado la gestión de memoria de manera eficiente e incluso más allá. Si algún proceso está consumiendo tu memoria y deseas liberarla, Linux ofrece tres opciones para borrar la caché sin interrumpir ningún proceso o servicio

1. Limpiar solo la caché de páginas:

# sync; echo 1 > /proc/sys/vm/drop_caches

2. Limpiar entradas de directorios (dentries) e inodos:

# sync; echo 2 > /proc/sys/vm/drop_caches

3.Limpiar la caché de páginas, entradas de directorios e inodos:

# sync; echo 3 > /proc/sys/vm/drop_caches

Explicación del comando anterior:

"Sync" vaciará el búfer del sistema de archivos. Los comandos separados por ";" se ejecutan secuencialmente. La terminal espera a que cada comando termine antes de ejecutar el siguiente en la secuencia. Como se menciona en la documentación del kernel, escribir en "drop_caches" limpiará la caché sin cerrar ninguna aplicación o servicio; el comando "echo" realiza esta tarea de escritura en el archivo.

Si necesitas limpiar la caché de disco, el primer comando es el más seguro en entornos empresariales y de producción, ya que "...echo 1 > ..." limpiará solo la caché de páginas. No se recomienda utilizar la tercera opción anterior "...echo 3 >" en producción a menos que sepas lo que estás haciendo, ya que limpiará la caché de páginas, entradas de directorios e inodos.

¿Es una buena idea liberar el búfer y la caché en Linux que podría ser utilizada por el kernel de Linux?

Liberar el Búfer y la Caché en Linux

Cuando aplicas diversas configuraciones y deseas verificar si se han implementado correctamente, especialmente en pruebas de E/S intensivas, es posible que necesites limpiar la caché de búfer. Puedes eliminar la caché según se explicó anteriormente sin reiniciar el sistema, es decir, no se requiere tiempo de inactividad.

Linux está diseñado de manera que primero busca en la caché de disco antes de acceder al disco. Si encuentra el recurso en la caché, la solicitud no llega al disco. Si limpiamos la caché, la caché de disco será menos útil, ya que el sistema operativo buscará el recurso en el disco.

Además, esto también ralentizará el sistema durante unos segundos mientras se limpia la caché y se vuelve a cargar en la caché de disco cada recurso requerido por el sistema operativo.

Ahora crearemos un script de shell para limpiar automáticamente la caché de RAM todos los días a las 2 a. m. a través de una tarea programada de cron. Crea un script de shell llamado "clearcache.sh" y agrega las siguientes líneas.

#!/bin/bash
# Nota: estamos utilizando echo 3, pero no se recomienda en producción, en su lugar, use echo 1
echo echo 3 > /proc/sys/vm/drop_caches


Establece los permisos de ejecución en el archivo "limpiar_cache.sh".

# chmod 755 limpiar_cache.sh

Ahora puedes llamar al script cuando sea necesario para limpiar la caché de RAM.

Configura un cron para limpiar la caché de RAM todos los días a las 2 a. m. Abre crontab para editarlo.

# crontab -e

Agrega la siguiente línea, guarda y sal para ejecutarla a las 2 a. m. todos los días.

0  2  *  *  *  /ruta/a/limpiar_cache.sh

¿Es una buena idea limpiar automáticamente la caché de RAM en un servidor de producción?

¡No, no lo es! Piensa en una situación en la que has programado el script para limpiar la caché de RAM todos los días a las 2 a. m. Un día, por cualquier motivo, puede haber más usuarios en línea de lo esperado en tu sitio web y están solicitando recursos de tu servidor.

Al mismo tiempo, se ejecuta el script programado y borra todo en la caché. Ahora todos los usuarios están obteniendo datos del disco. Esto resultará en un bloqueo del servidor y podría corromper la base de datos. Por lo tanto, limpia la caché de RAM solo cuando sea necesario y conoce tus pasos, de lo contrario, podrías convertirte en un administrador de sistemas de culto de carga.

¿Cómo Limpiar el Espacio de Intercambio en Linux?

Si quieres liberar espacio de intercambio, puedes ejecutar el siguiente comando.

# swapoff -a && swapon -a

También puedes agregar el comando anterior a un script de cron después de comprender todos los riesgos asociados.

Ahora combinaremos ambos comandos anteriores en un solo comando para crear un script adecuado para limpiar la caché de RAM y el espacio de intercambio.

# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Caché de RAM y Espacio de Intercambio Liberados'

O

$ su -c echo 3 > '/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Caché de RAM y Espacio de Intercambio Liberados' 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é.

Antes de limpiar la caché

memoria ram y caché antes de limpiar

Después de limpiar la caché

memoria ram y caché después de limpiar



Eso es todo por ahora. Si te gustó el artículo, no olvides brindarnos tus valiosos comentarios en los comentarios para informarnos qué opinas sobre la idea de limpiar la caché de RAM y el búfer..

Publicar un comentario

0 Comentarios