Quelle est la différence entre la mémoire totale et la mémoire libre

11

J'ai un système de bureau sur lequel Centos 7 est installé. Il a 4 cœurs et 12 Go de mémoire. Afin de trouver des informations sur la mémoire, j'utilise la free -hcommande. J'ai une confusion.

[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

Dans la colonne totale, il dit que le total en 11 Go (c'est correct), dans la dernière colonne disponible, il dit que 6,6 Go et utilisé est 4,6G.

Si la mémoire utilisée est de 4,6 Go, le reste devrait être de 6,4 Go (11-4,6 = 6,4). Quelle est l'interprétation correcte de la sortie ci-dessus Quelle est la différence entre la mémoire totale et disponible et la mémoire libre? Suis-je à court de mémoire est au-dessus du cas si j'ai besoin de 1 Go de plus pour une nouvelle application?

Shafiq
la source
donc votre question est de savoir pourquoi il est 6,6 et non 6,4?
αԋɱҽԃ αмєяιcαη
1
cette question remonte à plusieurs décennies. Comment référez-vous à la mémoire actuellement utilisée comme cache, mais qui est «disponible ou libre». c'est à dire. il contient des données du disque et est donc «cache» si nécessaire; mais est disponible pour les applications si elles malloc (). la différence qui vous inquiète est utile pour nous faire savoir combien de mémoire est utilisée par ce «où mettre cette valeur» et est débattue toutes les quelques années depuis les années 80. il n'est pas changé en restant comme il l'a toujours été (la figure agaçante est utile! et le fait de ne pas être modifié ne signifie pas que nous devons modifier des scripts vieux de plusieurs dizaines d'années qui l'utilisent)
guiverc

Réponses:

14

man free commande résoudre mon problème.

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
la source