Use linux-fincore para verificar el uso de caché de la página de Linux

En esta breve publicación de blog, veremos cómo usarlo. linux-fincore para verificar que los archivos están en la caché de páginas de Linux en la memoria. Para una lectura introductoria sobre la verificación de caché de páginas de Linux aquí y aquí.

En resumen, cada vez que lee o escribe en un archivo (a menos que haya usado Direct_IO para eliminar la función), el resultado se almacena en caché en la memoria, de modo que las solicitudes posteriores pueden ser atendidas por el disco en un orden de magnitud más lento. subsistema (también se puede usar para escribir en caché, antes de lavarlo en el disco). Esto se hace para que haya memoria que no esté siendo utilizada por todos los procesos; siempre que haya una fuga de memoria libre, el núcleo elegirá borrar primero el caché de la página fuera de él.

Este proceso es transparente para nosotros como residentes del territorio del usuario y, en general, es algo que no debería importarnos. Sin embargo, ¿y si queremos saber más sobre esto? ¿Es posible? ¿Cómo podemos hacer eso? ¡Vamos a averiguar!

Instalarlo

A menos que sea para CentOS 6, parece que no hay ningún paquete disponible, por lo que debemos descargar el código fuente y compilarlo. Los pasos para esto son bastante simples:

Después de eso, tendremos las pistas listas para ser utilizadas. /usr/local/bin/.

úsalo

Como se ve en el resultado anterior, necesitamos revisar un archivo o una lista de archivos para el trabajo. Esto es un poco extraño a primera vista y plantea la pregunta: «¿Qué pasa si no proporciono ningún archivo que esté realmente en la memoria caché de la página?» La respuesta es simple: no aparecerán en la lista, ¡incluso si están en caché! Lo vemos en acción. Primero, escribimos dos archivos y verificamos si están en el caché (y cuánto espacio ocupan).

La opción -L muestra la salida en formato vertical, en lugar del estilo de columnas predeterminado. Ahora, dejamos fuera el tercer argumento (que es el segundo nombre del archivo):

solo vemos prueba_archivo_1, incluso si sabemos prueba_archivo_2 también se almacena en caché. Esto es algo a tener en cuenta cada vez que usamos la herramienta.

Un ejemplo más interesante es verificar, por ejemplo, desde un servidor MySQL en ejecución, que los archivos están en caché. Podemos usar un comando como el siguiente:

tu – solo caché flag será menos detallado, especificando solo salidas para archivos en caché.

Advertencias y Restricciones

La advertencia número uno, como se mencionó anteriormente, es proporcionar una lista precisa de archivos para verificar, de lo contrario, los resultados obviamente serán incorrectos (si intentamos dimensionar el uso total de caché).

Una limitación es que existe un límite superior en la cantidad de archivos que podemos verificar (al menos con un comando), dado que la lista de argumentos no es ilimitada. Por ejemplo, una forma natural de verificar su caché es usar un comando como el siguiente:

El comando falló, como podemos ver, porque excedimos la cantidad de argumentos permitidos por bash.

Limpieza de caché de página

Este tema está un poco fuera del alcance de la publicación del blog, pero pensé que al menos podría mencionarlo. Hay tres formas de borrar manualmente el caché de su página si es necesario:

1- escribiendo directamente al /proc/sys/vm/drop_caches Archivo

2- usarte sistema herramienta de configuración

Más información sobre esto aquí (buscarte drop_caches sección).

3- (Actualizado: ¡Gracias LeFred por su aporte en esto!) Use el descaché herramienta de DBSake para eliminar archivos de la memoria caché de forma selectiva, sin necesidad de eliminarlo todo.

¿Qué puedo usar?

La herramienta se puede utilizar para comprobar qué archivos se almacenan en caché y cuánta memoria ocupan. Por ejemplo, si ve un pico en el uso de la memoria después de ciertas operaciones, puede:

  • captura la salida inicial con linux-fincore
  • borrar el caché de la página (como se muestra arriba)
  • realizar la operación problemática
  • capturar una segunda muestra con linux-fincore

Luego puede comparar los resultados para ver qué archivos utilizó la operación y cuánto se necesitó para ellos.

Lecturas adicionales y herramientas similares

Hay uno publicación de blog extendida al respecto, quién tiene más herramientas y cómo usarlas.

descachéhttps: // por el bien de la base de datos.readthedocs.io/en/latest/comandos / uncache.html (Actualizado: consulte los comentarios de LeFred a continuación para obtener más información sobre esto). ¡Como bono adicional, DBSake tiene una herramienta de fincore que puede usar!

vmtouch – https://hoytech.com/vmtouch/

mincore – http://man7.org/linux/man-pages/man2/mincore.2.html

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario