Partager via


Gouverneur de ressources

S’applique à :SQL ServerAzure SQL Managed Instance

Vous pouvez utiliser resource governor pour gérer la consommation des ressources du moteur de base de données et appliquer des stratégies pour les charges de travail utilisateur. Resource Governor vous permet de réserver ou de limiter la quantité de processeur, de mémoire et d'E/S physique que les charges de travail des requêtes utilisateur peuvent utiliser. Vous pouvez également modifier le comportement de consommation des ressources de chaque requête, comme le degré de parallélisme ou la taille d’une allocation de mémoire.

Pour obtenir des exemples de configuration et de surveillance et pour découvrir les meilleures pratiques de Resource Governor, consultez Tutoriel : Exemples de configuration Resource Governor et meilleures pratiques.

Remarque

Bien que Azure SQL Database tire parti du gouverneur de ressources (entre autres techniques) pour gérer les ressources, la configuration utilisateur des pools de ressources et des groupes de charge de travail dans Azure SQL Database n’est pas prise en charge.

Azure Synapse Analytics a une implémentation différente d’un comportement de gouvernance des ressources similaire via la fonctionnalité de classification des charges de travail .

Avantages du gouverneur de ressources

Resource Governor vous permet de gérer les charges de travail et les ressources du moteur de base de données en spécifiant des réservations et des limites de la consommation des ressources par les requêtes. Dans le contexte du gouverneur de ressources, une charge de travail est un ensemble de requêtes (requêtes) qui peuvent et doivent être traitées comme une entité unique. Par exemple, toutes les requêtes exécutées par une certaine application peuvent être considérées comme une charge de travail. Bien qu’il ne s’agit pas d’une exigence, plus le modèle d’utilisation des ressources d’une charge de travail est uniforme, plus vous êtes susceptible de tirer parti du gouverneur de ressources.

Si plusieurs charges de travail distinctes sont présentes sur le même serveur, resource governor vous permet d’allouer des ressources différemment à différentes charges de travail, en fonction des limites que vous spécifiez.

Voici quelques-uns des scénarios d’utilisation pris en charge par resource governor :

  • Fournir l'isolement des ressources et une architecture mutualisée sur les instances uniques de SQL Server qui servent plusieurs charges de travail clientes. Autrement dit, vous pouvez répartir les ressources disponibles sur un serveur entre les charges de travail et réduire les problèmes qui peuvent se produire lorsque les charges de travail sont en concurrence pour les ressources.
  • Fournir des performances prévisibles et prendre en charge des contrats SLA pour les charges de travail dans un environnement multi-charge de travail et multi-utilisateur.
  • Isolez et limitez les requêtes incontrôlées, ou limitez les ressources d'E/S pour les opérations intensives d'entrée/sortie qui peuvent saturer le sous-système d'E/S et avoir un impact négatif sur d'autres charges de travail.
  • Ajoutez un suivi précis des ressources pour les rétrofacturations d’utilisation des ressources et fournissez une facturation prévisible aux consommateurs de ressources serveur.

Limitations du gouverneur de ressources

Resource Governor présente les limitations suivantes :

  • La gestion des ressources est limitée au moteur de base de données SQL Server. Resource Governor ne peut pas être utilisé pour Analysis Services, Integration Services et Reporting Services.
  • Resource Governor ne fournit pas de surveillance de charge de travail ni de gestion des charges de travail sur plusieurs instances SQL Server.
  • Des requêtes très courtes, telles que des requêtes dans certaines charges de travail OLTP, peuvent ne pas utiliser le processeur suffisamment longtemps pour appliquer des contrôles de bande passante processeur. Cela peut fausser les statistiques d’utilisation du processeur et limiter l’efficacité de la gouvernance des ressources processeur.
  • La possibilité de régir les E/S physiques s’applique uniquement aux opérations utilisateur et non aux tâches système. Les tâches système effectuent le journal de transaction, le point de contrôle et l’E/S du lazy writer. Gouverneur de ressources régit les lectures physiques des utilisateurs, mais pas les E/S d’écriture effectuées par les tâches système.
  • Vous ne pouvez pas modifier les contrôles de gouvernance pour le pool de ressources internal et le groupe de charges de travail.
  • Gouverneur de ressources fonctionne au niveau de l’instance. Gouverneur de ressources avec un groupe de disponibilité contenu n’est pas applicable.

