Размер процесса в UNIX - PullRequest
       19

Размер процесса в UNIX

25 голосов
/ 04 августа 2008

Как правильно получить размер процесса для Solaris, HP-UX и AIX? Должны ли мы использовать top или ps -o vsz или что-то еще?

Ответы [ 4 ]

17 голосов
/ 05 августа 2008

Точные определения vsize, rss, rprvt, rshrd и других малоизвестных сокращений варьируются от ОС к ОС. Страницы справочника по командам top и ps будут иметь какое-то описание, но все такие описания значительно упрощены (или основаны на давно потухших реализациях ядра).
«Размер процесса», как концепция, трудно определить в общем случае. Ответы в конкретных случаях в значительной степени зависят от фактической реализации управления памятью в ОС и редко бывают такими же удовлетворительными, как концепция аккуратного «размера процесса», существующая в умах большинства пользователей (и большинства разработчиков).

Например, ни одно из этих чисел (и, скорее всего, любая их комбинация) не может быть использовано, чтобы точно сказать, сколько таких процессов может выполняться одновременно при заданном объеме свободной памяти. Но на самом деле, вам лучше всего прийти к этому с этой целью: зачем вам этот номер и для чего он будет использоваться? Учитывая эту информацию, я думаю, вы получите более полезные ответы.

5 голосов
/ 20 сентября 2008

В Solaris вы можете получить подробную информацию об использовании памяти процессом с помощью команды pmap. В частности, pmap -x <pid> показывает, какая часть памяти процесса используется совместно и сколько конкретно используется этим процессом. Это полезно для определения «предельного» использования памяти процессом - с помощью этого метода вы можете избежать двойного учета разделяемых библиотек.

4 голосов
/ 04 августа 2008

Да, вы имеете право на блокировку в VSZ.

ps u предоставит вам VSZ и RSS, которые представляют собой размер виртуальной памяти и размер резидентного набора. RSS - это объем физической памяти, выделенный процессу, а VSZ - размер виртуальной памяти процесса. Если у вас запущено несколько копий программы, большая часть памяти в VSZ будет распределена между этими процессами.

2 голосов
/ 20 марта 2014

Я суммировал размер резидентного набора для всех процессов, подобных этому (как root):

ps ax -o rss | awk '{rss += $1;} END { print rss}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...