Was ist das beste Werkzeug eines Prozesses Speichernutzung über einen langen Zeitraum in Windows zu verfolgen?

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

  •  01-07-2019
  •  | 
  •  

Frage

Was ist das beste verfügbare Werkzeug, um die Speichernutzung meines C # /. Net Windows-Dienst über einen langen Zeitraum zu überwachen. Soweit ich weiß, Tools wie perfmon können die Speichernutzung über einen kurzen Zeitraum überwachen, aber nicht grafisch über einen langen Zeitraum. Ich muss die Daten über Tage Trend, nicht Sekunden.

Um es klar, ich will die Speichernutzung in einer feinen Detailebene über eine lange Zeit zu überwachen, und haben Sie die Grafik zeigt sowohl den gesamten Zeitrahmen und den Detaillierungsgrad. Ich brauche ein kleines Abtastintervall, und eine große Grafik.

War es hilfreich?

Lösung

Perfmon meiner Meinung nach ist eines der besten Werkzeuge, um dies zu tun, aber stellen Sie sicher, dass Sie richtig das Abtastintervall konfigurieren Sie nach der Zeit überwachen möchten.

Zum Beispiel, wenn Sie einen Prozess überwachen:

  • 1 Stunde: I 1-Sekunden-Intervalle verwenden würde (dies wird 60 * 60 Proben erzeugen)
  • für 1 Tag: Ich Intervalle von 30 Sekunden verwenden würde (dies wird 2 * 60 * 24 Proben erzeugen)
  • 1 Woche: I 1-Minuten-Intervalle verwenden würde (dies wird erzeugen 60 * 24 * 7 Proben)

Mit dieser Abtastintervalle Perfmon sollte Erzeugen einer schöne grafische Ausgabe Ihrer Zähler kein Problem hat.

Andere Tipps

Nun habe ich perfmon, exportiert die Ergebnisse in eine CSV und Excel verwendet danach für die Statistik. Das funktionierte ziemlich gut letztes Mal, dass ich brauchte einen Prozess zu überwachen

Herumspielen mit Computerverwaltung (vorausgesetzt, Sie Windows-hier ausgeführt wird) und es scheint, wie Sie können es einen Prozess im Laufe der Zeit zu überwachen. Zur Computerverwaltung -> Leistungsprotokolle und Warnungen und Blick auf den Zähler / Trace-Protokolle. Rechtsklick auf Zähler Protokolle und ein neues Protokoll hinzuzufügen. Klicken Sie nun Objekt hinzufügen, und wählen Sie Speicher. Jetzt Zähler Klicken hinzufügen und die „Performance Object“ zu Prozess ändern und Ihren Prozess wählen.

So gut wie die Überwachung der Speicher selbst ist, sind Sie wahrscheinlich von Speicher denken Profilierungs Lecks oder veraltete Objekte zu identifizieren - http :. //memprofiler.com/ hier ist eine gute Wahl, aber es gibt viele andere

Wenn Sie etwas ganz Konkretes tun wollen, haben Sie keine Angst, Ihre eigenen WMI-basierten Logger auf einem Timer läuft zu schreiben - Sie diese Sie Statistiken verarbeiten, um eine E-Mail erhalten könnte, warnen, wenn es zu schnell oder zu hoch wächst, Bitte senden sie es als XML für Charting, etc.

Wenn Sie mit Python vertraut sind, ist es ziemlich einfach, ein Skript für diese zu schreiben.

Active Python (die frei ist) macht die relevanten Teile der Win32 API durch die win32process Modul.

Sie können auch Besuche alle win32 bezogenen Module oder Verwendung gotAPI den Python-Standard-libs zu durchsuchen.

Ich würde empfehlen, die .Net Speicher Validator Tool von Software überprüfen . Dieses Tool hat mir geholfen, viele verschiedene Fragen im Zusammenhang mit der Speicherverwaltung in Ich habe Net-Anwendung im Zusammenhang zu lösen zu arbeiten.

ich häufiger die C ++ Version, aber sie sind sehr ähnlich und die Tatsache, dass Sie wirklich die Art der Objekte in Echtzeit Sie werden zugewiesen wird sehen können von unschätzbarem Wert.

I ProcessMonitor- verwendet haben, wenn Sie etwas mächtiger als perfmon benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top