Calcul de mémoire totale utilisée
Résolu
MarcPJ31
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
basma -
basma -
Bonjour,
J'essaie de déterminer le total de mémoire utilisée par ma distribution Linux.
Et je trouve une différence nette entre le montant affiché par "top" et par mon propre programme.
Mon programme est très simple :
ps axeo"%z" | grep -v "VSZ" | gawk '{ s += $1 } END { print s }'
Exemple :
le top affiche
Mem: 644300k total, 498168k used
mon programme affiche :
378656
Pour info :
> ps --version
procps version 3.2.6
> top -v
top: procps version 3.2.6
Peut-être est-ce que je ne prends pas le bon champ dans le ps ?
Est-ce que quelqu'un peut m'aider ?
Merci d'avance.
-- Marc
J'essaie de déterminer le total de mémoire utilisée par ma distribution Linux.
Et je trouve une différence nette entre le montant affiché par "top" et par mon propre programme.
Mon programme est très simple :
ps axeo"%z" | grep -v "VSZ" | gawk '{ s += $1 } END { print s }'
Exemple :
le top affiche
Mem: 644300k total, 498168k used
mon programme affiche :
378656
Pour info :
> ps --version
procps version 3.2.6
> top -v
top: procps version 3.2.6
Peut-être est-ce que je ne prends pas le bon champ dans le ps ?
Est-ce que quelqu'un peut m'aider ?
Merci d'avance.
-- Marc
A voir également:
- Calcul de mémoire totale utilisée
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
6 réponses
Bonjour,
Je crois que tu ne mesure pas la même chose avec ton programme et top.
L'option -eo %z renvoie la quantité de mémoire virtuelle (virtual memory size) que peut utiliser un programme (je ne crois pas que ça soit celle qui est effectivement utilisée (parce que de nos jours on a assez de ram pour ne pas écrire dans la mémoire virtuelle) mais c'est pas très clair.
Deux liens :
http://www.faqs.org/docs/linux_admin/x1752.html
http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html : très instructif (notamment sur le fait que ps n'est pas exact sur les chiffres proposés concernant l'utilisation de la mémoire)
De part sa gestion "séparée" des processus (c.a.d qu'il ne prends pas en compte si un processus partage de la mémoire avec un autre, sous forme de librairies partagées par exemple) ps ne semble pas pouvoir fournir les même informations que top.
Je crois que tu ne mesure pas la même chose avec ton programme et top.
L'option -eo %z renvoie la quantité de mémoire virtuelle (virtual memory size) que peut utiliser un programme (je ne crois pas que ça soit celle qui est effectivement utilisée (parce que de nos jours on a assez de ram pour ne pas écrire dans la mémoire virtuelle) mais c'est pas très clair.
Deux liens :
http://www.faqs.org/docs/linux_admin/x1752.html
http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html : très instructif (notamment sur le fait que ps n'est pas exact sur les chiffres proposés concernant l'utilisation de la mémoire)
De part sa gestion "séparée" des processus (c.a.d qu'il ne prends pas en compte si un processus partage de la mémoire avec un autre, sous forme de librairies partagées par exemple) ps ne semble pas pouvoir fournir les même informations que top.
hello
il manque à la somme des process la mémoire utilisée par le kernel résident , ce que sait calculer top
il manque à la somme des process la mémoire utilisée par le kernel résident , ce que sait calculer top
Bonjour,
Merci pour vos explications.
Effectivement le lien sur "Understanding memory usage on Linux" est très intéressant.
De plus, la mémoire utilisée par le kernel n'apparaît effectivement pas.
Par conséquent mon programme de calcul de mémoire utilisée est relativement faux car il faut comprendre les librairies partagées et les zones du kernel. C'est donc un peu plus difficile à réaliser.
Je pourrais toujours m'en servir pour observer les augmentations de taille mémoire de processus avec une option regardant la mémoire physique utilisée. Même s'il est "relativement" faux (cf. les liens), il peut au moins me donner une idée de la gloutonnerie mémoire de certains processus.
-- Marc
Merci pour vos explications.
Effectivement le lien sur "Understanding memory usage on Linux" est très intéressant.
De plus, la mémoire utilisée par le kernel n'apparaît effectivement pas.
Par conséquent mon programme de calcul de mémoire utilisée est relativement faux car il faut comprendre les librairies partagées et les zones du kernel. C'est donc un peu plus difficile à réaliser.
Je pourrais toujours m'en servir pour observer les augmentations de taille mémoire de processus avec une option regardant la mémoire physique utilisée. Même s'il est "relativement" faux (cf. les liens), il peut au moins me donner une idée de la gloutonnerie mémoire de certains processus.
-- Marc
Bonjour,
Ça va peut-être te dépanner : https://www.oreilly.fr
Il y a un script très bien foutu dans la section "la commande top"
Ça va peut-être te dépanner : https://www.oreilly.fr
Il y a un script très bien foutu dans la section "la commande top"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question