Partager via


Utilisation de SPMonitoredScope

Dernière modification : mercredi 16 janvier 2013

S’applique à : SharePoint Foundation 2010

Dans cet article
Champ d’utilisation de SPMonitoredScope
Mode d’utilisation de SPMonitoredScope
Emplacements auxquels apparaissent les calculs
Autres utilisations de SPMonitoredScope
Considérations sur les performances
Meilleures pratiques
Limites

Dans les versions antérieures de Windows SharePoint Services, lorsqu’apparaissait un problème de performances ou de fiabilité inexpliqué, il était parfois difficile de l’isoler et de déterminer sa cause. Souvent, les développeurs consacraient beaucoup de temps à l’identification des points de défaillance et aux goulots d’étranglement au niveau des performances.

Microsoft SharePoint Foundation 2010 introduit la classe SPMonitoredScope, qui permet aux développeurs de désigner des portions de leur code en vue de surveiller les statistiques d’utilisation dans les journaux du service ULS et dans le tableau de bord du développeur. Pour plus d’informations, voir Utilisation du tableau de bord du développeur.

Champ d’utilisation de SPMonitoredScope

Un développeur peut utiliser SPMonitoredScope pour :

  • identifier une utilisation excessive des ressources ;

  • identifier les goulots d’étranglement au niveau des performances ;

  • déterminer la façon dont un composant spécifique interagit avec les autres composants.

Mode d’utilisation de SPMonitoredScope

La classe SPMonitoredScope réside dans l’espace de noms Microsoft.SharePoint.Utilities.

SPMonitoredScope est très facile à utiliser. Un développeur « encapsule » simplement la section de code à surveiller. Ensuite, lorsque le code est exécuté, les statistiques mesurées sont écrites dans les journaux du service ULS, ainsi que dans le tableau de bord du développeur. Cela permet au développeur et à l’administrateur système d’accéder immédiatement aux informations relatives au composant et à la page dans laquelle il réside.

Voici un exemple de code encapsulé :

using (new SPMonitoredScope("My Scope Name"))
{
   doSomeWork(); 
}

Emplacements auxquels apparaissent les calculs

Lorsque SPMonitoredScope est utilisé dans du code personnalisé, les statistiques sont écrites dans les journaux du service ULS et dans le tableau de bord du développeur.

Autres utilisations de SPMonitoredScope

Surveillance d’autres types d’utilisation de ressources

SPMonitoredScope peut également mesurer d’autres types d’utilisation de ressources dans une section de code spécifiée.

Par exemple, le code ci-après mesure et journalise la durée d’exécution, le nombre de demandes et le nombre de requêtes SharePoint SQL Server (y compris le texte des requêtes) exécutées par l’appel externe.

using (new SPMonitoredScope("My Scope Name",TraceSeverity.Verbose,1000,
   new SPRequestUsageCounter(3),
   new SPSqlQueryCounter()))
{
    callExternalCode();
}

Utilisation de seuils de performance

SPMonitoredScope permet également de n’effectuer un suivi dynamique que lorsqu’une utilisation excessive des ressources est détectée.

Dans l’exemple ci-dessus, pour l’étendue spécifiée, la méthode callExternalCode() ne doit pas prendre plus de 1000 ms et ne pas allouer plus de 3 objets SPRequest. Si ces limites sont dépassées, le niveau de suivi pour cette étendue est porté à « élevé » pour cette instance spécifique. En outre, le compteur apparaîtra en rouge dans le tableau de bord.

Considérations sur les performances

L’utilisation de SPMonitoredScope pour encapsuler du code a une incidence très faible sur les performances. Toutefois, notez que si une section de code encapsulée par SPMonitoredScope contient une boucle qui exécute un nombre élevé d’itérations (comme dans le cas du passage en revue des nœuds XML retournés par un service Web SharePoint Foundation 2010), la taille de la pile d’appels incluse dans le tableau de bord du développeur risque d’augmenter de manière exponentielle, rendant difficile le déchiffrement des informations affichées.

Meilleures pratiques

Conseil pour optimiser l’utilisation de SPMonitoredScope :

  • Tous les appels aux composants externes, tels que les bases de données personnalisées ou les services Web externes, doivent être encapsulés avec SPMonitoredScope. Cela permet aux administrateurs de les identifier en tant que points de défaillance plus facilement et d’isoler le problème rapidement.

Limites

Notez que l’utilisation de SPMonitoredScope présente quelques limites.

  • Seuls les appels aux bases de données SharePoint sont capturés.

  • Seul le code encapsulé avec SPMonitoredScope résidant sur le serveur Web frontal apparaît dans le tableau de bord du développeur. Le code qui s’exécute sur les serveurs d’applications n’affiche les informations SPMonitoredScope que dans les journaux du service ULS de l’ordinateur sur lequel il est en cours d’exécution.

Voir aussi

Référence

SPMonitoredScope

Concepts

Vue d’ensemble de la journalisation ULS (Unified Logging System)