Cómo borrar el caché en Linux

Cómo borrar el caché en Linux
El caché del sistema de archivos de Linux (caché de página) se usa para hacer operaciones de IO más rápido. Bajo ciertas circunstancias, un administrador o desarrollador puede querer limpiar manualmente el caché. En este artículo explicaremos cómo funciona el caché del sistema de archivos de Linux. Luego demostraremos cómo monitorear el uso del caché y cómo borrar el caché. Haremos algunos experimentos de rendimiento simples para verificar que el caché funcione como se esperaba y que el procedimiento de descarga de caché y el procedimiento claro también funciona como se esperaba.

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

El kernel reserva una cierta cantidad de memoria del sistema para almacenar en caché los accesos del disco del sistema de archivos para que el rendimiento general sea más rápido. El caché en Linux se llama Caché. El tamaño del caché de la página es configurable con valores predeterminados generosos habilitados para almacenar grandes cantidades de bloques de disco. El tamaño máximo del caché y las políticas de cuándo desalojar los datos del caché son ajustables con los parámetros del núcleo. El enfoque de caché de Linux se llama caché de retroceso. Esto significa que si los datos se escriben en el disco, se escribe en la memoria en el caché y se marca como sucio en el caché hasta que se sincronice con el disco. El núcleo mantiene estructuras de datos internos para optimizar qué datos desalojar de caché cuando se necesita más espacio en el caché.

Durante las llamadas al sistema de lectura de Linux, el kernel verificará si los datos solicitados se almacenan en bloques de datos en el caché, eso sería un éxito de caché exitoso y los datos se devolverán desde el caché sin hacer ningún IO al sistema de disco. Para un caché, la señorita, los datos se obtendrán del sistema IO y el caché se actualiza en función de las políticas de almacenamiento en caché, ya que es probable que estos mismos datos se soliciten nuevamente.

Cuando se alcancen ciertos umbrales del uso de la memoria. Estos pueden tener un impacto en el rendimiento de las aplicaciones intensivas de memoria y CPU y requieren ajuste por parte de los administradores y los desarrolladores.

Uso del comando gratuito para ver el uso de caché

Podemos usar el comando gratuito desde la línea de comando para analizar la memoria del sistema y la cantidad de memoria asignada al almacenamiento en caché. Ver comando a continuación:

# gratis -m

Lo que vemos de la gratis El comando anterior es que hay 7.5 GB de RAM en este sistema. De este solo 209 MB se usa y 6.5 MB es gratis. 667 MB se usa en el 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 juntas en uno Gran_file.

# dd if =/dev/random of =/root/data_file count = 1400000
# para i en 'seq 1 10'; hacer eco $ i; Cat data_file >> gran_file; hecho

Ahora nos aseguraremos de leer este archivo de 1 concierto y luego verificar el comando gratuito nuevamente:

# CAT LANGE_FILE> /DEV /NULL
# gratis -m

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

Comando de cachés de caza de VM Proc Sys VM

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

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

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

La verificación experimental que funciona con cachés de caída

¿Podemos hacer una validación de rendimiento al usar el caché para leer el archivo?? Leemos el archivo y volvamos a escribirlo a /dev /null para probar cuánto tiempo lleva leer el archivo desde el disco. Lo cronometraremos con el tiempo dominio. Hacemos este comando inmediatamente después de borrar el caché con los comandos anteriores.

Tomó 8.4 segundos para leer el archivo. Vamos a leerlo nuevamente ahora que el archivo debe estar en el caché del sistema de archivos y ver 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, repita esto nuevamente al borrar primero el caché y luego leer el archivo 2 veces.

Funcionó perfectamente como se esperaba. 8.5 segundos para la lectura sin consumo y .2 segundos para la lectura en caché.

Conclusión

El caché de la página se habilita automáticamente en los sistemas Linux y hará transparentemente IO más rápido almacenando datos usados ​​recientemente en el caché. Si desea borrar manualmente el caché que se puede hacer fácilmente enviando un comando ECHO al sistema de archivos /PROC que indica al núcleo para soltar el caché y liberar la memoria utilizada para el caché. Las instrucciones para ejecutar el comando se mostraron anteriormente en este artículo y la validación experimental del comportamiento de la caché antes y después de la descarga también se mostraron.