¿Cuál es la diferencia entre memoria total y libre?

11

Tengo un sistema de escritorio donde está instalado Centos 7. Tiene 4 núcleos y 12 GB de memoria. Para encontrar información de la memoria, uso el free -hcomando. Tengo una confusión

[user@xyz-hi ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:            11G        4.6G        231M         94M        6.8G        6.6G
Swap:          3.9G        104M        3.8G

En la columna total, está diciendo que el total en 11GB (eso es correcto), en la última columna disponible, está diciendo que 6.6GB y usado es 4.6G.

Si la memoria utilizada es de 4.6 GB, el resto debería ser de 6.4 GB (11-4.6 = 6.4). ¿Cuál es la interpretación correcta de la salida anterior? ¿Cuál es la diferencia entre memoria total y disponible y libre? ¿Me he quedado sin memoria? ¿Necesito 1 GB más para alguna aplicación nueva?

Shafiq
fuente
¿Entonces su pregunta es por qué es 6.6 y no 6.4?
αԋɱҽԃ αмєяιcαη
1
esta pregunta se remonta a muchas décadas. ¿Cómo se refiere a la memoria utilizada actualmente como caché, pero está "disponible o es gratis"? es decir. contiene datos del disco y, por lo tanto, es 'caché' si es necesario; pero está disponible para aplicaciones si malloc (). La diferencia que le preocupa es útil para hacernos saber cuánta memoria utiliza este "dónde poner este valor" y se debate cada pocos años desde los años 80. no se cambia restante como siempre lo ha sido (el annoying.figure es útil y siendo sin cambios no significa que tengamos que modificar décadas viejos guiones que lo utilizan!)
guiverc

Respuestas:

14

man free Comando resuelve mi problema.

DESCRIPTION
       free  displays the total amount of free and used physical and swap mem‐
       ory in the system, as well as the buffers and caches used by  the  ker‐
       nel.  The  information  is  gathered by parsing /proc/meminfo. The dis‐
       played columns are:

       total  Total installed memory (MemTotal and SwapTotal in /proc/meminfo)

       used   Used memory (calculated as total - free - buffers - cache)

       free   Unused memory (MemFree and SwapFree in /proc/meminfo)

       shared Memory used (mostly) by tmpfs (Shmem in /proc/meminfo, available
              on kernels 2.6.32, displayed as zero if not available)

       buffers
              Memory used by kernel buffers (Buffers in /proc/meminfo)

       cache  Memory  used  by  the  page  cache and slabs (Cached and Slab in
              /proc/meminfo)

       buff/cache
              Sum of buffers and cache

       available
              Estimation of how much memory  is  available  for  starting  new
              applications,  without swapping. Unlike the data provided by the
              cache or free fields, this field takes into account  page  cache
              and also that not all reclaimable memory slabs will be reclaimed
              due to items being in use (MemAvailable in /proc/meminfo, avail‐
              able on kernels 3.14, emulated on kernels 2.6.27+, otherwise the
              same as free)
Shafiq
fuente