Búsqueda de sitios web

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


Como cualquier otro sistema operativo, GNU/Linux ha implementado la gestión de memoria de manera eficiente e incluso más que eso. Sin embargo, si algún proceso está consumiendo su memoria y desea borrarla, Linux proporciona una forma de vaciar o borrar la caché de RAM.

En este artículo, exploraremos cómo borrar la memoria caché, el búfer y el espacio de intercambio de la memoria RAM en un sistema Linux para mejorar el rendimiento general.

Comprensión de la memoria caché, el búfer y el espacio de intercambio de la memoria RAM

Exploremos la memoria caché, el búfer y el espacio de intercambio de la memoria RAM en un sistema Linux.

Caché de memoria RAM

La memoria caché RAM es un mecanismo utilizado por el kernel para conservar los datos a los que se accede periódicamente. Si bien esto aumenta la capacidad de respuesta del sistema, una caché sobrecargada puede provocar la retención de datos obsoletos, lo que afecta el rendimiento.

Buffer

Al igual que el caché, el búfer contiene datos temporalmente pero difiere en su propósito. Los búferes almacenan datos que se transfieren entre componentes como la CPU y el disco duro, lo que facilita una comunicación fluida. Sin embargo, un exceso de datos almacenados en el buffer puede afectar la velocidad del sistema.

Intercambiar espacio

El espacio de intercambio es un área asignada en el disco duro que actúa como memoria virtual cuando se agota la RAM física. Si bien previene fallas del sistema debido a poca memoria, puede ralentizarlo si se usa en exceso.

Borrar caché, búfer y espacio de intercambio en Linux

En determinadas situaciones, es posible que necesites borrar el caché, el búfer o el espacio de intercambio como se explica a continuación.

¿Cómo borrar la memoria caché de la memoria RAM en Linux?

Cada sistema Linux tiene tres opciones para borrar el caché sin interrumpir ningún proceso o servicio.

Borrar PageCache

1. Para borrar únicamente el PageCache, puede utilizar el siguiente comando, que borrará específicamente el PageCache, lo que ayudará a liberar recursos de memoria.

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

Limpiar dentries e inodos

2. Para borrar solo los dentries y los inodos, puede utilizar el siguiente comando, que sincronizará el sistema de archivos y borrará tanto los dentries como los inodos. mejorar el rendimiento del sistema al liberar el directorio almacenado en caché y la información de inodos.

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

Borrar PageCache, Dentries e Inodos

3. Para borrar el caché de página, las dentries y los inodos, puede utilizar el siguiente comando, que sincronizará el sistema de archivos y borre el caché de página, los dentries y los inodos, lo que ayuda a liberar memoria y mejorar el rendimiento del sistema.

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

Aquí hay una explicación de cada parte del comando anterior:

  • El sudo se utiliza para ejecutar el comando como superusuario.
  • La sync vaciará el buffer del sistema de archivos.
  • El “; ” punto y coma se utiliza para separar varios comandos en una sola línea.
  • El comando echo 3 > /proc/sys/vm/drop_caches se utiliza para eliminar el caché de la página, un área de almacenamiento temporal para los archivos a los que se accedió recientemente.

Nota: El archivo drop_caches controla qué tipo de datos almacenados en caché deben borrarse y los valores son los siguientes:

  • 1: borra solo el caché de la página.
  • 2: borra dentries e inodos.
  • 3: borra la caché de la página, las dentries y los inodos.

Como se menciona en la documentación del kernel, escribir en drop_caches limpiará el caché sin eliminar ninguna aplicación/servicio, el comando echo hace el trabajo de escribir en el archivo.

Si tiene que borrar el caché del disco, el primer comando es más seguro en la empresa y en producción como “...echo 1 >…. ” borrará únicamente el PageCache.

No se recomienda utilizar la tercera opción encima de “...echo 3 > ” en producción hasta que sepas lo que estás haciendo, ya que borrará pagecache, dentaduras y inodos.

¿Cómo borrar el espacio de intercambio en Linux?

Para borrar el espacio de intercambio, puede usar el comando swapoff con la opción -a, que deshabilitará todas las particiones de intercambio.

sudo swapoff -a

Luego, regréselo ejecutando el siguiente comando, que activará todas las particiones de intercambio.

sudo swapon -a

¿Es aconsejable liberar el búfer, la caché y el intercambio en Linux?

En general, no es una buena idea liberar manualmente Buffer y Cache en Linux que podría utilizar el kernel de Linux, que está diseñado para administrar estos recursos de manera eficiente. y borrarlos manualmente puede afectar el rendimiento del sistema.

Sin embargo, puede haber situaciones excepcionales en las que necesite borrar el Buffer y el Caché, como si experimenta una presión de memoria severa y no puede liberar memoria por otros medios. En estos casos, debe proceder con precaución y ser consciente del posible impacto en el rendimiento.

De manera similar, limpiar el espacio de intercambio en Linux generalmente no es una práctica rutinaria o aconsejable en circunstancias normales.

Automatización de la optimización de la memoria

Para automatizar el proceso y borrar la memoria periódicamente, puede configurar un trabajo cron para ejecutar los comandos en intervalos específicos.

Abra la configuración de crontab.

crontab -e

Agregue las siguientes líneas para borrar el caché, el búfer y el espacio de intercambio diariamente a medianoche:

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a

Para obtener información adicional sobre cómo programar un trabajo con cron, puede consultar nuestro artículo titulado "11 trabajos de programación de Cron".

¿Es aconsejable borrar la memoria caché de RAM en un servidor de producción Linux?

No, no es. Considere un escenario en el que ha programado un script para borrar el caché de RAM todos los días a las 2 am. Todos los días a las 2 am, se ejecuta el script, vaciando la memoria caché de RAM. Sin embargo, un día, un número inesperadamente alto de usuarios está en línea en su sitio web, lo que genera una demanda significativa de los recursos de su servidor.

Simultáneamente, el script programado se ejecuta y borra todo lo que hay en el caché. Ahora, todos los usuarios están recuperando datos del disco, lo que podría provocar una caída del servidor y corrupción de la base de datos. Por lo tanto, es fundamental borrar la memoria caché de la RAM sólo cuando sea necesario y siendo consciente de tus acciones. De lo contrario, corre el riesgo de convertirse en administrador del sistema Cargo Cult.

Conclusión

La gestión eficiente de la memoria es crucial para que un sistema Linux funcione sin problemas. Borrar periódicamente la memoria caché, el búfer y el espacio de intercambio de la memoria RAM puede mejorar significativamente el rendimiento del sistema. Al comprender estos mecanismos y emplear los comandos proporcionados, podrá mantener su sistema Linux funcionando de la mejor manera.

Eso es todo por ahora. Si le gustó el artículo, recuerde compartir sus valiosos comentarios en los comentarios. Háganos saber su opinión sobre lo que cree que es un buen enfoque para borrar la memoria caché y el búfer de RAM en entornos empresariales y de producción.