Je me suis disputé avec un DBA et quelques gars du matériel sur les problèmes de performances sur notre serveur SQL. Normalement, tout va bien, mais au cours des dernières semaines, nous avons eu d'énormes pics de décalage dans le serveur SQL. Il est clair que SQL Server attend sur les E / S disque. Mais je n'arrête pas de me dire que c'est parce que SQL Server demande des E / S anormalement élevées. Ce qui n'est pas le cas. Je peux voir à partir de ce qui fonctionne qu'il n'y a rien hors de la normale, et tout ce que le DBA se soucie de regarder, c'est ce qui cause le blocage, etc., ce qui est inutile. Par exemple, la principale chose que nous voyons sauvegarder est le fonctionnement sur la base de données ASPState, que nous utilisons pour gérer l'état de session ASP sur les serveurs Web. Ces opérations ne sont normalement jamais vues sur les résultats actifs de Sp_who2 car elles se produisent si rapidement. La base de données est en mode de récupération simple et la journalisation est minime. Cependant, pendant ces pics de décalage, nous pouvons voir que de nombreuses opérations de sélection et de mise à jour sur la base de données sont bloquées ou en attente. Je suis sûr que ce qui se passe, c'est que quelqu'un ou un travail exécute quelque chose qui provoque une utilisation du disque Heavey sur les tableaux RAID utilisés pour ce journal de bases de données et les fichiers de données. Le problème le prouve, car personne ne veut admettre qu'il fait quelque chose qui tue notre site Web.
Ma question est de savoir quels compteurs de performances ou tout ce que je peux enregistrer pour aider à montrer que le serveur SQL attend sur les E / S, mais pas parce qu'il demande plus que la normale, car le disque est trop occupé pour répondre aux demandes du serveur SQL aussi rapidement que d'habitude?
la source
Réponses:
Jetez un œil aux compteurs perfmon suivants:
Page lookups/sec
Page reads/sec
Readahead pages/sec
Full Scans/sec
Range Scans/sec
Skipped Ghosted Records/sec
Page IO latch waits
SQL Server entraînant un nombre élevé de demandes d'E / S serait corroboré par un nombre élevé d'analyses, une augmentation des recherches et des lectures de pages et des attentes de verrouillage d'E / S de pages élevées. Cela vaut la peine d'essayer les
sys.dm_exec_query_stats
entrées avec un nombre élevé de lectures physiques. Ils pourraient rapidement identifier le coupable.En général, en abordant le problème comme un problème de dépannage des performances, suivre une méthode comme Waits and Queues est la bonne approche. Vous DBA semble faire la bonne chose, vous devriez donc l'écouter.
la source
IO Data Bytes/sec
voir si un autre processus est bousiller le disque.Pour commencer, utilisez les requêtes de diagnostic de Glenn Berry et SP_Whoisactive d'Adam Machanic pour découvrir ce qui se passe réellement.
Vérifiez d'abord quels fichiers de base de données ont le plus de goulots d'étranglement d'E / S en exécutant cette requête (Query by Glenn Berry)
Exécutez ensuite cette requête pour voir les dix principaux événements sur lesquels votre serveur attend (requête de Jonathan Kehayias ). Vous trouverez également une requête similaire à partir des requêtes de diagnostic de Glenn Berry.
Une fois que vous disposez de ces informations, il serait beaucoup plus facile de résoudre le problème.
BTW, vous pouvez trouver de nombreux messages sur la façon d'utiliser sp_whoisactive pour le dépannage ici.
la source
"Le problème le prouve", a déclaré à juste titre. Jetez un œil à SQL Server: réduire les E / S disque
Il s'agit de suivre DMV
Les références:
la source