Cómo Borrar la caché en Linux
La caché del sistema de archivos de linux (Caché de páginas) se utiliza para agilizar las operaciones de E / s. En determinadas circunstancias, es posible que un administrador o desarrollador desee borrar manualmente la caché. En este artículo explicaremos cómo funciona la caché del Sistema de Archivos Linux. Luego demostraremos cómo monitorear el uso de la caché y cómo borrar la caché. Haremos algunos experimentos de rendimiento simples para verificar que la caché funciona como se espera y que el procedimiento de vaciado y vaciado de la caché también funciona como se espera.
Cómo funciona la caché del Sistema de archivos de Linux
El núcleo reserva una cierta cantidad de memoria del sistema para almacenar en caché los accesos al disco del sistema de archivos con el fin de hacer que el rendimiento general sea más rápido. La caché en linux se llama Caché de página. El tamaño de la caché de página se puede configurar con generosos valores predeterminados habilitados para almacenar en caché grandes cantidades de bloques de disco. El tamaño máximo de la caché y las políticas de cuándo desalojar los datos de la caché se pueden ajustar con los parámetros del núcleo. El enfoque de caché de Linux se denomina caché de escritura. Esto significa que si los datos se escriben en el disco, se escriben en la memoria en la caché y se marcan como sucios en la caché hasta que se sincronizan con el disco. El núcleo mantiene estructuras de datos internas para optimizar qué datos expulsar de la caché cuando se necesita más espacio en la caché.
Durante las llamadas al sistema de lectura de Linux, el núcleo comprobará si los datos solicitados se almacenan en bloques de datos en la caché, lo que sería una visita exitosa a la caché y los datos se devolverán desde la caché sin hacer ninguna E / s al sistema de disco. Para un error de caché, los datos se recuperarán del sistema de E / S y la caché se actualizará en función de las políticas de almacenamiento en caché, ya que es probable que se vuelvan a solicitar estos mismos datos.
Cuando se alcanzan ciertos umbrales de uso de memoria, las tareas en segundo plano comenzarán a escribir datos sucios en el disco para asegurarse de que se borra la memoria caché. Estos pueden tener un impacto en el rendimiento de las aplicaciones con uso intensivo de memoria y CPU y requieren ajustes por parte de los administradores y / o desarrolladores.
Usando el comando Free para ver el Uso de la Caché
Podemos usar el comando free desde la línea de comandos para analizar la memoria del sistema y la cantidad de memoria asignada al almacenamiento en caché. Ver comando a continuación:
Lo que vemos en el comando libre anterior es que hay 7,5 GB de RAM en este sistema. De esta cantidad, solo se utilizan 209 MB y 6,5 MB son gratuitos. Se utilizan 667 MB en la caché del búfer. Ahora intentemos aumentar ese número ejecutando un comando para generar un archivo de 1 Gigabyte y leyendo el archivo. El comando a continuación generará aproximadamente 100 MB de datos aleatorios y luego agregará 10 copias del archivo juntas en un archivo large_file.
# for i in `seq 1 10`; do echo $i; cat data_file >> large_file; hecho
Ahora vamos asegúrese de leer este 1 Giga de archivo y, a continuación, compruebe el comando free de nuevo:
# free-m
Podemos ver que el uso de la caché de búfer ha aumentado desde 667 a 1735 Megabytes, un aumento de aproximadamente 1 Gigabyte en el uso de la caché de búfer.
Comando Proc Sys VM Drop Caches
El núcleo linux proporciona una interfaz para soltar la caché probemos estos comandos y veamos el impacto en la configuración libre.
# free-m
podemos ver por encima que la mayoría de la caché del búfer de la asignación fue liberado con este comando.
Verificación experimental de que funcionan las cachés sueltos
¿Podemos hacer una validación de rendimiento del uso de la caché para leer el archivo? Vamos a leer el archivo y escribirlo de nuevo en /dev/null para probar cuánto tiempo se tarda en leer el archivo desde el disco. Lo cronometraremos con el comando de tiempo. Hacemos este comando inmediatamente después de limpiar la caché con los comandos anteriores.
tomó 8.4 segundos para leer el archivo. Leámoslo de nuevo ahora que el archivo debería estar en la caché del sistema de archivos y veamos cuánto tiempo lleva ahora.
Boom! Sólo se necesitó .2 segundos en comparación con 8,4 segundos para leerlo cuando el archivo no se almacenó en caché. Para verificar, repitamos esto de nuevo, primero borrando la caché y luego leyendo el archivo 2 veces.
funcionó perfectamente como se esperaba. 8.5 segundos para la lectura no almacenada en caché y .2 segundos para la lectura en caché.
Conclusión
La caché de página se activa automáticamente en los sistemas Linux y de forma transparente hará que las e / s sean más rápidas almacenando los datos usados recientemente en la caché. Si desea borrar manualmente la caché, puede hacerlo fácilmente enviando un comando echo al sistema de archivos / proc indicando al núcleo que suelte la caché y libere la memoria utilizada para la caché. Las instrucciones para ejecutar el comando se mostraron anteriormente en este artículo y también se mostró la validación experimental del comportamiento de la caché antes y después del lavado.
Leave a Reply