Quel est le meilleur outil pour suivre l'utilisation de la mémoire d'un processus sur une longue période de temps dans Windows?

StackOverflow https://stackoverflow.com/questions/97590

  •  01-07-2019
  •  | 
  •  

Question

Quel est le meilleur outil disponible pour surveiller l'utilisation de la mémoire de mon service C # /. Net Windows sur une longue période. Autant que je sache, des outils tels que perfmon peuvent surveiller l'utilisation de la mémoire sur une courte période, mais pas de manière graphique sur une longue période. J'ai besoin de données de tendance sur plusieurs jours, pas quelques secondes.

Pour être clair, je souhaite surveiller l'utilisation de la mémoire à un niveau de détail précis sur une longue période et faire en sorte que le graphique affiche à la fois la période complète et le niveau de détail. J'ai besoin d'un petit intervalle d'échantillonnage et d'un grand graphique.

Était-ce utile?

La solution

À mon avis, Perfmon est l’un des meilleurs outils pour ce faire, mais assurez-vous de configurer correctement l’intervalle d’échantillonnage en fonction du temps que vous souhaitez surveiller.

Par exemple, si vous souhaitez surveiller un processus:

  • pendant 1 heure: j'utiliserais des intervalles d'une seconde (cela générerait 60 * 60 échantillons)
  • pendant 1 jour: j'utiliserais des intervalles de 30 secondes (cela générerait 2 * 60 * 24 échantillons)
  • pendant 1 semaine: j'utiliserais des intervalles d'une minute (cela générerait 60 * 24 * 7 échantillons)

Avec ces intervalles d'échantillonnage, Perfmon ne devrait avoir aucun problème à générer une belle sortie graphique de vos compteurs.

Autres conseils

Eh bien, j’ai utilisé perfmon, exporté les résultats au format csv et utilisé excel pour les statistiques par la suite. Cela fonctionnait plutôt bien la dernière fois que je devais surveiller un processus

Jouez avec Gestion de l'ordinateur (en supposant que vous utilisez Windows ici) et il semble que vous puissiez le faire surveiller un processus au fil du temps. Aller à la gestion de l'ordinateur - > des journaux de performances et des alertes et consultez les journaux de compteur / trace. Faites un clic droit sur les journaux du compteur et ajoutez un nouveau journal. Maintenant, cliquez sur Ajouter un objet et sélectionnez la mémoire. Cliquez maintenant sur Ajouter des compteurs et modifiez le " Objet de performance " à traiter et sélectionnez votre processus.

Aussi bon que de surveiller la mémoire est en soi, vous pensez probablement au profilage de mémoire pour identifier les fuites ou les objets obsolètes - http : //memprofiler.com/ est un bon choix ici, mais il y en a beaucoup d'autres.

Si vous voulez faire quelque chose de très spécifique, n’ayez pas peur d’écrire votre propre enregistreur basé sur WMI fonctionnant sur une minuterie - vous pouvez l’envoyer par courriel pour traiter les statistiques, vous avertir lorsque cela devient trop rapide ou trop élevé, envoyez-le au format XML pour la création de graphiques, etc.

Si vous connaissez Python, il est assez facile d'écrire un script pour cela.

Activestate Python (gratuit) expose les parties pertinentes de la API Win32 via le module win32process .

Vous pouvez également consulter tous les modules liés à win32 ou les utiliser. gotAPI pour parcourir les bibliothèques standard Python.

Je vous recommanderais d'utiliser l'outil Validateur de la mémoire .Net du logiciel verify . Cet outil m'a aidé à résoudre de nombreux problèmes liés à la gestion de la mémoire dans une application .Net avec laquelle je dois travailler.

J'utilise plus fréquemment la version C ++, mais elles sont assez similaires et le fait que vous puissiez vraiment voir en temps réel le type des objets alloués vous sera très utile.

J'ai utilisé ProcessMonitor si vous avez besoin de quelque chose de plus puissant que perfmon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top