Rechercher : dans
Par :

Calcul de mémoire totale utilisée

Dernière réponse le 7 mai 2008 à 22:04:53 MarcPJ31, le 20 nov 2007 à 09:19:21 
 Signaler ce message aux modérateurs

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

Configuration: Linux 2.6.17-5mdv

Meilleures réponses pour « Calcul de mémoire totale utilisée » dans :
Processeur VoirPrésentation Le processeur (CPU, pour Central Processing Unit, soit Unité Centrale de Traitement) est le cerveau de l'ordinateur. Il permet de manipuler des informations numériques, c'est-à-dire des informations codées sous forme binaire, et...

1

ch0c0bn, le 20 nov 2007 à 10:43:00
  • +1

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-mem­ory-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.

Répondre à ch0c0bn

2

dubcek, le 20 nov 2007 à 10:43:06

Hello
il manque à la somme des process la mémoire utilisée par le kernel résident , ce que sait calculer top

Répondre à dubcek

3

MarcPJ31, le 20 nov 2007 à 14:22:58

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

Répondre à MarcPJ31

4

ch0c0bn, le 20 nov 2007 à 16:58:14

Bonjour,

Ça va peut-être te dépanner : http://www.oreilly.fr/...
Il y a un script très bien foutu dans la section "la commande top"

Répondre à ch0c0bn

6

basma, le 7 mai 2008 à 22:01:19

Comment calcule la taille de la ram en linux en langage C

Répondre à basma

7

 basma, le 7 mai 2008 à 22:04:53

Comment calcule la taille de la ram en linux au langage C .

Répondre à basma