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/meminfotiene un campo paraWritebackespecíficamente. Hay un campo separadoBuffers, y eso es lo que se muestrabuffersenfree -w.BuffersAquí se muestra una razón común para el uso de la memoria: "El 30% de la RAM son" buffers ". ¿Qué es? "Bufferses (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.Dirtyes 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.WritebackNo incluyeDirty. Por lo tanto,Writebackno es una parte del valor deBuffers.Buffersrealmente 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
bufferses el valor de retorno de la funciónnr_blockdev_pages(void)La cantidad de
cached:fuente