Как рассчитать использование системной памяти из /proc/meminfo (например, htop)

Запуск htop Команда дает вам представление об использовании памяти в таком формате: 1.92G/5.83G,

Вопрос в том, как мне интерпретировать значения, взятые из /proc/meminfoдля того, чтобы программно рассчитать используемую память?

Я ищу что-то похожее на это: Точный расчет загрузки процессора в процентах в Linux? это означает, что псевдокод в порядке, мне не нужно что-то, что можно скомпилировать, просто логика. Исходный код htop - это место для поиска, но мне не повезло обнаружить строки кода, написанные для этого...

$ cat /proc/meminfo 
MemTotal:        6110716 kB
MemFree:         2076448 kB
MemAvailable:    3800944 kB
Buffers:          382240 kB
Cached:          1496216 kB
SwapCached:            0 kB
Active:          2830192 kB
Inactive:         796648 kB
Active(anon):    1749940 kB
Inactive(anon):   109808 kB
Active(file):    1080252 kB
Inactive(file):   686840 kB
Unevictable:          48 kB
.
.
.
...

1 ответ

Решение

Автор htop здесь. Вот расчеты, которые я делаю, чтобы получить числа для зеленой, синей и желтой полос в измерителе памяти:

  • Общая используемая память = MemTotal - MemFree
  • Не кэш / буферная память (зеленый) = общий объем используемой памяти - (буферы + кэшированная память)
  • Буферы (синие) = Buffers
  • Кэшированная память (желтая) = Cached + SReclaimable - Shmem
  • Обмен = SwapTotal - SwapFree

В исходном коде htop: linux / LinuxProcessList.c и linux / Platform.c.

скриншот htop

Другие вопросы по тегам