Forum Linux.général Monitorer la consomation de ressource d'un process

Posté par .
-1
3
déc.
2012

Salut,
Je soupçonne un process d'avoir une fuite de mémoire, vu que j'ai un crash au bout d'un temps long.

Est-ce qu'il y a des outils simples capables de monitorer et sauvegarder la conso d'un process ?

Ou est-ce qu'il vaut mieux que je bricole un truc à coup de top -b | awk > log
et plotter log avec gnuplot demain matin lorsque ça aura crashé dans la nuit ?

Merci d'avance

  • # man proc

    Posté par . Évalué à 2.

    Dans le pseudo système monté sur /proc tu as des infos sur les processus. En particulier, un cat /proc/<pid>/status, les champs Vm.* comme VmSize, devrait pouvoir t'interesser.

    Après peut-être qu'il existe des outils simples, mais en même temps c'est 3 lignes de shell à faire.

  • # valgrind

    Posté par . Évalué à 3.

    Valgrind est un outil d'analyse permettant de détecter et localiser les fuites mémoire.

    En revanche, il vaut mieux que les symboles de debug soient encore dans le binaire.

  • # idées

    Posté par (page perso) . Évalué à 2.

    Ça veut dire quoi « un crash » ? L'OOM tue le process ? Il y a un segfault ? Un abort() ? …

    Si une fuite est suspectée, plotter top/ps/proc est effectivement un bon début. Si tu plottes aussi /proc/$pid/maps tu peux commencer à voir plus précisement ce qui fuite à l'intérieur du process (probablement le tas).

    S'il s'agit bien d'une fuite sur le tas, il y a plusieurs approches. Si Valgrind est une option, c'est sans doute le moyen le plus rapide de trouver la source du problème mais selon le programme concerné, ça n'est pas forcément faisable.

    Une alternative est d'instrumenter le programme en hookant ou wrappant malloc/free « manuellement ».

    Une autre approche assez barbare mais qui fonctionne parfois fort bien est d'attacher un debugger (ou dumper un core) et d'examiner des bouts de mémoire plus ou moins au hasard jusqu'à reconnaitre un motif évident.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

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