Dentro de la salida de top, hay dos campos, marcados "buff / cache" y "avail Mem" en la memoria y líneas de uso de intercambio:
¿Qué significan estos dos campos?
He intentado buscarlos en Google, pero los resultados solo muestran artículos genéricos en la parte superior, y no explican qué significan estos campos.
Solo para aclarar un poco, los búferes se refieren a los datos que se están escribiendo : esa memoria no se puede recuperar hasta que se complete la escritura.
La memoria caché se refiere a los datos que se han leído : se conservan en caso de que necesiten leerse nuevamente, pero se pueden recuperar de inmediato ya que siempre se pueden volver a leer desde el disco.
fuente
/proc/meminfo
tiene un campo paraWriteback
específicamente. Hay un campo separadoBuffers
, y eso es lo que se muestrabuffers
enfree -w
.Buffers
Aquí se muestra una razón común para el uso de la memoria: "El 30% de la RAM son" buffers ". ¿Qué es? "Buffers
es (ahora) una parte del caché de la página; no se cuentaCached
, pero se cuenta como parte deActive(file) + Inactive(file)
. Ver comentarios sobre la respuesta de Stephen Kitt.Dirty
es la parte de la memoria caché de la página en la que se ha escrito y, por lo tanto, finalmente necesita volver a escribirse en el disco.Writeback
No incluyeDirty
. Por lo tanto,Writeback
no es una parte del valor deBuffers
.Buffers
realmente significa es el caché de página asociado con el dispositivo de bloque. Algunos sistemas de archivos usan esto internamente; otros no lo usan en absoluto. / va a arreglar mi respuesta en la pregunta "30% de mi RAM es buffers".La fuente canónica de esta información es /usr/src/linux/Documentation/filesystems/proc.txt
También puedes encontrar más detalles aquí .
O analizar el código fuente como este .
La cantidad de
buffers
es el valor de retorno de la funciónnr_blockdev_pages(void)
La cantidad de
cached
:fuente