web-dev-qa-db-fra.com

Comment interpréter le journal lorsque j'exécute DBCC Traceon (3502, 3504, 3605, -1)

J'utilise DBCC Traceon (3502, 3504, 3605, -1) car il a été recommandé dans un blog pour la découverte de problèmes de performance liés aux E/S. Je suis en cours d'exécution MS SQL Server 2008 R2 SP1

Les résultats dans mon fichier journal SQL ressemblent à ceci (numéros fugues un peu):

sur le point de connecter la fin du point de contrôle

dernière cible 2, avgwritylattenance 40ms

Débit moyen: 0,67 MB/SEC, E/S Saturation: 79, Contexte Interrupteurs 201

FLUSHCACHACHE: nettoyé 125 bufs avec 69 écrit, dans 1447 ms (évité à 0 nouvelle bactérie sale)

Ckpt dbid 9 phase 1 terminée (8)

sur le point de commencer le point de contrôle commence.

Je ne sais pas vraiment comment lire ceci ou le casser de manière à obtenir quelque chose de vraiment significatif.

Qu'est-ce que "la dernière cible" la dernière moyenne signifie? "

La latence d'écriture moyenne signifie-t-elle que l'heure des frais généraux qu'il prend par écriture? Ou le temps entre écrit? 40ms semble élevé, le lecteur physique est un 1 To, et c'est RAID5 configuré.

Quelle est la saturation d'E/S?

Qu'est-ce que cela a à voir avec les commutateurs de contexte. Je suppose que les commutateurs de contexte ont quelque chose à voir avec les tâches multiples. Changer d'emploi/écrit.

Flushcache. Je me rends compte que cela a à voir avec l'élimination du cache. Quels sont les bufs? Ces pages sont-elles des données qui devaient être écrites? Quels sont les bufs sales? Pourquoi seraient-ils évités?

Une ventilation détaillée serait appréciée.

3
meltdownmonk

Ma réponse:

BUFS, sont des pages SQL, ce sont des pages de 8kb, 8 pages par existant (un groupe de pages) qui est de 64 Ko, et est le plus petit bloc d'un fichier de base de données SQL (mais pas le fichier journal, le fichier journal peut utiliser les disques physiques. Taille de bloc la plus petite, généralement 512 octets)

Donc, dans mon propre exemple, les 125 bufs, étaient de 125 pages, près de 1 Mo de données réparties sur 69 écrivies. Il a fallu un total de 1447 pour écrire 125 pages (fondamentalement 1447 secondes pour écrire 125x8kb) et si vous avez plusieurs fois le temps qu'il a fallu au débit, vous obtiendrez la taille des données écrites, et c'est très proche de la 125.

Les bufs sales ne sont que des pages sales, qui sont des pages qui changent mais n'ont pas eu ces changements reflétés nulle part ailleurs, à l'exception du cache.

Je ne comprends toujours pas la saturation d'E/S.

La moyenne de la latence d'écriture est le temps nécessaire pour compléter le point de contrôle (1447) divisé par le nombre d'écritures. Dans ce cas, il devrait être 20,97 ms. Donc, les chiffres que j'ai utilisés pour l'exemple sont incorrects; Ils ne sont pas de la même entrée de journal.

On dirait que ce serveur fonctionne lentement sur la base des statistiques.

0
meltdownmonk