Почему мой сервер показывает
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 ГБ ОЗУ?
В настоящее время принятый ответ от 2009 года устарел. Важно убедиться, что информация, которую вы получаете, верна и соответствует версии free
(распространяется в пакете Debian procps
или эквивалентном в вашем дистрибутиве). Также полезно посмотреть на вывод man free
, а также man 5 proc
, который содержит информацию о / proc / meminfo
, файле, где free
получает свои данные из Linux.
По умолчанию вывод free
находится в кибибайтах (1 кибибайт = 1024 байта), как вы можете видеть на странице руководства. Я предпочитаю использовать аргумент -h
, который показывает суффиксы, например:
$ free -h
total used free shared buff/cache available
Mem: 15Gi 6.1Gi 1.9Gi 301Mi 7.5Gi 8.8Gi
Swap: 979Mi 0B 979Mi
Первая строка Mem
означает:
всего
(Mem): всего установлено память (то есть MemTotal
плюс SwapTotal
из / proc / meminfo
), это вся память в ОЗУ плюс память, выделенная для Swap used
(Mem): используемая память, равная total - free - buffers - cache
free
(Mem): неиспользуемая память (то есть MemFree
плюс SwapFree
), это вся память, которая не используется ни для чего (даже кеши) в RAM и в Swap shared
(Mem): это объем памяти, используемый в основном для tmpfs
] ( Shmem
) буфер / кеш
(Mem), сумма буферов
и кеша
:
буферы
: память, используемая буферами ядра ( Buffers
), то есть память, которую ядро может использовать в своих интересах кеш
: память, используемая кешем страниц и блоками ( Кэшированные
и SReclaimable
). Кэш страниц содержит содержимое файлов в файловой системе, кэшированное в ОЗУ, и, как правило, это хорошо, если это большое число. Я предполагаю, что «плиты» - это аналогичная функция кеширования. доступно
(Mem):это приблизительный объем памяти, доступный для запуска новых приложений без подкачки. Он включает большую часть памяти, подсчитываемой в поле cache
(поскольку кеш страницы можно отбросить для запуска новых приложений), но не учитывает подкачку (поскольку обычно предпочтительно не использовать медленное пространство подкачки). Вторая строка - это Swap
, и страница man
не объясняет эту строку по какой-либо причине. Вот мое объяснение:
total
(Swap): это общий объем дискового пространства, зарезервированного для swap. Вы можете проверить, что это соответствует выводу swapon -s
. used
(Swap): объем дискового пространства подкачки, который используется в настоящее время. Опять же, вы можете проверить это, сравнив его с выводом swapon -s
free
(Swap): объем дискового пространства подкачки, которое в настоящее время не используется. Он равен total (Swap) - used (Swap)