man getrusage 2
говорит
ru_maxrss (since Linux 2.6.32)
This is the maximum resident set size used (in kilobytes). For RUSAGE_CHILDREN, this is the resident set size of the largest
child, not the maximum resident set size of the process tree.
Так что же конкретно означает это число?
kernel
memory
system-calls
жэнь
источник
источник
ru_maxrss
находится в байтах на компьютерах Mac / BSD.ru_maxss
в байтах на машинах Mac OS X (Darwin), но в килобайтах на машинах BSD и Linux. См. Stackoverflow.com/q/40773924/781723 и stackoverflow.com/q/12050913/781723 .Ответы:
Размер резидентного набора процесса - это объем памяти, который принадлежит ему и в настоящее время присутствует (резидентный) в ОЗУ (реальное ОЗУ, не поменяно местами или не является резидентным).
Например, если процесс выделяет кусок памяти (скажем, 100 МБ) и активно его использует (читает / записывает в него), его размер резидентного набора будет около 100 МБ (плюс накладные расходы, сегмент кода и т. Д.). Если после этого процесс затем перестает использовать (но не освобождает) эту память на некоторое время, ОС может выбрать обмен частями этой памяти для замены, чтобы освободить место для других процессов (или кеша). Размер резидентного набора будет тогда уменьшаться на величину, которую поменял ядро. Если процесс активируется и начинает повторно использовать эту память, ядро перезагрузит данные из свопинга, и размер резидентного набора снова увеличится.
ru_maxrss
Полеstruct rusage
является «высоким водяным знаком» для резидентов установленного размера. Это указывает на пиковое использование RAM для этого процесса (при использованииRUSAGE_SELF
).Вы можете ограничить размер резидентного набора процесса, чтобы одно приложение не «съело» всю оперативную память в вашей системе и не заставляло другие приложения выполнять подкачку (или полностью отказывать из-за нехватки памяти).
источник