Qual é a diferença entre memória total e memória livre

11

Eu tenho um sistema de desktop em que o Centos 7 está instalado. Possui 4 núcleos e 12 GB de memória. Para encontrar informações de memória, uso o free -hcomando Eu tenho uma confusão.

[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

Na coluna total, está dizendo que o total em 11 GB (isso está correto), na última coluna disponível, está dizendo que 6,6 GB e usado é 4,6 G.

Se a memória usada tiver 4,6 GB, o restante deverá ser 6,4 GB (11-4,6 = 6,4). Qual é a interpretação correta da saída acima Qual é a diferença entre a memória total e a disponível e a memória livre? A falta de memória está acima do caso, se precisar de 1 GB a mais para algum novo aplicativo?

Shafiq
fonte
então sua pergunta é sobre por que é 6,6 e não 6,4?
α
1
essa pergunta remonta a muitas décadas. Como você se refere à memória atualmente usada como cache, mas está 'disponível ou livre'. ie contém dados do disco e, portanto, é 'cache', se necessário; mas está disponível para aplicativos, caso eles sejam malloc (). a diferença com a qual você está preocupado é útil para nos informar quanta memória é usada por esse 'lugar para colocar esse valor' e é debatida a cada poucos anos desde os anos 80. ele não é alterado permanecendo como sempre foi (o annoying.figure é útil e ser inalterado, não significa que temos de modificar décadas scripts antigos que usam isso!)
guiverc

Respostas:

14

man free comando resolver meu 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
fonte