Gouverneur de ressources
S’applique à :SQL Server
Azure 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
etdefault
, 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
etdefault
, existent toujours et sont mappés aux pools de ressourcesinternal
etdefault
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
.
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 |
Contenu connexe
- Exemples de configuration du gouverneur de ressources et meilleures pratiques
- Activer le régulateur de ressources
- Désactiver le gestionnaire de ressources
- pool de ressources du Gestionnaire de ressources
- groupe de charge de travail Gouverneur de ressources
- Fonction de classification Gouverneur de ressources