Почему сумма полей Rss в /proc/$$/smaps отличается от 24-го поля в /proc/$$/stat?
Насколько я понимаю, значение возвращается из
(1) awk '/Rss:/{ sum += $2 } END { print sum }' /proc/$$/smaps
а также
(2) cat /proc/$$/stat | cut -d " " -f24
должно быть равным, почему это не так?
На самом деле они в 4 раза больше, поэтому (1)/4 = (2) из всего, что я тестировал
Подробности о файлах можно найти на man 5 proc
uname -a: домашний сервер Linux 4.4.0-78-generiC#99-Ubuntu SMP четверг, 27 апреля 15:29:09 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1 ответ
Решение
Поле rss в файле статистики находится в страницах. Страница на большинстве аппаратных средств будет иметь размер 4096 байт. Поскольку вы сравниваете это с полем в килобайтах, вы можете легко увидеть, как вы получили разницу с коэффициентом 4: 4096 / 1024 = 4.