Contention TempDB avec 24 fichiers tempdb physiques sur la boîte AMD Opteron à 48 cœurs

8

Je viens de recevoir la notification suivante concernant une instance de SQL Server 2005. L'instance a un rapport noyau / fichier tempdb de 2: 1 pour un nombre total de fichiers tempdb de 24 fichiers. Aucun conflit ne devrait se produire - comment pourrais-je détecter la source de ce conflit? TempDB et toutes les autres bases de données se trouvent sur le stockage SAN via Ethernet 10 Go. Le SAN dispose de 46 disques SAS 10 000 configurés dans une matrice RAID-60. Cette baie est partagée avec plusieurs serveurs VMWare et un ou deux serveurs Exchange.

Notification d'Idera SQL Diagnostic Manager:

08/11/2012 10:49:00 PM, Tempdb Contention (ms) sur MGSQL01 est critique.

Un conflit de verrou Tempdb a été détecté sur MGSQL01. Le temps d'attente total détecté est de 1782 millisecondes. Ceci indique que les performances sont affectées par les conflits sur les cartes d'allocation dans tempdb. S'il s'agit d'un problème normal, il peut être résolu en suivant les meilleures pratiques en ce qui concerne le nombre de fichiers tempdb, la taille et le sous-système d'E / S.

Temps d'attente PFS: 1782 ms Temps d'attente GAM: 0 ms Temps d'attente SGAM: 0 ms

Contention Tempdb (ms): temps d'attente actuel pour les cartes d'allocation tempdb (GAM, SGAM et PFS), en millisecondes. Cette alerte ne peut être déclenchée que sur les instances exécutant SQL 2005 ou version ultérieure.

Max Vernon
la source
1
Heya Max, juste quelques questions rapides. J'ai dû faire face à un problème similaire très récemment. -C'est pagelatch_SH ou pageiolatch_SH? Je suis presque sûr que c'est pagelatch_SH dans votre cas mais je veux juste en être certain. -Avez-vous utilisé des événements étendus pour suivre les requêtes qui accumulent le plus de temps d'attente PAGELATCH_SH? Pouvez-vous également publier vos 20 meilleures statistiques d'attente à partir de SELECT * FROM SYS.DM_OS_WAIT_STATS ORDER BY 3 Qu'est-ce que perfmon vous dit? Le disque TempDB rencontre-t-il en fait une réelle contention d'E / S? Spike dans MS?
Ali Razeghi
2
Les attentes sur une page PFS sont-elles dans un fichier particulier ou toutes? Tous les fichiers tempdb sont-ils de même taille? Savez-vous quel type / taille d'objets est alloué dans tempdb? Les tables temporaires sont-elles explicitement tronquées et supprimées par le code d'application? Avez-vous pensé à implémenter l'indicateur de trace 1118?
Détroit de Darin
2
@MaxVernon: En règle générale, exécutez toujours T1118. Il n'y a vraiment aucune raison de s'en passer
Thomas Kejser
1
@maxvernon, je attribue +1 à votre élément de connexion. Joli.
Edward Dortland

Réponses:

5

L'indicateur de trace 1118 force les allocations d'étendue uniformes au lieu d'allocations de pages mixtes. L'indicateur de trace est couramment utilisé pour aider à l'évolutivité TEMPDB en évitant SGAM et d'autres points de conflit d'allocation. Si vous avez SQL Server 2008 ou SQL Server 2005 et que le correctif est appliqué et que vous rencontrez toujours un conflit TEMPDB, envisagez l'indicateur de trace 1118 pour obtenir de l'aide supplémentaire sur la résolution du conflit.

Troy
la source
1
Pourriez-vous expliquer, de préférence avec un exemple, comment le passage de l'allocation partagée d'une seule page à l'allocation d'étendue dédiée résoudra les conflits PFS?
Edward Dortland