Partager via


Procédure : modifier les paramètres du système de limitation de requêtes

Dernière modification : jeudi 3 mars 2011

S’applique à : SharePoint Foundation 2010

Dans cet article
Persistance des paramètres
Aspects modifiables et non modifiables
Modification des propriétés de SPHttpThrottleSettings

Cette rubrique explique comment modifier par programme les paramètres du système d’analyse des performances et de limitation de requêtes HTTP dans Microsoft SharePoint Foundation.

Persistance des paramètres

Chaque application Web SharePoint Foundation possède ses propres paramètres d’analyse des performances et de limitation de requêtes. Les paramètres sont rendus persistants dans la base de données de configuration sous la forme d’un objet SPHttpThrottleSettings qui représente la valeur de la propriété HttpThrottleSettings de l’application Web.

Aspects modifiables et non modifiables

Certains aspects du système ne peuvent pas être modifiés :

  • Les scores d’intégrité sont toujours des entiers compris entre 0 et 10, le plus petit score reflétant la situation la plus intègre et le plus élevé la situation la moins intègre.

  • Le score d’intégrité d’un analyseur donné repose sur une moyenne pondérée de temps d’échantillons du compteur en cours d’analyse ; vous ne pouvez pas modifier l’algorithme de pondération (toutefois, vous pouvez désactiver l’utilisation de plusieurs échantillons − voir la liste à puces suivante).

  • Un processus de travail reçoit un score d’intégrité global égal au score le moins intègre de tous les analyseurs inscrits de l’application Web.

  • Un processus de travail ne passe en mode de limitation que lorsqu’il a un score d’intégrité égal à 10, c’est-à-dire lorsqu’au moins l’un des analyseurs de performances possède un score d’intégrité égal à 10.

  • Un processus de travail ne passe en mode de limitation de seconde phase que lorsqu’il a obtenu un score d’intégrité égal à 10 pendant au moins 60 secondes. Cela signifie que, pendant au moins 60 secondes d’affilée, l’un ou l’autre des analyseurs a obtenu un score égal à 10. Toutefois, il n’est pas nécessaire qu’un analyseur donné soit en permanence à l’état 10. Si l’analyseur A possède un score égal à 10 pendant 45 secondes et que l’analyseur B possède un score égal à 10 pendant une période de 45 secondes chevauchant l’autre période, il peut y avoir une plage de 60 secondes au cours de laquelle au moins un analyseur possède un score égal à 10. Dans ce cas de figure, le processus de travail passe en mode de limitation de seconde phase.

Vous pouvez modifier par programme les aspects suivants du système :

  • L’activation ou la non-activation de la limitation pour une application Web. Voir Modification des propriétés de SPHttpThrottleSettings plus loin dans cette rubrique.

  • La fréquence à laquelle les compteurs analysés sont échantillonnés. Tous les compteurs en cours d’analyse par une application Web spécifique doivent être échantillonnés selon la même fréquence. Voir Modification des propriétés de SPHttpThrottleSettings plus loin dans cette rubrique.

  • Le nombre d’échantillons de chaque compteur utilisés pour le calcul de la moyenne pondérée des valeurs pour chaque compteur. Le fait de définir cette valeur sur 1 désactive correctement le calcul de la moyenne. Touts les analyseurs d’une application Web spécifique doivent utiliser le même nombre d’échantillons. Voir Modification des propriétés de SPHttpThrottleSettings plus loin dans cette rubrique.

  • Les compteurs Windows Server 2008 surveillés. Pour plus d’informations, voir Procédure : inscrire un compteur de performance ou annuler l’inscription.

  • Les types de demandes qui ne sont jamais bloqués, les types qui sont bloqués et le fait qu’ils sont bloqués pendant la limitation de première phase ou la limitation de seconde phase. Pour plus d’informations, voir Procédure : créer et inscrire ou désinscrire un classifieur de requête.

  • La calculatrice de score d’intégrité associée à un analyseur particulier. Pour plus d’informations, voir Procédure : créer, modifier et changer un calculateur de score d’intégrité de style compartiment.

  • Les limites des compartiments (sous-plages de valeurs) qu’une calculatrice de score d’intégrité utilise pour affecter un score à une valeur de compteur donnée (ou fonction de valeurs). (Ce point ne concerne que les calculatrices de score d’intégrité de style compartiment standard.) Pour plus d’informations, voir Procédure : créer, modifier et changer un calculateur de score d’intégrité de style compartiment.

Modification des propriétés de SPHttpThrottleSettings

L’activation ou la désactivation par programme de la limitation de requêtes ne pose pas de problème particulier, ni la modification du nombre d’échantillons servant à calculer une moyenne pondérée ou la modification de la fréquence à laquelle les compteurs sont échantillonnés. Le code suivant montre le fichier program.cs d’un projet d’application console. Le projet Microsoft Visual Studio requiert une référence à Microsoft.SharePoint.dll qui se trouve dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI. Le code suivant définit la fréquence à laquelle les échantillons sont prélevés sur 10 secondes avec une fréquence par défaut est de 5 secondes, active la surveillance des limitations pour l’application Web parente et définit le nombre d’échantillons sur 5, alors que le nombre par défaut est de 12. Notez que Update() est appelé afin que soient enregistrées les modifications apportées à la base de données de configuration.

using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Utilities;

namespace Contoso.SharePoint.Utilities
{
    class ThrottleSettingsChanger
    {
        static void Main(string[] args)
        {
            Uri webApplicationUri = new Uri("Http://localhost/");
            SPWebApplication webApplication = SPWebApplication.Lookup(webApplicationUri);

            SPHttpThrottleSettings throttleSettings = SPHttpThrottleSettings.GetHttpThrottleSettings(webApplication);

            throttleSettings.RefreshInterval = 10000;
            throttleSettings.PerformThrottle = true;
            throttleSettings.NumberOfSamples = 5;
            throttleSettings.Update();            
        }
    }
}

Voir aussi

Concepts

Limitation des requêtes