GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué significan los campos de mejora/caché y disponibilidad de memoria en la parte superior?

top La página de manual de no describe los campos, pero free hace:

amortiguadores

Memoria utilizada por los búferes del kernel (Buffers en /proc/meminfo )

caché

Memoria utilizada por la caché de página y losas (Cached y SReclaimable en /proc/meminfo )

mejora/caché

Suma de búferes y caché

disponible

Estimación de cuánta memoria está disponible para iniciar nuevas aplicaciones, sin intercambio. A diferencia de los datos proporcionados por el caché o los campos libres, este campo tiene en cuenta el caché de página y también que no todas las losas de memoria reclamables se reclamarán debido a los elementos que están en uso (MemAvailable en /proc/meminfo , disponible en kernels 3.14, emulado en kernels2.6.27+, por lo demás igual que gratis)

Básicamente, "buff/cache" cuenta la memoria utilizada para los datos que están en el disco o que deberían terminar allí pronto y, como resultado, es potencialmente utilizable (la memoria correspondiente puede estar disponible de inmediato, si no se ha modificado desde que se leyó). , o dado el tiempo suficiente, si lo ha tenido); "disponible" mide la cantidad de memoria que se puede asignar y usar sin causar más intercambios (consulte ¿Cómo puedo obtener la cantidad de memoria disponible de forma portátil entre distribuciones? para obtener más detalles al respecto).


Solo para aclarar un poco, buffers se refiere a los datos que se están escribiendo -- esa memoria no se puede reclamar hasta que se complete la escritura.

Caché se refiere a datos que han sido leídos -- se conserva en caso de que sea necesario volver a leerlo, pero se puede reclamar de inmediato ya que siempre se puede volver a leer desde el disco.


La fuente canónica de esta información es /usr/src/linux/Documentación/filesystems/proc.txt

Búfers :El almacenamiento relativamente temporal para bloques de disco sin formato no debería ser tremendamente grande (20 MB aproximadamente) Caché :caché en memoria para archivos leídos desde el disco (la caché de página). No incluye SwapCached.

También puede encontrar más detalles aquí.

La caché de página de Linux ("en caché :" de meminfo ) es el mayor consumidor individual de RAM en la mayoría de los sistemas. Cada vez que realiza una lectura () desde un archivo en el disco, esos datos se leen en la memoria y van a la memoria caché (1.).
La memoria caché del búfer ("Búferes :" en meminfo) es un pariente más cercano a las cachés dentry/inode.

O analice el código fuente de esta manera.

La cantidad de buffers es el valor de retorno de la función nr_blockdev_pages(void)

long nr_blockdev_pages(void)
{
        struct block_device *bdev;
        long ret = 0;
        spin_lock(&bdev_lock);
        list_for_each_entry(bdev, &all_bdevs, bd_list) {
                ret += bdev->bd_inode->i_mapping->nrpages;
        }
        spin_unlock(&bdev_lock);
        return ret;
}

La cantidad de cached :

global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram

Linux
  1. ¿Cuál es la diferencia entre el búfer y la memoria caché en Linux?

  2. ¿Cuál es la diferencia entre escribir en un archivo y una memoria mapeada?

  3. ¿Qué es /dev/mem?

  4. ¿Cuál es la diferencia entre ls y l?

  5. ¿Cuál es la diferencia entre PAE de 32 bits y núcleos de 64 bits?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre DMA y E/S mapeada en memoria?

¿Qué significan %MEM y VSZ de top?

¿Qué significa la capacidad ep?

¿Cuál es la diferencia entre unlink y rm?

¿Qué significa %st en la parte superior?