appel système getrusage: qu'est-ce que la «taille maximale de l'ensemble de résidents»

23

man getrusage 2 dit

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.

Alors, que signifie exactement ce nombre?

ren
la source
Juste une note qui ru_maxrssest en octets sur les machines mac / BSD.
Isaac Turner
1
Petite précision: ru_maxssest en octets sur les machines Mac OS X (Darwin), mais en kilo-octets sur les machines BSD et Linux. Voir stackoverflow.com/q/40773924/781723 et stackoverflow.com/q/12050913/781723 .
DW

Réponses:

27

La taille de l'ensemble résident d'un processus est la quantité de mémoire qui lui appartient et qui est actuellement présente (résidente) dans la RAM (RAM réelle, non permutée ou non résidente).

Par exemple, si un processus alloue un morceau de mémoire (disons 100 Mo) et l'utilise activement (lecture / écriture), sa taille d'ensemble résident sera d'environ 100 Mo (plus les frais généraux, le segment de code, etc.). Si après le processus cesse alors d'utiliser (mais ne libère pas) cette mémoire pendant un certain temps, le système d'exploitation pourrait choisir d'échanger des morceaux de cette mémoire pour les échanger, pour faire de la place à d'autres processus (ou cache). La taille de l'ensemble résident diminuerait alors du montant que le noyau a échangé. Si le processus se réveille et commence à réutiliser cette mémoire, le noyau rechargerait les données du swap et la taille de l'ensemble résident augmenterait à nouveau.

Le ru_maxrsschamp de struct rusageest la «ligne des hautes eaux» pour la taille de l'ensemble résident. Il indique l'utilisation maximale de la RAM pour ce processus (lors de l'utilisation RUSAGE_SELF).

Vous pouvez limiter la taille de l'ensemble résident d'un processus pour éviter qu'une seule application «consomme» toute la mémoire RAM de votre système et ne force les autres applications à échanger (ou à échouer entièrement avec des conditions de mémoire insuffisante).

Tapis
la source