Как интерпретировать вывод команды «free -m»?

37

Выходной файл free -m равен:

                     total    used    free    shared  buffers  cached
Mem:                  595      482     112         0       63     324
-/+ buffers/cache:              93     501
swap:                   0        0       0

Какое значение используемой памяти правильное, 482 или 93?

    
задан amoooc 30.11.2012 в 09:13
источник

4 ответа

30

У вас есть 112 МБ полностью свободной памяти, НО 501 мб, которые вы видите, не имеет «кэшированной» памяти. Это означает, что ОС поставила некоторые вещи в вашей памяти быстрее. Он называет это «использованным» (поэтому ваш «бесплатный» номер - только 112), но он действительно доступен для вас, если вам это нужно.

Это хорошо, потому что неиспользуемая память - бесполезная память. При необходимости кэшированная память может быть очищена. Старые вещи «Мне нужно очистить память», которые люди привыкли делать для Windows 95, здесь не нужны: все в порядке и доволен:)

Число, которое вы ищете, 501 бесплатно (в мегабайтах из-за -m ).

см. ссылки на эти страницы:

Ссылка
Ссылка

    
ответ дан Nanne 30.11.2012 в 09:50
источник
21

Интерпретация результата free :
В первой строке списка free перечислены:

  • total Ваша общая физическая память (при отсутствии виртуализации)
  • used Сколько из них в настоящее время используется (кем угодно)
  • free Сколько это полностью бесплатно (не используется вообще)
  • shared (никогда ничего там, игнорировать этот столбец)
  • buffers Память, используемая буферами ядра
  • cached Память, используемая для кеша

Последние два элемента, кеш и буферы, это память, которая не выделяется для определенных пользовательских процессов. Ядро памяти зарезервировано для улучшения производительности в целом, но не является «прикладной» памятью. Эти области будут расти или сокращаться в зависимости от политики ядра в отношении кэширования, давления памяти, шаблонов ввода-вывода приложений и т. Д.

Поскольку эти два столбца не являются выделенной пользователем памятью, и зоны могут сокращаться (практически до нуля), если это требует пользовательские распределения, они в некотором смысле «свободны» - там есть RAM, который может быть освобожден ядром если ваши приложения активно нуждаются в этом.

Вот что говорит вторая строка. Он удаляет буфер и кэш-память из столбца used (это то, что означает - ), и добавляет ( + ) их в столбец free . (Проблема округления произойдет.)

(Последняя строка показывает состояние вашего пространства подкачки.)

Предоставлено: Ссылка

Итак, в вашем случае 112 МБ - полностью свободная память, и если вы учитываете память, используемую для кеширования, которая может быть выделена пользовательским приложениям, если это необходимо; то 501 МБ - это максимальная доступная для использования память.

    
ответ дан saji89 30.11.2012 в 10:26
4

Ответ на @ saji89 превосходный, но в настоящее время free -m больше не печатает строку -/+ buffers/cache , а вместо этого помещает количество доступной ОЗУ в новый столбец available в первой строке, например:

[email protected]_master:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          61406        1571         506       17131       59328       42150
Swap:             0           0           0
[email protected]_master:~$ free -V
free from procps-ng 3.3.10

Вы можете прочитать фиксацию бесплатно (1), которая удалила строку в своем репо . Также фиксация для добавления нового столбца available .

    
ответ дан Paul A Jungwirth 05.09.2017 в 20:02
3
Команда

free показывает информацию о неиспользуемой и используемой памяти и области подкачки.

Ниже приведено пояснение Ссылка

  

Первая строка с надписью Mem отображает использование физической памяти,   включая объем памяти, выделяемый для буферов и кешей.   буфер, также называемый буферной памятью, обычно определяется как часть   память, которая откладывается как временное место для хранения данных, которые   отправляется или принимается с внешнего устройства, такого как жесткий диск,   клавиатуры, принтера или сети.

     

Вторая строка данных, которая начинается с - / + буферов / кеш , показывает   количество физической памяти, которая в настоящее время предназначена для системного буфера   кэш. Это особенно важно в отношении применения   программ, поскольку все данные, поступающие из файлов в системе, которые   выполненных с использованием системных вызовов read () и write ()1   через этот кеш. Этот кеш может значительно ускорить доступ к данным посредством   уменьшая или устраняя необходимость чтения или записи на жесткий диск или   другой диск.

     

Третья строка, начинающаяся с Swap , показывает общее пространство подкачки как   насколько он в настоящее время используется и сколько еще   доступны.

Давайте проанализируем использование вашей системы в памяти

Вы использовали команду free с опцией '-m', которая используется для отображения результата в мегабайтах

-m, --mega
              Display the amount of memory in megabytes.

Общая память 595 (используется + бесплатно)

Используется: 482 Бесплатно: 112

482MB из 595MB используется вашей системой, в которой только 93MB используется активными программами, а оставшиеся 324MB находятся в кеше

Итак, когда вы запускаете какую-либо программу в будущем, скажите, что требуется больше 120 МБ. Все 112MB (в настоящее время бесплатно) будут предоставлены, а оставшиеся 8MB будут взяты из неактивного буферной программы / кеша.

Изменить . Нашли это , которая дает хорошее объяснение.

    
ответ дан devav2 30.11.2012 в 10:35