llamada al sistema de getrusage: qué es el "tamaño máximo de conjunto residente"

23

man getrusage 2 dice

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.

Entonces, ¿qué significa exactamente este número?

ren
fuente
Solo una nota que ru_maxrssestá en bytes en máquinas mac / BSD.
Isaac Turner
1
Pequeña aclaración: ru_maxssestá en bytes en máquinas Mac OS X (Darwin), pero en kilobytes en máquinas BSD y máquinas Linux. Consulte stackoverflow.com/q/40773924/781723 y stackoverflow.com/q/12050913/781723 .
DW

Respuestas:

27

El tamaño del conjunto residente de un proceso es la cantidad de memoria que le pertenece y que actualmente está presente (residente) en la RAM (RAM real, no intercambiada o no residente).

Por ejemplo, si un proceso asigna una porción de memoria (digamos 100Mb) y la usa activamente (lee / escribe), su tamaño de conjunto residente será de aproximadamente 100Mb (más gastos generales, el segmento de código, etc.). Si después del proceso deja de usar (pero no libera) esa memoria por un tiempo, el sistema operativo podría optar por intercambiar fragmentos de esa memoria para intercambiar, para dejar espacio para otros procesos (o caché). El tamaño del conjunto residente luego disminuiría en la cantidad que el núcleo intercambió. Si el proceso se activa y comienza a reutilizar esa memoria, el núcleo volvería a cargar los datos del intercambio y el tamaño del conjunto residente volvería a subir.

El ru_maxrsscampo de struct rusagees la "marca de límite superior" para el tamaño del conjunto residente. Indica el uso máximo de RAM para este proceso (cuando se usa RUSAGE_SELF).

Puede limitar el tamaño de conjunto residente de un proceso para evitar que una sola aplicación "coma" toda la RAM en su sistema y obligue a otras aplicaciones a intercambiar (o fallar completamente con condiciones de falta de memoria).

Estera
fuente