Was ist der Unterschied zwischen Überwachung, Nachverfolgung und Profilerstellung?

16

Ich habe diese drei Wörter oft gesehen, verstehe aber nicht die genauen Unterschiede zwischen ihnen. Das Erfassen der CPU-Auslastung wird beispielsweise häufig als Profilerstellung bezeichnet und kann auch zur Leistungsüberwachung herangezogen werden. Was ist der (subtile) Unterschied zwischen ihnen?

Richard
quelle

Antworten:

11

So benutze ich diese Worte. Andere können zusätzliche oder andere Verwendungen haben. Je nach Aufgabe werde ich die Begriffe unterschiedlich verwenden. Entwicklungsteams und Betriebsteams haben unterschiedliche Anforderungen und Verwendungszwecke.

Überwachung ist Überwachung. Normalerweise läuft es und ist vorzugsweise automatisiert. Open-Source-Tools wie Munin, Nagiosund MRTGfallen in diese Kategorie. Es gibt auch viele kommerzielle Tools. Ich würde auch sarkontinuierlich in diese Kategorie aufnehmen, aber die Ergebnisse werden normalerweise nicht überwacht. Überwachungswerkzeuge können verwendet werden, um Warnungen auszulösen, wenn eine überwachte Ressource einen Auslösungspegel überschreitet oder unterschreitet. Viele Überwachungstools funktionieren in heterogenen Umgebungen gut.

Die Profilerstellung wird normalerweise in einem bestimmten Programm durchgeführt, um festzustellen, welcher Code die meisten Ressourcen verwendet. Dies ist häufig die CPU-Zeit, kann jedoch auch Speicher-, E / A- und Ausführungszeit (Wall-Zeit) umfassen. Es wird normalerweise verwendet, um Kandidatencode für die Optimierung zu identifizieren. Profiling-Tools sind in der Regel sprach- und / oder plattformabhängig.

Eine andere Art der Profilerstellung erfolgt mithilfe von Protokollen und / oder Überwachungsdaten. Dies ist eine Nutzungsprofilerstellung, die aus verschiedenen Gründen durchgeführt werden kann. Ich habe nicht viele Werkzeuge dafür gefunden.

Ich benutze die Verfolgung auf verschiedene Arten. Am häufigsten verfolge ich Netzwerkrouten. Abhängig von den Netzwerk- und Firewall-Einstellungen können verschiedene Tools mehr oder weniger erfolgreich eingesetzt werden. Die meisten davon haben Traceroute im Namen oder in der Beschreibung.

Die Programmverfolgung verfolgt die Ausführung eines Programms. Dies erfolgt in der Regel in einer Testsituation. Dies kann auf verschiedene Arten geschehen (in meiner Reihenfolge der Verwendung und Erfahrung):

  • Rufen Sie die Ablaufverfolgung mit Tools straceauf, um zu sehen, welcher Code aufgerufen wird. Dies kann hilfreich sein, wenn Sie feststellen möchten, warum ein Programm ausfällt oder nicht wie erwartet reagiert.
  • Trace-Level-Protokollierung, abhängig von den entsprechenden Protokollierungsanweisungen, die im Code enthalten sind. Die meisten Protokollierungssuiten unterstützen diesen Detaillierungsgrad. Die Protokollierung auf Ablaufverfolgungsebene weist in der Regel eine schlechte Codeabdeckung auf. Ich füge es im Allgemeinen nach Bedarf hinzu und lasse es für die zukünftige Verwendung im Code.
  • Die Ablaufverfolgung der Codeabdeckung zeichnet auf, welche Teile des Codes in einer Testsuite ausgeführt wurden. Dies kann hilfreich sein, um fehlende Testfälle zu ermitteln. Eine 100% ige Abdeckung des Codes ist schwierig zu erreichen. Eine 100% ige Abdeckung der normalen Ströme sollte erreichbar sein.
  • Schreibtischprüfung: Durchsuchen des Codes durch Lesen. Nicht sehr nützlich bei größeren Programmen, aber eine gute Möglichkeit, Randfälle für Komponententests zu identifizieren und / oder mögliche Probleme zu identifizieren, wenn die wahrscheinliche Quelle eingegrenzt wurde. Mit Som = e IDEs und Editoren ist es relativ einfach, einem Aufruf des Implementierungscodes zu folgen.
  • Live-Debugging; Verfolgung der Codeausführung während der Ausführung mit einem Debugger. Es ist möglich, Ausführungsbefehle nach Befehlen zu verfolgen, aber wenn das Problem ein Zeitproblem ist, kann es unklar sein. Debugger, die Code mit der aktuellen Anweisung verknüpfen können, helfen viel, erfordern jedoch möglicherweise die Erstellung einer Debug-Version des Programms.
BillThor
quelle
-1

Im SAP WEB Application Server können wir diese drei Schlüsselwörter wie folgt definieren:

Die vom Web angebotenen Überwachungs-, Nachverfolgungs- und Profilerstellungstechniken sowie die von anderen SAP- und externen Systemen bereitgestellten Techniken können mithilfe der bewährten CCMS-Architektur integriert werden, wodurch die Wartung großer, verteilter und heterogener Installationen erheblich vereinfacht werden kann.

Robert
quelle