Вопрос: Значение строки буферов / кешей на выходе свободных


Почему мой сервер показывает

            total      used      free   shared buffers    cached
    Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
   Swap: 24571408     54528  24516880

Я не знаю, как вычислить память в Linux. Я думаю, это говорит о том, что 5088232 используется там, где 7198224 является бесплатным, то есть фактически потребляет 5 ГБ оперативной памяти?


146
2017-11-17 10:37


Источник


serverfault.com/questions/23433/... - Kyle Brandt♦
linuxatemyram.com - Sasha


Ответы:


Значение значений

Первая строка означает:

  • total: Ваша общая (физическая) ОЗУ (за исключением небольшого количества, которое ядро ​​постоянно резервирует для себя при запуске); поэтому он показывает ок. 11.7 GiB, а не 12 GiB, которые вы, вероятно, имеете.
  • used: память, используемая ОС.
  • free: память не используется.

total знак равно used + free

  • shared / buffers / cached: Это показывает использование памяти для определенных целей, эти значения включены в значение для used,

Вторая строка дает корректировку значений первой строки. Он дает исходное значение для used  минус сумма buffers+cached и первоначальное значение для free  плюс сумма buffers+cached, следовательно, его название. Эти новые значения часто более значимы, чем в первой строке.

Последняя строка (Swap:) дает информацию об использовании пространства подкачки (т. е. содержимое памяти, которое было временно перемещено на диск).

Задний план

Чтобы понять, что означают цифры, вам нужно немного узнать о подсистеме виртуальной памяти (VM) в Linux. Просто короткая версия: Linux (как и большинство современных ОС) всегда будет пытаться использовать бесплатную ОЗУ для кеширования, поэтому Mem: free почти всегда будет очень низким. Поэтому линия -/+ buffers/cache: показывается, насколько свободна память при игнорировании кешей; кеши будут автоматически освобождаться, если память будет недостаточной, поэтому они не имеют большого значения.

Система Linux действительно низкая по free значение в -/+ buffers/cache: линия становится низкой.

Более подробно о значении чисел см., Например, вопросы:

Изменения в обработках 3.3.10

Обратите внимание, что вывод free был изменен в procps 3.3.10 (выпущен в 2014 году). Опубликованные столбцы теперь «общий», «используемый», «свободный», «общий», «бафф / кеш», «доступный»,, и значения некоторых значений изменились, главным образом, для лучшего учета кеша slab ядра Linux.

Видеть Отчет об ошибке в Debian # 565518 для мотивации и Каковы изменения в free выход с 14.04 до 16.04 означает? для получения более подробной информации.


210
2017-11-17 11:42



Не могли бы вы рассказать о том, что может быть кеширование Linux? Будет ли это доступ к файлам или сетевым материалам? - CMCDragonkai
@CMCDragonkai: ответ на serverfault.com/questions/23433/... подробно указывается, что составляет «кеш» и «буфер». - sleske
Я не думаю, что утверждение «total = used + free» верное, см. Следующий вывод на моей машине: $ free -h  total used free shared buff/cache available  Mem: 3.4G 585M 152M 11M 2.6G 2.5G  Swap: 4.0G 84M 3.9G - Sebastian
@Sebastian: Ах, интересно. Кажется, свобода была изменена (в 3.3.10). Я отредактировал свой ответ, чтобы упомянуть об этом. Если вас интересует это изменение, попробуйте задать новый вопрос :-). - sleske


Для тех, кому требуется еще более простое, пошаговое объяснение, проверьте http://thoughtsbyclayg.blogspot.com/2008/09/display-free-memory-on-linux-ubuntu.html, его объяснение мне очень помогло.


7
2018-02-13 22:06



meta.stackexchange.com/q/8231/133242 - Matt Ball


Строка буферов / кешей показывает, сколько памяти используется программами (первая из этих столбцов), и бесплатно для программ (второй столбец). Это довольно эзотерическое число, а не то, на что вы действительно на самом деле смотрели бы на практике.


2
2017-11-17 11:03



И что означает первая строка (линия) - Muahmmad Zeeshan
У вас в системе установлено 12 ГБ оперативной памяти, из которых 11,5 ГБ и 0,5 ГБ или около того в настоящее время не используются. Примерно 82 МБ используемой памяти используется для буферов (сетевых подключений и т. Д.), В то время как для хранения копий данных на диске используется около 6.5 ГБ, поэтому данные не нужно перечитывать, если это необходимо снова. - womble♦
@Muhammad: «82 МБ бесплатно». - нет, 57MiB является бесплатным (но это не имеет большого значения, см. мой ответ). «Теперь все это означает, что система достигла своих пределов» - Нет, совсем нет. Система использует 6.9GiB для кеширования, которую она легко даст приложениям, поэтому есть много места. Кроме того, использование swap очень низкое (около 50MiB). Если память начнет напрягаться, использование подкачки повысится. В настоящее время вы почти не используете половину ОЗУ. - sleske
Рассматривали ли вы вопрос в какой-то момент? - womble♦
Я не согласен, строка буферов / кешей является фактической свободной памятью системы и поэтому наиболее актуальна, если вы хотите знать, есть ли в системе возможности для программ. - eckes