Actuación

Cómo borrar la caché en Linux

Cómo borrar la caché en Linux
La caché del sistema de archivos de Linux (Page Cache) se utiliza para agilizar las operaciones de E / S.  En determinadas circunstancias, es posible que un administrador o desarrollador desee borrar manualmente la memoria caché.  En este artículo explicaremos cómo funciona la caché del sistema de archivos de Linux.  Luego, demostraremos cómo monitorear el uso de la caché y cómo borrar la caché.  Realizaremos algunos experimentos de rendimiento simples para verificar que la caché funciona como se esperaba y que el procedimiento de vaciado y borrado de la caché también funciona como se esperaba.

Cómo funciona la caché del sistema de archivos de Linux

El kernel reserva una cierta cantidad de memoria del sistema para almacenar en caché los accesos al disco del sistema de archivos para 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 la 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 sobre cuándo desalojar los datos de la caché se pueden ajustar con los parámetros del kernel.  El enfoque de caché de Linux se denomina caché de escritura diferida.  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 kernel mantiene estructuras de datos internas para optimizar qué datos desalojar de la caché cuando se necesita más espacio en la caché.

Durante las llamadas al sistema de lectura de Linux, el kernel verificará si los datos solicitados se almacenan en bloques de datos en la caché, eso sería un éxito de caché exitoso y los datos se devolverán desde la caché sin realizar ninguna E / S en el sistema de disco.  Para una falta de caché, los datos se recuperarán del sistema de E / S y el caché se actualizará en función de las políticas de almacenamiento en caché, ya que es probable que estos mismos datos se soliciten nuevamente.

Cuando se alcanzan ciertos umbrales de uso de memoria, las tareas en segundo plano comenzarán a escribir datos sucios en el disco para garantizar que se borre la memoria caché.  Estos pueden tener un impacto en el rendimiento de la memoria y las aplicaciones de uso intensivo de CPU y requieren ajustes por parte de los administradores o desarrolladores.

Uso del comando gratuito 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é.  Vea el comando a continuación:

# libre -m

Lo que vemos desde el libre comando de arriba es que hay 7.5 GB de RAM en este sistema.  De esto, solo se utilizan 209 MB y 6.5 MB es gratis.  667 MB se utilizan 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 siguiente comando generará aproximadamente 100 MB de datos aleatorios y luego agregará 10 copias del archivo en una archivo_grande.

# dd if = / dev / random of = / root / data_file count = 1400000
# para i en 'seq 1 10'; echo $ i; cat archivo_de_datos >> archivo_grande; hecho

Ahora nos aseguraremos de leer este archivo de 1 Gig y luego verificaremos el comando gratuito nuevamente:

# cat large_file> / dev / null
# libre -m

Podemos ver que el uso de la caché del búfer ha aumentado de 667 a 1735 Megabytes, un aumento de aproximadamente 1 Gigabyte en el uso de la caché del búfer.

Comando Proc Sys VM Drop Caches

El kernel de Linux proporciona una interfaz para eliminar el caché. Probemos estos comandos y veamos el impacto en la configuración gratuita.

# echo 1> / proc / sys / vm / drop_caches
# libre -m

Podemos ver arriba que la mayor parte de la asignación de caché del búfer se liberó con este comando.

Verificación experimental de que las memorias caché funcionan

¿Podemos hacer una validación del rendimiento del uso de la caché para leer el archivo?? Leamos el archivo y escribamos de nuevo en / dev / null para probar cuánto tiempo lleva leer el archivo desde el disco.  Lo cronometraremos con el hora mando.  Hacemos este comando inmediatamente después de borrar el 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.

Auge!  Solo tomó .2 segundos en comparación con 8.4 segundos para leerlo cuando el archivo no estaba en caché.  Para verificar, repitamos esto nuevamente borrando primero el 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 la página se habilita automáticamente en los sistemas Linux y hará que IO sea más rápido de forma transparente al almacenar los datos usados ​​recientemente en la caché.  Si desea borrar manualmente el caché, puede hacerlo fácilmente enviando un comando echo al sistema de archivos / proc indicando al kernel que suelte el caché y libere la memoria utilizada para el caché.  Las instrucciones para ejecutar el comando se mostraron arriba en este artículo y también se mostró la validación experimental del comportamiento de la caché antes y después del vaciado.

Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...