Странное использование памяти в Oracle Linux [дубликат]

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

            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 ГБ ОЗУ?

189
задан 1 September 2011 в 11:26
1 ответ

В настоящее время принятый ответ от 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)
1
ответ дан 4 January 2021 в 10:07

Теги

Похожие вопросы