Entendiendo y Usando vm.drop_caches en Linux

Escrito el 2023-05-15 por Alberto Ferrer
Tiempo de lectura: 2 minuto(s)
Etiquetas: drop_caches memoria kernel linux

vm.drop_caches es una función especial en el núcleo de Linux que permite a los administradores liberar la memoria caché del sistema. Aunque pueda parecer un método efectivo para liberar memoria no utilizada y potencialmente mejorar el rendimiento del sistema, su uso requiere una comprensión cuidadosa de cómo Linux gestiona la memoria y el papel de la memoria caché.

¿Cómo funciona vm.drop_caches?

vm.drop_caches permite liberar diferentes tipos de memoria caché escribiendo valores específicos en el archivo /proc/sys/vm/drop_caches:

  • echo 1 > /proc/sys/vm/drop_caches: Libera la caché de páginas.
  • echo 2 > /proc/sys/vm/drop_caches: Libera los inodos y las entradas dentry.
  • echo 3 > /proc/sys/vm/drop_caches: Libera la caché de páginas, los inodos y las entradas dentry.

¿Cuándo y por qué usar vm.drop_caches?

La liberación manual de caché puede ser útil en ciertos casos, como pruebas de rendimiento donde se desea medir el rendimiento del sistema sin la influencia de la memoria caché. Sin embargo, en un entorno de producción, es recomendable permitir que el propio Linux administre la memoria caché. Linux es extremadamente eficiente en la gestión de la memoria y liberará automáticamente la caché si necesita espacio para otros procesos.

¿Cómo afecta vm.drop_caches a la memoria del sistema?

Usar vm.drop_caches se refleja principalmente en la columna buff/cache del comando free -h. Al ejecutar free -h, verás una disminución en la memoria usada y un aumento en la memoria libre después de liberar cachés con vm.drop_caches. Puedes aprender más sobre el comando free aquí.

Recomendaciones al usar vm.drop_caches

  • Úsalo solo para pruebas de rendimiento o para solucionar problemas específicos.
  • No lo uses en un servidor en producción a menos que sepas exactamente lo que estás haciendo.
  • No lo incorpores en scripts de limpieza regulares. Linux gestionará el caché de memoria de manera eficiente sin intervención manual.

En resumen, vm.drop_caches es una herramienta útil para pruebas de rendimiento y solución de problemas, pero su uso en entornos de producción debe ser cuidadosamente considerado. La gestión automática de memoria de Linux suele ser suficiente para la mayoría de las aplicaciones y situaciones.