В чем разница между общей и свободной памятью

11

У меня есть настольная система, где установлен Centos 7. Он имеет 4 ядра и 12 ГБ памяти. Чтобы найти информацию о памяти, я использую free -hкоманду. У меня есть одно замешательство.

[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

В итоговом столбце говорится, что общее количество в 11 ГБ (это правильно), в последнем доступном столбце говорится, что 6,6 ГБ и используется 4,6 ГБ.

Если используемая память составляет 4,6 ГБ, оставшееся должно быть 6,4 ГБ (11-4,6 = 6,4). Как правильно интерпретировать вышеприведенный вывод? В чем разница между общей и доступной и свободной памятью? Не хватает ли памяти выше случая, если мне нужно еще 1 ГБ для нового приложения?

Шафик
источник
так что ваш вопрос о том, почему это 6,6, а не 6,4?
αԋɱҽԃ αмєяιcαη
1
Этот вопрос восходит много десятилетий назад. Как вы относитесь к памяти, которая в настоящее время используется как кеш, но она «доступна или свободна». то есть. он содержит данные с диска и, таким образом, является кешем при необходимости; но доступно для приложений, если они malloc (). Разница, о которой вы беспокоитесь, полезна для того, чтобы сообщить нам, сколько памяти используется этим «местом для установки этого значения» и обсуждается каждые несколько лет, начиная с 80-х годов. он не изменился, оставаясь, как всегда (annoying.figure полезен! и неизменность не означает, что мы должны модифицировать скрипты, которые его используют десятилетиями)
guiverc

Ответы:

14

man free Команда решит мою проблему.

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)
Шафик
источник