Расчет максимального объема свободной памяти, используемой процессом - PullRequest
2 голосов
/ 30 мая 2011

Я хотел бы сравнить максимальное количество кучи, динамически выделяемой набором процессов. Есть ли какая-нибудь системная команда в Linux или любое приложение, которое автоматически это делает? Что-то вроде инструмента мониторинга, который запускает процесс и следит за тем, сколько памяти используется процессом.

К сожалению, команда size(1) отображает только в разделах памяти text и data процесса и составляет учетные отчеты процесса о среднем объеме памяти, используемой процессом.

Ответы [ 2 ]

3 голосов
/ 31 мая 2011

Попробуйте использовать профилировщик памяти, например Массив valgrind .

1 голос
/ 30 мая 2011

pmap неплох, но он дает вам только снимок, а не максимум.

Возможно, вы захотите взглянуть на getrusage () .В новых ядрах (2.6.32; не уверен в точном обрезании) поля ru_ * rss фактически заполняются.(В старых ядрах они всегда устанавливаются в ноль ...)

Также попробуйте "cat / proc / / status" и посмотрите на VmPeak (который показывает пиковое использование виртуальной памяти) и VmHWM (который показывает пиковый размер резидентного набора).Это оба "высокие отметки", так как они повышаются в течение всей жизни процесса, но никогда не падают.Если вы можете получить их снимок при завершении процесса, вы можете собрать данные самостоятельно.

Однажды я написал .so, чтобы сделать это;это сработало путем исправления exit () (и вы вызвали его с помощью LD_PRELOAD).Но это было для работы, и у меня нет копии: - (.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...