Verwenden von "SPMonitoredScope"
Letzte Änderung: Mittwoch, 16. Januar 2013
Gilt für: SharePoint Foundation 2010
Inhalt dieses Artikels
Wann sollte "SPMonitoredScope" verwendet werden?
Wie wird "SPMonitoredScope" verwendet?
Wo werden Berechnungen angezeigt?
Weitere Verwendungsmöglichkeiten für "SPMonitoredScope"
Leistungsüberlegungen
Bewährte Methoden
Einschränkungen
In früheren Versionen von Windows SharePoint Services war es bei Auftreten eines ungeklärten Problems bei der Leistung oder Zuverlässigkeit mitunter schwierig, das Problem zu isolieren und die Ursache zu bestimmen. Häufig mussten Entwickler sehr viel Zeit aufwenden, um Schwachstellen und Leistungsengpässe zu identifizieren.
In Microsoft SharePoint Foundation 2010 wird die SPMonitoredScope-Klasse eingeführt, die es Entwicklern ermöglicht, Teile des Codes zu kennzeichnen, sodass sie Verwendungsstatistiken in ULS-Protokollen (Unified Logging Service, Vereinheitlichter Protokollierungsdienst) und im Entwicklerdashboard überwachen können. Weitere Informationen finden Sie unter Verwenden des Entwicklerdashboards.
Wann sollte "SPMonitoredScope" verwendet werden?
Ein Entwickler kann SPMonitoredScope für folgende Aufgaben verwenden:
Identifizieren einer übermäßen Ressourcenverwendung.
Identifizieren von Leistungsengpässen.
Bestimmen der Interaktion bestimmter Komponenten mit anderen Komponenten.
Wie wird "SPMonitoredScope" verwendet?
Die SPMonitoredScope-Klasse befindet sich im Microsoft.SharePoint.Utilities-Namespace.
Die Handhabung von SPMonitoredScope ist sehr leicht. Ein Entwickler muss den Abschnitt des Codes, der überwacht werden soll, nur "einschließen". Während der Codeausführung wird die erfasste Statistik in die ULS-Protokolle sowie in das Entwicklerdashboard geschrieben. Hierdurch ist es möglich, dass Informationen zur Komponente und der Seite, auf der sie sich befindet, sofort für den Entwickler und den Systemadministrator verfügbar sind.
Im Folgenden ist ein Beispiel für eingeschlossenen Code aufgeführt.
using (new SPMonitoredScope("My Scope Name"))
{
doSomeWork();
}
Wo werden Berechnungen angezeigt?
Wenn SPMonitoredScope in benutzerdefiniertem Code verwendet wird, werden die Statistiken in die ULS-Protokolle und das Entwicklerdashboard geschrieben.
Weitere Verwendungsmöglichkeiten für "SPMonitoredScope"
Überwachen der Ressourcenverwendung
Mit SPMonitoredScope können auch anderen Arten der Ressourcenverwendung in einem angegebenen Codeabschnitt gemessen werden.
Mit dem folgenden Codebeispiel werden beispielsweise die Ausführungszeit, die Anzahl der Anforderungen und die Anzahl der SharePoint SQL Server-Abfragen (einschließlich des Abfragetexts), die vom externen Callout ausgeführt werden, gemessen.
using (new SPMonitoredScope("My Scope Name",TraceSeverity.Verbose,1000,
new SPRequestUsageCounter(3),
new SPSqlQueryCounter()))
{
callExternalCode();
}
Verwenden von Leistungsschwellenwerten
SPMonitoredScope kann auch verwendet werden, um Ablaufverfolgungen dynamisch einzusetzen und nur dann zu verwenden, wenn eine übermäßige Ressourcenverwendung festgestellt wird.
Im vorherigen Beispiel wird für den Bereich angegeben, dass die callExternalCode()-Methode nicht mehr als 1000 ms in Anspruch nehmen darf und dass nicht mehr als drei SPRequest-Objekte zugeordnet werden sollen. Werden diese Grenzwerte überschritten, wird die Ablaufverfolgungsebene für diesen Bereich für diese spezielle Instanz auf "hoch" heraufgesetzt. Außerdem wird der Zähler im Dashboard rot angezeigt.
Leistungsüberlegungen
Die Verwendung von SPMonitoredScope zum Einschließen von Code hat nur sehr geringe Auswirkungen auf die Leistung. Sie sollten jedoch Folgendes bedenken: Wenn ein durch SPMonitoredScope eingeschlossener Codeabschnitt eine Schleife aufnehmen soll, die eine große Anzahl von Iterationen durchläuft (beispielsweise eine Iteration durch XML-Knoten, die von einem SharePoint Foundation 2010-Webdienst zurückgegeben werden), kann die Größe der im Entwicklerdashboard enthaltene Aufrufliste exponentiell ansteigen, sodass das Entschlüsseln der angezeigten Informationen schwierig wird.
Bewährte Methoden
Ein Tipp, um SPMonitoredScope optimal und möglichst effizient zu verwenden:
- Alle Aufrufe an externe Komponenten, beispielsweise Datenbanken, externe Webdiensten usw.) sollten mit SPMonitoredScope eingeschlossen werden. Hierdurch wird es für Administratoren einfacher, diese Aufrufe ggf. als Schwachstellen zu identifizieren und das Problem schnell zu isolieren.
Einschränkungen
Für die Verwendung von SPMonitoredScope gelten jedoch einige Einschränkungen.
Nur Aufrufe an SharePoint-Datenbanken werden erfasst.
Im Entwicklerdashboard wird nur mit SPMonitoredScope eingeschlossener Code aufgeführt, der sich auf dem Front-End-Webserver befindet. Für Code, der auf Anwendungsservern ausgeführt wird, werden die SPMonitoredScope-Informationen nur in den ULS-Protokollen des Computers angezeigt, auf dem der Code ausgeführt wird.
Siehe auch
Referenz
Konzepte
Übersicht über den vereinheitlichten Protokollierungsdienst (Unified Logging Service, ULS)