Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Comment résoudre les problèmes d'utilisation élevée du processeur sur mon instance Amazon RDS for SQL Server ?
Je constate une utilisation élevée du processeur sur mes instances de base de données Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server.
Brève description
Les raisons suivantes peuvent entraîner une augmentation de l'utilisation du processeur :
- Charges de travail importantes initiées par l'utilisateur, requêtes simultanées multiples ou transactions de longue durée
- Utilisation d'une classe d'instance sous-provisionnée pour la charge de travail
- Statistiques obsolètes et fragmentation des index ou index manquants
- Requêtes susceptibles d'être améliorées
- Blocage et interblocage
- Parallélisme
- Compilation et recompilation fréquentes
- Détection de paramètres
- Épuisement de threads
Pour identifier la source d'une utilisation élevée du processeur pour votre instance Amazon RDS for SQL Server, utilisez les outils suivants :
- Métriques Amazon CloudWatch pour Amazon EBS
- Surveillance améliorée
- Performance Insights
- Database Insights
- Outils SQL Server
Une fois la source identifiée, vous pouvez analyser et optimiser votre charge de travail afin de réduire l’utilisation du processeur.
Résolution
Métriques CloudWatch pour Amazon RDS
Utilisez les métriques CloudWatch pour Amazon RDS suivantes afin d'identifier les modèles de processeur sur de longues périodes.
Pour déterminer quand la charge de travail augmente l'utilisation du processeur, procédez comme suit :
- Ouvrez la console Amazon RDS.
- Dans le volet de navigation, sélectionnez Bases de données, puis sélectionnez la base de données à surveiller.
- Choisissez l'onglet Surveillance.
- Choisissez le menu Surveillance, puis sélectionnez CloudWatch.
- Recherchez les métriques CloudWatch suivantes, puis comparez les graphiques :
WriteIOPs
ReadIOPs
ReadThroughput
WriteThroughput
CPUUtilization
CPUCreditBalance
CPUCreditUsage
Remarque : Si le solde de crédits du processeur diminue régulièrement et que l'utilisation des crédits du processeur augmente systématiquement, cela signifie que le nombre de cœurs de processeur est insuffisant pour la charge de travail. Si vous utilisez une instance de la classe d'instance t2 ou t3, vérifiez si votre instance est sous-provisionnée.
Après avoir identifié la période, utilisez la surveillance améliorée pour examiner plus en détail les données associées à votre instance de base de données. Vous pouvez configurer la surveillance améliorée pour collecter des données à des intervalles de 1, 5, 10, 15, 30 ou 60 secondes.
Surveillance améliorée
Vous pouvez configurer la surveillance améliorée pour surveiller le système d'exploitation qui s'exécute sur votre instance de base de données.
Pour vérifier l'utilisation du processeur à l'aide de la surveillance améliorée, procédez comme suit :
- Ouvrez la console Amazon RDS.
- Dans le volet de navigation, sélectionnez Bases de données, puis sélectionnez la base de données à surveiller.
- Choisissez l'onglet Surveillance.
- Choisissez le menu Surveillance, puis sélectionnez Liste des processus du système d'exploitation.
Vérifiez si les processus du système d'exploitation, les processus RDS, les processus de SQL Server ou les processus de SQL Agent entraînent une utilisation élevée du processeur. Vous pouvez également vérifier le pourcentage de processeur et de mémoire utilisés par ces processus.
Utilisez la console pour surveiller les métriques de performance. Dans l'onglet Surveillance, choisissez le menu Surveillance, puis sélectionnez Gérer les graphiques.
Pour déterminer quand le processeur exécute des processus utilisateur, exécute des noyaux ou est inactif, sélectionnez les graphiques correspondant aux métriques Utilisateur du processeur, Système du processeur et Inactivité du processeur. Sélectionnez ensuite les métriques pour les I/O sur disque et les I/O sur périphériques physiques. Ces métriques incluent les I/O de lecture, les I/O d’écriture, les Ko/s en lecture et les Ko/s en écriture. Vous pouvez également consulter les paramètres liés à la mémoire, notamment la mémoire disponible, la mémoire totale de SQL Server et la mémoire totale. Ces métriques sont utiles car si le processeur passe plus de temps à attendre les ressources, vous pourriez constater une utilisation élevée du processeur.
Pour plus d'informations, consultez la section Affichage des métriques du système d'exploitation dans la console RDS.
Database Insights
Utilisez CloudWatch Database Insights pour résoudre les principaux problèmes responsables de la charge sur la base de données et aux processus individuels du système d'exploitation exécutés sur un groupe d'instances.
Par défaut, le mode Standard de Database Insights est activé pour votre base de données Amazon RDS. Pour activer le mode standard lorsque vous créez ou modifiez votre instance de base de données, consultez la section Activation du mode standard de Database Insights pour Amazon RDS.
Remarque : Si vous n'utilisez pas d'autorisations plus étendues, veillez à accorder les autorisations IAM requises pour Database Insights. Pour plus d'informations, consultez la section Démarrer avec CloudWatch Database Insights.
Pour plus d'informations sur Amazon RDS et la prise en charge des classes d'instance, consultez la section Prise en charge du moteur de base de données Amazon RDS, des régions et des classes d'instance pour Database Insights.
Performance Insights
Activez Performance Insights pour identifier les requêtes responsables de la charge sur la base de données.
Procédez comme suit :
- Accédez au tableau de bord Performance Insights.
- Vérifiez l'onglet SQL maximum qui correspond à la période que vous souhaitez analyser.
- Identifiez la requête qui prend le plus de temps.
- Vérifiez la requête qui exige le plus de ressources et les événements d'attente observés au cours de cette période. Les événements d'attente fréquemment associés à une utilisation élevée du processeur sont les suivants :
SOS_SCHEDULER_YIELD montre qu'un worker thread a cédé la place à l'exécution d'un autre thread. Lorsque le nombre d'attentes est élevé et que les temps d'attente sont faibles, les requêtes sont généralement liés au processeur. Lorsque les worker threads cèdent leur droit d’exécution, les temps d'attente dans les requêtes liées au processeur peuvent augmenter. Si le temps d'attente est long, vous devez examiner la charge de travail. Si SOS_SCHEDULER_YIELD est fréquent, la pression sur le processeur est la source du problème. Examinez le type de charge de travail et effectuez des réglages supplémentaires.
CXPACKET et CXCONSUMER sont des événements d'attente liés au parallélisme qui ne sont généralement pas préoccupants. Toutefois, si les événements d'attente sont fréquents et affectent les performances, examinez les requêtes et définissez les valeurs appropriées pour le seuil de coût du parallélisme. Assurez-vous que SQL Server choisit le paramètre de parallélisme le moins coûteux dans le groupe de paramètres. Vous pouvez également augmenter le degré maximum de parallélisme, MAXDOP, à 1 au niveau de la requête ou de l'instance.
ThreadPool indique l'épuisement des threads. Si votre classe d'instance peut le gérer, augmentez le paramètre maximal des worker threads. Vous pouvez être confronté à des attentes de ThreadPool lorsqu'un nombre excessif de threads est utilisé en raison d'un blocage, d'une charge de travail élevée ou d'un nombre élevé de requêtes parallèles. De plus, si vous configurez incorrectement le paramètre maximal de worker threads, l'événement d’attente ThreadPool peut se produire.
Consultez les métriques de base de données pour les requêtes par lots, les compilations SQL et les recompilations SQL. Vérifiez l’existence de requêtes qui sont compilées plusieurs fois. Vérifiez également si les requêtes sont fréquemment recompilées pour un lot donné. Si tel est le cas, cela indique que la clause WITH RECOMPILE est utilisée dans le code de requête. Ces deux raisons peuvent entraîner une utilisation excessive du processeur.
Outils SQL Server
Pour résoudre les problèmes liés à l'utilisation élevée du processeur à l'aide des outils SQL Server, effectuez les actions suivantes :
- Analysez des requêtes spécifiques pour rechercher une utilisation élevée du processeur, mettez à jour les statistiques, identifiez les index manquants et détectez les paramètres. Pour plus d'informations, consultez la page Résoudre les problèmes liés à une utilisation élevée du processeur dans SQL Server sur le site Web de Microsoft.
- Vérifiez l’absence de requêtes peu performantes dans le plan d’exécution, puis effectuez des réglages supplémentaires. Pour plus d'informations, consultez la page Afficher un plan d'exécution réel sur le site Web de Microsoft.
- Utilisez les requêtes et les événements étendus pour résoudre les problèmes de verrouillage, de blocage et d’interblocage excessifs. Pour plus d'informations, consultez la page Comprendre et résoudre les problèmes de blocage de SQL Server sur le site Web de Microsoft.
Remarque : Lorsque vous configurez des événements étendus dans RDS pour SQL Server, vous ne pouvez pas utiliser la méthode standard pour enregistrer des fichiers .xel. - Utilisez les rapports SQL Server pour affiner votre charge de travail. Pour plus d'informations, consultez la page Tableau de bord des performances sur le site Web de Microsoft.
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 3 ans
- demandé il y a 3 ans
- demandé il y a 3 ans