Contenidos
En este artículo mostramos cómo liberar la caché de páginas, dentries e inodos del kernel de Linux mediante un sencillo script en Bash. Este procedimiento resulta útil para realizar pruebas de rendimiento, benchmarking o tareas concretas de administración del sistema.
Importante: Linux gestiona automáticamente la memoria de forma eficiente. La liberación manual de la caché no mejora el rendimiento de manera permanente y no debe utilizarse como una tarea habitual de mantenimiento.
🐧 Código del script para GNU/Linux (Bash)
#!/bin/bash
if [ "$EUID" -ne 0 ]; then
echo "Debe ejecutar este script como root."
exit 1
fi
echo "Estado de la memoria antes de liberar la caché:"
free -h
# Sincroniza los datos pendientes de escritura con el disco
sync
# Libera la caché de páginas, dentries e inodos
echo 3 > /proc/sys/vm/drop_caches
echo
echo "Estado de la memoria después de liberar la caché:"
free -h
Explicación del funcionamiento
El script realiza las siguientes acciones:
- Comprueba que se está ejecutando con privilegios de root.
- Muestra el estado actual de la memoria mediante
free -h. - Ejecuta
syncpara forzar la escritura en disco de los datos pendientes que permanecen en los buffers del sistema. - Escribe el valor 3 en
/proc/sys/vm/drop_caches, indicando al kernel que libere:- la caché de páginas (Page Cache),
- las estructuras dentries,
- la caché de inodos.
- Muestra nuevamente el estado de la memoria para observar el resultado.
¿Qué hace drop_caches?
El archivo /proc/sys/vm/drop_caches permite solicitar al kernel la liberación de determinadas estructuras de memoria caché.
Los valores más utilizados son:
| Valor | Acción |
|---|---|
| 1 | Libera únicamente la caché de páginas. |
| 2 | Libera las dentries y los inodos. |
| 3 | Libera la caché de páginas, las dentries y los inodos. |
La memoria liberada volverá a utilizarse automáticamente cuando el sistema la necesite.
Consideraciones de seguridad
- El script debe ejecutarse con privilegios de root.
- No elimina datos de usuario ni archivos del sistema.
- Puede producir una disminución temporal del rendimiento, ya que el kernel tendrá que volver a cargar en memoria la información que previamente se encontraba almacenada en la caché.
- Su uso está recomendado para tareas de administración, pruebas de rendimiento o benchmarking, pero no como una medida habitual para mejorar el rendimiento del sistema.
Conclusión
Linux administra la memoria de forma automática y eficiente. La liberación manual de la caché es una herramienta útil en situaciones específicas, pero no sustituye a la gestión normal del kernel ni proporciona una mejora permanente del rendimiento.

