Nous remarquons une tendance intéressante pour les HADR_SYNC_COMMIT
attentes dans notre environnement. Nous avons une réplique à trois exemplaires; un principal, un secondaire de synchronisation et un secondaire asynchrone dans un centre de données et nous venons d'ajouter trois répliques ASYNC supplémentaires dans un autre centre de données (à environ 2400 miles d'intervalle).
Depuis lors, nous avons commencé à remarquer une énorme augmentation des HADR_SYNC_COMMIT
attentes. Lorsque nous regardons les sessions actives, nous voyons un tas de COMMIT TRANSACTION
requêtes en attente sur la réplique SYNC
À partir de la capture d'écran, nous pouvons clairement voir qu'il y a un saut dans l' HADR_SYNC_COMMIT
attente le 29 juin, et nous avons finalement supprimé `` deux '' des trois répliques asynchrones dans le centre de données distant dans le courant de midi le 1er juillet. Cela a considérablement réduit les temps d'attente.
Ce que nous avons vérifié jusqu'à présent - File d'attente d'envoi de journaux, file d'attente de rétablissement, dernière heure renforcée et dernière heure de validation sur les répliques distantes. Nous avons des rafales continues de petites transactions pendant les heures ouvrables, et donc les files d'attente d'envoi sont assez petites à un horodatage donné (entre 60 Ko et 1 Mo).
Les réplicas distants sont presque synchronisés, il y a très peu de différence entre le dernier temps de validation et le dernier temps durci pour un lsn individuel sur les répliques.
Le tube réseau est 10G et nous avons modifié la taille du tampon de transmission de 256 mégaoctets à 2 Go, cela a été fait en supposant que le réseau abandonnait les paquets et les retransmettait; de toute façon cela ne semblait pas beaucoup aider.
Donc, je me demande ce que les répliques ASYNC ont à voir avec les HADR_SYNC_COMMIT
attentes? La réplique SYNC ne devrait-elle pas dépendre seule de ce type d'attente, que me manque-t-il ici?
la source
Réponses:
Tout d'abord, la description de l'événement d'attente concernant votre question est la suivante:
En creusant dans la mécanique de cette attente, vous avez les blocs de journaux en cours de transmission et renforcés, mais la récupération n'est pas terminée sur les serveurs distants. Dans ce cas et étant donné que vous avez ajouté des répliques supplémentaires, il va de soi que votre HADR_SYNC_COMMIT peut augmenter en raison de l'augmentation des besoins en bande passante. Dans ce cas, Aaron Bertrand a exactement raison dans ses commentaires sur la question.
Source: http://blogs.msdn.com/b/psssql/archive/2013/04/26/alwayson-hadron-learning-series-hadr-sync-commit-vs-writelog-wait.aspx
En fouillant dans la deuxième partie de votre question sur la façon dont cette attente pourrait être liée aux ralentissements des applications. Je pense que c'est un problème de causalité. Vous regardez vos attentes augmenter et une récente plainte de l'utilisateur et tirer la conclusion potentiellement incorrecte que les deux ont une relation alors que ce n'est peut-être pas du tout le cas. Le fait que vous ayez ajouté des fichiers tempdb et que votre application soit devenue plus sensible à moi indique que vous avez peut-être eu des problèmes de contention sous-jacents qui auraient pu être exacerbés par la surcharge supplémentaire de la surcharge implicite du niveau d'isolement d'instantané lorsqu'une base de données se trouve dans un groupe de disponibilité. Cela peut avoir eu peu ou rien à voir avec vos attentes HADR_SYNC_COMMIT.
Si vous souhaitez tester cela, vous pouvez utiliser une trace d'événement étendue qui examine le XEvent hadr_db_commit_mgr_update_harden sur votre réplique principale et obtenir une ligne de base. Une fois que vous avez votre référence, vous pouvez ensuite ajouter vos répliques une par une et voir comment la trace change. Je vous encourage fortement à utiliser un fichier qui réside sur un volume qui ne contient aucune base de données et à définir un roulement et une taille maximale. Veuillez ajuster le filtre de durée selon vos besoins pour rassembler les événements qui correspondent à vos attentes afin de pouvoir dépanner davantage et corréler cela avec les autres équipes qui doivent être impliquées.
la source