Размер резидентного набора процесса - это объем памяти, который принадлежит ему и в настоящее время присутствует (резидентный) в ОЗУ (реальное ОЗУ, не поменяно местами или не является резидентным).
Например, если процесс выделяет кусок памяти (скажем, 100 МБ) и активно его использует (читает / записывает в него), его размер резидентного набора будет около 100 МБ (плюс накладные расходы, сегмент кода и т. Д.). Если после этого процесс затем перестает использовать (но не освобождает) эту память на некоторое время, ОС может выбрать обмен частями этой памяти для замены, чтобы освободить место для других процессов (или кеша). Размер резидентного набора будет тогда уменьшаться на величину, которую поменял ядро. Если процесс активируется и начинает повторно использовать эту память, ядро перезагрузит данные из свопинга, и размер резидентного набора снова увеличится.
ru_maxrss
Поле struct rusage
является «высоким водяным знаком» для резидентов установленного размера. Это указывает на пиковое использование RAM для этого процесса (при использовании RUSAGE_SELF
).
Вы можете ограничить размер резидентного набора процесса, чтобы одно приложение не «съело» всю оперативную память в вашей системе и не заставляло другие приложения выполнять подкачку (или полностью отказывать из-за нехватки памяти).
ru_maxrss
находится в байтах на компьютерах Mac / BSD.