Как измерить пиковую память приложения, работающего в Linux?
Я запускаю это приложение в пакетном режиме, поэтому я не могу использовать RSS, так как он сообщает о текущей памяти. Мне нужна максимальная память, о которой приложение сообщало в конце.
VmPeak также не является решением, поскольку он сообщает о выделенной памяти, а также рассчитывает не по реальному ОЗУ, а также по жесткому диску.
Ответы:
Вот 2 метода для отслеживания пикового использования памяти процессами.
липкий
Я не использовал этот инструмент, но он звучит как то, что вы ищете. Это называется сиропы .
Описание
пример
/usr/bin/time -v
Да, как ни странно, команда времени GNU может дать вам пиковое использование памяти процессом. Он сообщает пиковую память так:
Maximum resident set size (kbytes)
.пример
Ссылки
источник
Несмотря на то, что тема довольно старая, я хочу поделиться другим проектом, появившимся в ядре Linux cgroups.
https://github.com/gsauthof/cgmemtime :
Примеры использования будут:
источник
wait4
для отлова выхода из процесса в комбинации с cgroups (memory.max_usage_in_bytes
), что, кажется, имеет смысл. Более подробная информация доступна в README на github.