Estamos notando un patrón interesante de HADR_SYNC_COMMIT
espera en nuestro entorno. Tenemos una réplica de tres; una primaria, una secundaria de sincronización y una secundaria asíncrona en un centro de datos y acabamos de agregar tres réplicas ASYNC más en otro centro de datos (~ 2400 millas de distancia).
Desde entonces, hemos comenzado a notar un enorme aumento en las HADR_SYNC_COMMIT
esperas. Cuando miramos las sesiones activas, vemos un montón de COMMIT TRANSACTION
consultas esperando en la réplica SYNC
De la captura de pantalla, podemos ver claramente que hay un salto en la HADR_SYNC_COMMIT
espera el 29 de junio, y finalmente eliminamos 'dos' de las tres réplicas asíncronas en el centro de datos remoto en algún momento del mediodía del 1 de julio. Eso redujo considerablemente los tiempos de espera.
Lo que hemos comprobado hasta ahora: cola de envío de registros, cola de rehacer, último tiempo endurecido y último tiempo de confirmación en las réplicas remotas. Tenemos ráfagas continuas de pequeñas transacciones durante el horario comercial y, por lo tanto, las colas de envío son bastante pequeñas en una marca de tiempo dada (en cualquier lugar entre 60 KB y 1 MB).
Las réplicas remotas están casi sincronizadas, hay muy poca diferencia entre el último tiempo de confirmación y el último tiempo endurecido para cualquier lsn individual en las réplicas.
La tubería de red es 10G y modificamos el tamaño del búfer de transmisión de 256 megas a 2 gigas, esto se hizo bajo el supuesto de que la red estaba cayendo paquetes y volviéndolos a transmitir; De cualquier manera, eso no parecía ayudar mucho.
Entonces, me pregunto qué tienen que ver las réplicas ASYNC con las HADR_SYNC_COMMIT
esperas. ¿No debería la réplica SYNC depender solo de este tipo de espera, qué me estoy perdiendo aquí?