Concepts des ressources

Les trois concepts suivants sont fondamentaux pour comprendre et utiliser resource governor :

  • pool de ressources. Un pool de ressources représente un conteneur pour les ressources physiques du serveur, telles que le processeur, la mémoire et les E/S. Deux pools de ressources intégrés, internal et default, sont toujours présents. Resource Governor prend également en charge les pools de ressources définis par l’utilisateur. Selon la configuration, les ressources d’un pool de ressources peuvent être partagées avec d’autres pools ou réservées. Pour plus d'informations, consultez pool de ressources du Gestionnaire de ressources.
  • Groupe de charge de travail. Un groupe de charge de travail représente un conteneur pour les sessions classées de la même façon. Un groupe de travail permet une surveillance agrégée de la consommation des ressources des sessions et des requêtes, et définit des politiques de requête. Chaque groupe de charges de travail se trouve dans un pool de ressources. Deux groupes de charges de travail intégrés, internal et default, existent toujours et sont mappés aux pools de ressources internal et default respectivement. Resource Governor prend également en charge les groupes de charges de travail définis par l’utilisateur. Pour plus d’informations, consultez groupe de charge de travail Gouverneur de ressources.
  • Classification. Le processus de classification affecte des sessions entrantes à un groupe de charge de travail en fonction des attributs de la session, tels que le nom de connexion ou le nom du programme, à l’aide de votre logique de classification personnalisée. Une fois qu’une session est classifiée dans un groupe de charge de travail, toutes les requêtes qui s’exécutent sur cette session sont soumises aux stratégies de groupe de charge de travail. Vous définissez la logique de classification en écrivant une fonction scalaire définie par l’utilisateur, appelée fonction classifieur. Pour plus d’informations, consultez Fonction de classification Gouverneur de ressources.

Remarque

Gouverneur de ressources n’impose aucun contrôle à un connexion d’administrateur dédié (DAC). Les requêtes DAC s’exécutent toujours dans le groupe de charge de travail internal et le pool de ressources.

L’illustration suivante montre les composants resource governor et leur relation entre eux dans le moteur de base de données. Dans une perspective de traitement, le flux simplifié est le suivant :

  • Il existe une connexion entrante pour une session (session 1 de n).
  • La session est classifiée.
  • À l’aide du résultat de classification, la session est affectée à un groupe de charge de travail, par exemple, Group 4.
  • Le groupe de travail applique ses politiques à toutes les requêtes et utilise le pool de ressources auquel il est associé, par exemple Pool 2.
  • Le pool de ressources fournit et limite les ressources requises par l’application, par exemple, Application 3.

Diagramme montrant les composants Gouverneur de ressources et le traitement des sessions entrantes.

Tâches de Gouverneur de ressources

Description de la tâche Article
Afficher des exemples de configuration Exemples de configurations du gestionnaire de ressources et meilleures pratiques
Activer le gestionnaire de ressources Activer le gouverneur de ressources
Désactiver le régulateur de ressources Désactiver le gouverneur de ressources
Créer, modifier et supprimer un pool de ressources pool de ressources du Gestionnaire de ressources
Créer, modifier, déplacer et supprimer un groupe de charge de travail groupe de charge de travail Gouverneur de ressources
Créer et tester une fonction classifieur définie par l’utilisateur Fonction de classification Gouverneur de ressources
Configurer Resource Governor à l’aide d’un modèle Configurer le gouverneur de ressources à l’aide d’un modèle
Afficher les propriétés du gouverneur de ressources Afficher et modifier les propriétés du Resource Governor