Стоит ли доверять htop или top, когда дело доходит до памяти RES?

667
drjrm3

Я пишу программу для проверки некоторых показателей использования памяти в наших системах, и я хочу достичь целевого потребления памяти. Вы выполняете мою программу через, meminflate.exe -G 103.1если хотите использовать 103.1 GBпамять.

Когда я бегу meminflate.exe -G 63.3, я вижу топ - шоу, VIRTкак 63.5(ОК, не слишком далеко), но RESпоказывает 63на topи она показывает 63.5на htop. Какой из них я должен доверять? Я ожидаю, что htopэто правильно, но мне интересно, почему есть разница.

0

1 ответ на вопрос

0
Stefan Seidel

You can get the exact number of bytes for Rss (resident set) from /proc/<pid>/stat:

echo $(($(cat /proc/$(pgrep -n meminflate.exe)/stat | cut -d' ' -f24)*4096)) 

To explain: this reads /proc/<pid>/stat (here the PID number is found using pgrep), the uses cut to only select the 24th field (Rss). Then the result is multiplied by 4096 (the normal page size on Linux). You can also only multiply it by 4 to get the size in kiB or divide it by 256 to get it in MiB.