Causes d'E / S à tampon élevé SQL Server 2008 R2

8

J'essaie de dépanner les performances sur un serveur SQL que nous avons pour notre serveur de gestion de documents et aujourd'hui, les performances ont atteint un niveau record.

En regardant l'entrepôt de données de gestion (MDW) que j'ai configuré récemment, je peux voir un énorme pic dans les E / S du tampon. Le temps d'attente SQL combiné est de l'ordre de 1500-2000 ms, ce qui est considérablement plus élevé que la normale (environ 500 ms). La plus grande partie de cette augmentation est due aux E / S tampons.

N'étant pas un DBA et faisant cela par nécessité, je suis massivement hors de ma profondeur.

Existe-t-il un moyen de savoir pourquoi il y a eu une augmentation importante des E / S de tampon? Est-ce probablement dû à une requête qui tire de grandes quantités de données ou à une configuration incorrecte des limites de mémoire de SQL Server? Y a-t-il quelque chose de spécifique (ou général d'ailleurs) que je devrais regarder ou des DMV que je peux interroger pour aider au dépannage?

Le serveur est SQL Server 2008 R2. Il s'agit d'une machine virtuelle exécutant deux vCPU et 8 Go de RAM avec les disques hébergés sur une baie distincte sur un SAN.

entrez la description de l'image ici

Les graphiques ci-dessus ont tous été générés à l'aide de SQL Server Management Data Warehouse .

Tim Alexander
la source

Réponses:

9

Si vous regardez attentivement le graphique des attentes, les barres colorées indiquent en fait les attentes de verrouillage, et non les attentes d'E / S.

En outre, le graphique d'E / S montre une utilisation accrue du disque système , pas une utilisation du disque SQL Server .

Étant donné que le graphique de la mémoire approche de la taille de la mémoire de votre système à mesure que l'utilisation du système augmente au fil du temps, je pense que votre instance est surchargée pour le paramètre de mémoire du serveur max actuel (ou le paramètre de mémoire du serveur max n'est pas défini du tout), et un ou de plus en plus de pools de mémoire SQL Server sont échangés sur le disque.

La solution consiste à réduire le paramètre de mémoire maximale du serveur (ou à le définir sur une valeur appropriée s'il n'est pas défini). Veuillez consulter ma réponse ici pour une réponse plus approfondie d'un scénario similaire, et mon article de blog:

La mémoire de mon serveur SQL est-elle sur-engagée?

Jon Seigel
la source