Stiamo notando un modello interessante per le HADR_SYNC_COMMIT
attese nel nostro ambiente. Abbiamo una replica di tre; uno primario, uno secondario di sincronizzazione e uno secondario asincrono in un datacenter e abbiamo appena aggiunto altre tre repliche ASYNC in un altro datacenter (a circa 2400 miglia di distanza).
Da allora, abbiamo iniziato a notare un enorme aumento delle HADR_SYNC_COMMIT
attese. Quando guardiamo le sessioni attive, vediamo una serie di COMMIT TRANSACTION
query in attesa sulla replica SYNC
Dallo screenshot, possiamo vedere chiaramente che c'è un salto in HADR_SYNC_COMMIT
attesa il 29 giugno e alla fine abbiamo lasciato cadere "due" delle tre repliche asincrone nel datacenter remoto a mezzogiorno del 1 ° luglio. Ciò ha notevolmente ridotto i tempi di attesa.
Ciò che abbiamo controllato finora: registra la coda di invio, la coda di ripetizione, l'ultima ora indurita e l'ultima ora di commit sulle repliche remote. Abbiamo continue esplosioni di piccole transazioni durante l'orario di lavoro, e quindi le code di invio sono piuttosto piccole in un dato timestamp (tra 60KB e 1MB).
Le repliche remote sono quasi sincronizzate, c'è una differenza molto piccola tra l'ultimo tempo di commit e l'ultimo tempo indurito per ogni singolo lsn sulle repliche.
La pipe di rete è 10G e abbiamo modificato la dimensione del buffer di trasmissione da 256 mega a 2 concerti, questo è stato fatto supponendo che la rete stesse rilasciando pacchetti e li ritrasmettesse; in entrambi i casi ciò non sembra essere di grande aiuto.
Quindi, mi chiedo cosa hanno a che fare le repliche ASYNC con le HADR_SYNC_COMMIT
attese? La replica SYNC non dovrebbe dipendere da solo da questo tipo di attesa, cosa mi sto perdendo qui?