Как рассчитать использование системной памяти из /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.