Почему сумма полей 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.

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