Forum Linux.général Utilisation de la memoire par un logiciel

Posté par  .
Étiquettes : aucune
0
3
août
2006
Koukou,

J'utilise un logiciel que je soupçonne d'avoir une fuite mémoire (ou plus exactement d'en consommer de plus en plus au fils du temps).

Je ne suis pas à l'origine du logiciel et j'utilise donc une version compilée (binaire). Je sais que c'est du C++ compilé spécifiquement
pour cette version de Linux.

La plateforme est sous SUSE v8.0 (avec Service Pack 3 et 4).

Pour le moment j'observe le comportement avec top (options utilisation de CODE et DATA ajoutées par défault). Je cron toutes les 15mn un top que je loggue. Je remarque que la valeur de DATA évolue dans le temps (de plus en plus).

Existe t il d'autres outils pour analyser la quantité de mémoire utilisée par un logiciel, sans avoir à intervenir sur le code source (options de compil specifiques, etc.) ?

"top" fournit il des résultats exploitables et utilisables ? J'en viens à me demander si DATA n'est pas un cumul sur le temps d'utilisation.
Je vais creuser le man de top et ce qui se dit sur le Net.

Les tests que je réalise sont de l'ordre de 24h à 10j.

Merci

Khan
  • # valgrind

    Posté par  . Évalué à 2.

    Essaye peut-être avec valgrind.
    http://valgrind.org

    Mais appremment il faut au moins que ton binaire ait été compilé avec l'option -g.
  • # Et /proc ?

    Posté par  . Évalué à 2.

    Je pense que top ne cumule pas.
    Dans le doute, tu peux utiliser /proc/$PID/status, qui contient tout ce que tu veux.

    Tu pourrais par exemple essayer :
    for i in `seq 60` ; do
    grep VmData /proc/$PID/status | awk '{ print $2;}'
    sleep 60
    done > result.txt

    Pour avoir des données sur l'utilisation mémoire pendant 1 heure.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.