Top : doute quant à la difference entre VIRT et RES

Hello,

Je cherche à bien comprendre la différence entre la colonne VIRT et RES, dans le retour de la commande “top”.

J’ai trouvé ceci, mais ce n’est pas très clair pour moi :

VIRT représente la taille virtuelle d’un processus, c’est-à-dire la somme de la mémoire qu’il utilise réellement, la mémoire qu’il a référencée pour lui (par exemple, la RAM de la carte video pour le serveur X), les fichiers sur disque qu’il référence pour son usage (surtout des bibliothèques partagées) ainsi que la mémoire partagée avec d’autres processus.
VIRT représente la quantité de mémoire à laquelle le programme est capable d’accéder à l’instant présent.

RES représente la taille résidente, qui est une représentation précise de la quantité réelle de mémoire physique consommée par un processus. (Cela correspond aussi directement à la colonne %MEM). D’un point de vue virtuel, ce chiffre sera toujours inférieur à la taille VIRT étant donné que la plupart des programmes dépendent de la bibliothèque C.

SHR indique quelle quantité de la taille VIRT est réellement partagée (mémoire ou bibliothèques). Dans le cas des bibliothèques, cela ne signifie pas nécessairement que la totalité de la bibliothèque est résidente. Par exemple, si un programmpe n’utilise qu’un petit nombre de fonctions d’une bibliothèque, la totalité de la bibliothèque sera référencée et prise en compte dans VIRT et SHR mais seules les portions de la bibliothèque contenant les fonctions utilisées seront réellement chargées et comptées dans RES.

Si je comprends bien, dans le cadre d’une métrie, si je dois savoir quel process est le plus gourmand en RAM, c’est bien la colonne VIRT qu’il faut que je regarde, pour savoir combien exactement il consomme. C’est bien ça ?

merci

je pense que oui
j’utilise htop
quand je lui demande de sortir (F6) par élément et que je choisis M_SIZE il se cale sur VIRT

En fait, de ce que j’en comprend, tu as :

  • la mémoire utilisée par le processus lui-même (son code et sa mémoire de travail (variables, pile, tas))
  • la mémoire utilisée par le processus pour le code des bibliothèques.

Les biliothèques peuvent être utilisée par d’autres processus, du coup, elle ne sont chargées qu’une seule fois en mémoire et tous les processus qui en ont besoin la partagent.

La première mémoire est appellée mémoire résidente, la seconde mémoire partagée, et la somme des deux, la mémoire virtuelle.

Je ne sais pas si c’est bon, mais c’est clair pour moi, et j’espère que ça l’est pour toi aussi maintenant.

Non. Qu’est-ce qui n’est pas clair dans

RES représente la taille résidente, qui est une représentation précise de la quantité réelle de mémoire physique consommée par un processus.

?