Partager via


Limites de l'utilisation des ressources sur les solutions en bac à sable (sandbox)

Dernière modification : vendredi 5 août 2011

S’applique à : SharePoint Foundation 2010

Dans cet article
Trois types de restrictions de l'utilisation des ressources
Ressources mesurées
Importantes API d'utilisation des ressources

Disponible dans SharePoint Online

Cette rubrique décrit les limites d'utilisation des ressources système que Microsoft SharePoint Foundation impose aux solutions en bac à sable (sandbox).

Trois types de restrictions de l'utilisation des ressources

Les solutions en bac à sable (sandbox) font l'objet de trois types de restrictions de l'utilisation des ressources, lesquelles peuvent être classées selon (1) le type d'entité auquel la restriction s'applique et (2) le type d'entité sur lequel la pénalité de dépassement de la restriction est imposée. Les pénalités sont imposées automatiquement par l'infrastructure de surveillance des solutions SharePoint Foundation. Les administrateurs de batterie de serveurs peuvent également bloquer manuellement toute solution en bac à sable (sandbox) dans l'application Administration centrale pour n'importe quelle raison.

  • Par requête avec requête pénalisée : il existe une limite inconditionnelle pour le délai d'exécution d'une solution en bac à sable (sandbox). Par défaut, cette limite s'élève à 30 secondes. Si une solution en bac à sable (sandbox) dépasse cette limite, le domaine d'application qui gère la requête (mais pas le processus de travail en sandbox) s'arrête. Cette limite est configurable, mais uniquement via un code personnalisé par rapport au modèle objet. Les parties concernées du modèle objet ne sont pas accessibles par les solutions en bac à sable (sandbox), par conséquent aucune solution en bac à sable (sandbox) ne peut modifier cette limite.

  • Par requête avec processus pénalisé : il existe un ensemble de 15 limites supplémentaires sur les ressources applicable aux requêtes. Si une requête dépasse l'une de ces limites, le processus et toutes les solutions en bac à sable (sandbox) qui l'exécutent sont arrêtés. Ces limites sont également configurables via SharePoint Management Shell ou via un code personnalisé par rapport au modèle objet.

  • Par jour/Par collection de sites avec l'ensemble complet des solutions en bac à sable (sandbox) de la collection de sites pénalisé : chaque collection de sites fait l'objet d'une configuration d'un nombre maximal de points de ressources quotidiens. Ces points s'accumulent selon un algorithme propriétaire qui tient compte de l'utilisation des ressources dans les 15 catégories existantes par les solutions en bac à sable (sandbox) installées dans la collection de sites. Lorsqu'une collection de sites dépasse son nombre maximal de points autorisés, défini par défaut à 300, toutes les solutions en bac à sable (sandbox) de la collection de sites sont arrêtées et aucune autre ne peut s'exécuter pendant le reste de la journée. Les administrateurs de collection de sites peuvent consulter le nombre total de points de ressources du jour utilisés par les solutions en bac à sable (sandbox) de la collection de sites (et la moyenne sur 14 jours) dans la Galerie de solutions de la collection de sites. Les points de ressources utilisés par chaque solution sont également indiqués. Ils peuvent désactiver et supprimer une solution en bac à sable (sandbox) dans cette même galerie. Les administrateurs de batterie de serveurs peuvent configurer le nombre total de points autorisés par collection de sites, pour chaque collection de sites, dans l'application Administration centrale. Le nombre de points affecté à chaque unité de chaque type de ressource est configurable via SharePoint Management Shell ou via un code personnalisé par rapport au modèle objet.

Ressources mesurées

Le tableau suivant répertorie les 15 ressources système surveillées.

  • La colonne Seuil minimal indique la quantité minimale par défaut de la ressource devant être atteinte afin d'être additionnée au total en cours. La valeur 0 dans cette colonne signifie que toute quantité, si petite soit elle, est additionnée.

  • La colonne Limite absolue spécifie la quantité par défaut qui déclenche un arrêt immédiat du processus. Notez qu'un 1 figure dans cette colonne pour certaines ressources. Cela signifie que même une seule instance de la ressource déclenche un arrêt immédiat du processus.

  • La colonne Ressources par point spécifie la proportion de la ressource, par défaut, qui engendre l'ajout d'un point supplémentaire au total Par jour/Par collection de sites.

Ressource

Remarques

Seuil minimal

Limite absolue

Ressources par point

AbnormalProcessTerminationCount

