GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la columna de buffers en la salida de free?

free extrae sus datos de /proc/meminfo

slkwr133701:/usr/src/linux # free

             total       used       free     shared    buffers     cached
Mem:       2053456     434572    1618884          0      77888     201820

slkwr133701:/usr/src/linux # cat /proc/meminfo

MemTotal:        2053456 kB
MemFree:         1618736 kB
Buffers:           77928 kB
....

Esto se refiere a la memoria utilizada para el almacenamiento de E/S de bloque temporal. El núcleo tiene que asignar y liberar unidades del mismo tamaño constantemente, como transferencias de E/S de bloque, paquetes de red y búfer de socket

Puede ver mejor las asignaciones de cachés y búfer ejecutando slabtop

En respuesta a su pregunta de uso:el sistema generalmente asignará más bloques de los que necesita, pero a medida que aumente la "presión de la memoria", estos bloques adicionales se liberarán.


Los "búferes" son recuperables bajo presión de memoria. Por lo tanto, es similar al caché de la página (columna "caché"); no es un gran motivo de preocupación. El valor de los "búferes" puede ser pequeño o grande, depende de lo que esté haciendo su sistema :-). Podemos encontrar varios tipos de caché contados aquí.

El caché de búfer es literalmente el caché de página para el dispositivo de bloque. Linux solo los informa por separado.[*] Podría notar el uso de "búferes" mientras los programas leen/escriben el nodo del dispositivo de bloque, p. dd status=progress if=/dev/sda of=/dev/null . Aparentemente, las personas también lo notan cuando ejecutan un programa de reproducción de DVD.

Como prueba, consulte:el 30% de la RAM son "búferes". ¿Qué es?

Si no ha estado accediendo al nodo del dispositivo de bloque, sus "búferes" son probablemente todos los metadatos del sistema de archivos . Los sistemas de archivos usan el caché de búfer internamente como una conveniencia. Se aseguran de que nunca duplique el archivo datos - contenido del archivo - que se almacena en la memoria caché de la página principal. Exactamente para lo que el sistema de archivos usa la memoria caché del búfer, en todo caso, varía según el sistema de archivos.

En una máquina con una pequeña cantidad de RAM física, noté que los "búferes" pueden verse altos cuando tengo sistemas de archivos ext3/ext4. Esto se debió a que las escrituras en el diario pasan por el caché del búfer. (Ver enlace arriba). Los sistemas de archivos ext3/4 también almacenan el contenido del directorio en el caché del búfer.

En segundo lugar, los "búferes" mostrados por el free El comando también incluye SReclaimable, lo que significa losas recuperables. (Demostrado aquí:La forma correcta de monitorear la memoria de Linux, nuevamente).

La memoria Slab no parte de la caché de página/búfer. Sin embargo, es conveniente contarlos juntos. Ambos son recuperables, y el uso principal (¿único?) de los bloques recuperables es para el almacenamiento en caché del sistema de archivos. Por ejemplo, los metadatos de archivos (inodos) y las búsquedas de rutas (entry) se almacenan en caché en losas recuperables. "La memoria slab recuperable [puede] ocupar una gran fracción de la memoria del sistema en la mayoría de los sistemas inactivos con muchos archivos".

Puedes ver el Buffers sin procesar y SReclaimable valores en cat /proc/meminfo . También puede ejecutar slabtop para ver la lista de losas. AFICO, slabtop no da estadísticas sobre losas como recuperables o no. Pero por lo general puedes adivinar, y si hay alguna losa sospechosa, supongo que puedes buscarla por su nombre.

[*] A los efectos de esta respuesta, "caché de búfer" es el caché contado por Buffers en /proc/meminfo . Sin embargo, otras fuentes pueden referirse a toda la caché de la página como una caché de búfer unificada. Si desea la explicación histórica, consulte el primer enlace.

También los desarrolladores de Linux pueden haber usado "caché de búfer" para significar cosas diferentes, cuando estaban discutiendo sobre las implementaciones del sistema de archivos.


Linux
  1. WP-CLI - Administrar WordPress desde la terminal de Linux

  2. ¿Cómo saber en qué versión de Os X estoy desde la línea de comandos?

  3. Linux:¿la columna de búferes en la salida de Free?

  4. ¿Cuál es el segundo estado en ip link show output?

  5. En Linux, ¿cuál es la diferencia entre los búferes y el caché informados por el comando libre?

Cómo eliminar búferes de memoria y caché en Linux

¿Qué pasó con el espacio libre?

Guardar la salida de un comando desde la terminal de Debian a un archivo

¿Cuál es el refid en la salida ntpq -p?

generar la segunda columna de un archivo

¿Cuál es la forma más fácil de liberar espacio en un disco duro?