Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Résoudre les problèmes de goulots d'étranglement d'E/S de disque

Votre serveur souffre d'un nombre excessif d'alertes d'E/S ? Si oui, devriez-vous vous inquiéter de la dégradation des performances du serveur ? Comment diagnostiquer au mieux le problème sous-jacent et éliminer les goulots d'étranglement d'E/S ?

L'alarme de temps de blocage des E/S de Spotlight Cloud est un bon indicateur des goulots d'étranglement des E/S. Il est déclenché lorsque le temps d'attente moyen par opération d'un fichier de base de données dépasse le seuil d'alarme. L'alarme utilise les données de sys.dm_io_virtual_file_stats DMV pour ses calculs. Il utilise une valeur moyenne dérivée après cinq collectes au cours des 15 dernières minutes afin que vous ne soyez pas alerté lors d'un pic occasionnel. La description de l'alarme inclut le nom du fichier virtuel de la base de données, le nom de la base de données et le temps d'attente moyen par opération d'E/S.

Quatre suggestions simples pour diagnostiquer les problèmes liés aux E/S dans Spotlight Cloud :

1. Vérifiez ce qui contribue à la consommation d'E/S.

La consommation d'E/S est un signe de la latence des sous-systèmes de disque qui peut être causée par une pression sur la mémoire ou le processeur, des requêtes mal écrites ou un mauvais mélange d'index. Au moment de l'alarme :

Tout d'abord, profitez du panneau de droite Propriétés de la page Alarmes pour afficher les données relatives aux alarmes intelligentes :
1. Détails de l'alarme, y compris le nom du fichier, le temps d'attente moyen des E/S sur le fichier et la durée de l'alarme

2. Analysez les données collectées représentées graphiquement sur le graphique de tendance au cours des dernières heures



Ensuite, diagnostiquez le problème en appuyant sur le bouton Diagnostiquer. Cela vous mènera au tableau de bord E/S par fichier axé sur le fichier stressé. Vous pouvez utiliser ce tableau de bord et d'autres pour effectuer un diagnostic plus approfondi :

1. E/S par fichier – Identifiez les fichiers directement affectés par les E/S
2. Analyseur de charge de travail - Les principales instructions SQL et le lot TSQL consommant le plus d'E/S
3. Sessions - Sessions au moment où l'activité du disque est active
4. Bilan de santé - Vérifiez s'il manque des index


2. Vérifiez les fichiers en attente d'opérations d'E/S.

Le tableau de bord E/S par fichier identifie les fichiers en attente d'opérations d'E/S. Examinez les statistiques d'E/S suivantes :
1. Prenez note des colonnes liées aux E/S :débits d'E/S, débits de lectures/écritures et taux d'attente

2. Triez les fichiers en fonction de leur attente moyenne par / IO en appuyant sur la liste déroulante bleue directement au-dessus de la colonne Fichier logique.

3. Affichez l'activité de lecture et d'écriture au cours de la dernière heure générée sur le fichier affiché sur les panneaux de droite.

4. Éventuellement, développez la période pour vérifier s'il s'agit d'un comportement normal sur le fichier.

5. Si vous voyez un certain nombre de fichiers au fil du temps souffrant du même problème et partagez l'emplacement ou le disque, envisagez d'ajuster leur emplacement et comparez la contention d'E/S entre les disques ou les emplacements pour atténuer les problèmes de latence du disque.


6. Si les fichiers de base de données Tempdb sont un facteur important, utilisez le tableau de bord d'utilisation de TempDB pour afficher l'activité par rapport à la base de données :

un. Fichiers de base de données Tempdb et leurs statistiques
b. Sessions utilisant tempdb
c. Principales tables et index créés dans tempdb



3. Recherchez les instructions SQL susceptibles d'effectuer de grandes quantités d'E/S logiques.

Le tableau de bord de l'analyseur de charge de travail affiche le SQL le plus consommateur d'E/S :

1. Cliquez sur la ressource d'E/S dans la bannière supérieure et développez le nœud Instruction SQL à partir de l'arborescence des dimensions pour afficher les 25 principales E/S consommatrices de SQL au cours de la période.

2. Concentrez-vous sur une instruction et développez le panneau Propriétés de l'instruction SQL sur le côté droit pour afficher les détails du plan SQL et de la requête.

3. Chargez l'instruction SQL dans SSMS à l'aide de l'option "Ouvrir dans SSMS" et utilisez l'outil de plug-in Tuning Pack pour analyser le plan ou réécrire une instruction plus optimale.


4. Concentrez-vous sur le nœud « Instruction SQL » de l'arborescence Dimensions pour répertorier les instructions SQL. Triez les sessions par IO Wait ou Logical Reads. Utilisez le panneau Comparer au parent sur la droite pour comparer l'attente d'E/S d'un SQL unique au reste du SQL dans l'instance prenant en charge les E/S. Les E/S logiques peuvent entraîner des E/S physiques inutiles.


4. Vérifiez quelles sessions SQL Server génèrent de grandes quantités d'activité de disque.

Le tableau de bord Sessions affiche les sessions ouvertes dans l'instance. Pour voir les sessions qui génèrent de grandes quantités d'activité de disque, vérifiez les statistiques liées aux E/S et triez-les.
1. Les statistiques liées aux E/S vous orientent dans la bonne direction :Total des E/S, lectures logiques, lectures physiques et demande d'E/S

2. Le panneau de droite de l'onglet Session affiche des statistiques supplémentaires ainsi que le SQL sous-jacent



Utilisez le panneau Tempdb pour afficher les sessions utilisant la base de données Tempdb :
1. Utilisez le tableau de bord Tempdb pour identifier les sessions et les objets utilisant la base de données

2. Utilisez le tableau de bord Tempdb Usage pour voir toutes les sessions sur une période


Prenez en charge la latence d'E/S en tirant parti des capacités de diagnostic de Spotlight Cloud !