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?