Значение строки буферов /кешей на выходе свободных
Почему мой сервер показывает
общее количество использованных бесплатных общих буферов, кэшированных
Mem: 12286456 11715372 571084 0 81912 6545228
- /+ буферы /кеш: 5088232 7198224
Обмен: 24571408 54528 24516880
Я не знаю, как вычислить память в Linux. Я думаю, это говорит о том, что 5088232 используется там, где 7198224 является бесплатным, то есть фактически потребляет 5 ГБ ОЗУ?
3 ответа
Значение значений
Первая строка означает:
-
total
: Ваша общая (физическая) ОЗУ (за исключением небольшого количества, которое ядро постоянно резервирует для себя при запуске); поэтому он показывает ок. 11.7 GiB, а не 12 GiB, которые вы, вероятно, имеете. -
используется
: память, используемая ОС. -
free
: память не используется.
всего
= +
бесплатно
-
shared
/buffers
/cached
: это показывает использование памяти для определенных целей, эти значения включены в значение дляused
.
Вторая строка дает корректировку значений первой строки. Он дает исходное значение для минус сумма
buffers + cached
и исходное значение для free
плюс сумма buffers + cached
, следовательно, ее название. Эти новые значения часто более значимы, чем значения для первой строки.
Последняя строка (Swap:
) предоставляет информацию об использовании пространства подкачки (т. е. содержимое памяти, которое было временно перемещено на диск).
Фон
Чтобы понять, что означают цифры, вам нужно немного узнать о подсистеме виртуальной памяти (VM) в Linux. Просто короткая версия: Linux (как и большинство современных ОС) всегда будет пытаться использовать бесплатную ОЗУ для кеширования, поэтому Mem: free
будет почти всегда быть очень низким. Поэтому отображается строка - /+ buffers /cache:
, потому что она показывает, сколько памяти свободна при игнорировании кешей; кеши будут автоматически освобождаться, если память становится недостаточной, поэтому они не имеют большого значения.
Система Linux на самом деле низкая в памяти, если значение free
в строке - /+ buffers /cache:
становится низким.
Подробнее о значении чисел см., например, вопросы:
- В Linux, в чем разница между «буферами» и «кешем», сообщаемыми свободной командой?
- Почему Red Hat Linux предоставляет меньше свободной памяти в системе, чем на самом деле?
Изменения в procps 3.3.10
Обратите внимание, что вывод free
был изменен в procps 3.3.10 (выпущен в 2014 году). По имеющимся столбцам теперь «total», «used», «free», «shared», «buff /cache», «available» , а значения некоторых значений изменены, в основном для лучше учитывать кэш-память slab ядра Linux.
См. отчет об ошибках Debian # 565518 для мотивации, и Что изменения в free
с 14.04 до 16.04 означают? для получения более подробной информации.
Для тех, кому требуется более простое, пошаговое объяснение, отметьте http://thoughtsbyclayg.blogspot.com/2008/09/display-free-memory-on-linux-ubuntu.html , его объяснение очень помогло мне.
Строка буферов /кеш показывает, сколько памяти используется программами (первая из этих столбцов), и бесплатно для программ (второй столбец). Это довольно эзотерическое число, а не то, на что вы действительно на самом деле смотрели бы на практике.