Cette « ressource » existe uniquement pour imposer une pénalité supplémentaire à une solution en bac à sable (sandbox) qui s'arrête pour une autre raison. Plus particulièrement, 1 point est ajouté au total Par jour/Par collection de sites. Par conséquent, cette pénalité de « ressource » représente une occasion lorsque (1) la limite absolue de l'une des autres mesures a été dépassée et le processus en sandbox a été immédiatement arrêté ou (2) un domaine d'application qui gère une requête a été arrêté parce que la requête prenait trop de temps (voir Par requête avec requête pénalisée ci-dessus). Ainsi, les colonnes Seuil minimal et Limite absolue de cette ligne ne sont pas applicables.

0

1

1

CPUExecutionTime

(mesuré en secondes)

La limite absolue de cette ressource n'est pas applicable tant qu'elle est supérieure à la limite Par requête avec requête pénalisée décrite ci-dessus. Normalement, les administrateurs la laissent élevée afin que la requête lente soit arrêtée avant de provoquer un arrêt de tout le processus de travail en sandbox, y compris des solutions en bac à sable (sandbox) dont le comportement est correct et qui s'exécutent dans ce processus.

0,1

60

200

CriticalExceptionCount

Les exceptions critiques incluent les suivantes :

  • ThreadAbortException

  • OutOfMemoryException

  • AccessViolationException

  • AppDomainUnloadedException

  • BadImageFormatException

  • TypeInitializationException

  • MissingMethodException

  • ExecutionEngineException

0

3

10

IdlePercentProcessorTime

Cette mesure s'applique uniquement aux processus de travail en sandbox qui ne gèrent actuellement aucune requête. De tels processus ne doivent pas utiliser beaucoup de temps processeur. La valeur 10 dans la colonne Limite absolue signifie que si un tel processus utilise plus de 10 pour cent du temps processeur, le processus est arrêté. La valeur Ressources par point n'est jamais utilisée. Toutefois, lorsque le processus est arrêté, la ressource AbnormalProcessTerminationCount s'applique, et un point de ressource est ajouté au décompte de ressources du jour.

0

10

100

InvocationCount

0

100

100

PercentProcessorTime

0

100

85

ProcessCPUCycles

10 000 000 000

100 000 000 000

100 000 000 000

ProcessHandleCount

500

5000

10 000

ProcessIOBytes

0

100 000 000

10 000 000

ProcessThreadCount

10

200

10 000

ProcessVirtualBytes

100000000

4 000 000 000

1 000 000 000

SharePointDatabaseQueryCount

Requêtes effectuées sur le contenu et les bases de données de configuration SharePoint.

0

100

400

SharePointDatabaseQueryTime

mesuré en secondes

Quantité de temps passé à interroger le contenu et les bases de données de configuration SharePoint.

0,1

60

20

UnhandledExceptionCount

0

3

50

UnresponsiveprocessCount

0

1

2

Importantes API d'utilisation des ressources

Vous pouvez modifier ces valeurs à l'aide du modèle objet SharePoint Foundation. Voici les API critiques que vous utilisez pour ce faire.

  • Un objet de la classe SPResourceMeasure représente l'une des mesures des ressources. Tous les objets de ce type sont conservés dans la base de données de configuration. La classe possède des propriétés pour le seuil minimal, la limite absolue et les ressources par point. Elle possède également une propriété Name qu'elle hérite de SPPersistedObject. Cette classe est sealed.

  • SPUserCodeService.ResourceMeasures conserve une collection d'objets SPResourceMeasure, un pour chaque ressource surveillée.

  • SPUserCodeService.WorkerProcessExecutionTimeout conserve la valeur d'expiration utilisée pour la limite Par requête avec requête pénalisée décrite précédemment.

Vous pouvez obtenir une référence à une mesure de ressource spécifique en utilisant son nom ou GUID en tant qu'index. Par exemple, la ligne de code suivante permet de réduire la limite absolue de la mesure SharePointDatabaseQueryTime à 30 secondes.

SPUserCodeService.Local.ResourceMeasures["SharePointDatabaseQueryTime"].AbsoluteLimit = 30.0;
SPUserCodeService.Local.Update();

Le code suivant permet d'augmenter la valeur de la limite Par requête avec requête pénalisée à 40 secondes.

SPUserCodeService.Local.WorkerProcessExecutionTimeout = 40;
SPUserCodeService.Local.Update();

Important

Pour que les modifications prennent effet, le Service de code en mode bac à sable Microsoft SharePoint Foundation doit être redémarré sur tous les serveurs sur lesquels il est en cours d'exécution.

Voir aussi

Concepts

Restrictions imposées aux solutions en bac à sable (sandbox)

Qu'est-ce qui peut être implémenté dans une solution en bac à sable (sandbox) ?