まず、質問に関する待機イベントの説明は次のとおりです。
同期されたセカンダリデータベースのトランザクションコミット処理がログを強化するのを待っています。この待機は、Transaction Delayパフォーマンスカウンターにも反映されます。この待機タイプは、同期された可用性グループで想定され、セカンダリデータベースへのログの送信、書き込み、および確認の時間を示します。
https://msdn.microsoft.com/en-us/library/ms179984.aspx
この待機のメカニズムを掘り下げると、リモートサーバーでログブロックが送信されて強化されますが、回復は完了しません。これが事実であり、追加のレプリカを追加した場合、帯域幅要件の増加によりHADR_SYNC_COMMITが増加する可能性があります。この場合、Aaron Bertrandは質問に対する彼のコメントで正確です。
ソース:http : //blogs.msdn.com/b/psssql/archive/2013/04/26/alwayson-hadron-learning-series-hadr-sync-commit-vs-writelog-wait.aspx
この待機がアプリケーションのスローダウンにどのように関係しているのかについての質問の2番目の部分を掘り下げます。これは因果関係の問題だと思います。あなたは待機が増え、最近のユーザーの苦情を見て、これがまったく当てはまらない可能性がある場合に2つが関係を持っているという潜在的に誤った結論を導き出しています。tempdbファイルを追加し、アプリケーションの応答性が向上したという事実は、データベースが可用性グループにあるときに、暗黙的なスナップショット分離レベルのオーバーヘッドの追加のオーバーヘッドによって悪化した可能性のある、根本的な競合の問題があったことを示しています。これは、HADR_SYNC_COMMITの待機とはほとんど関係がない可能性があります。
これをテストする場合は、プライマリレプリカのhadr_db_commit_mgr_update_harden XEventを調べる拡張イベントトレースを利用して、ベースラインを取得できます。ベースラインを取得したら、レプリカを一度に1つずつ追加して、トレースがどのように変化するかを確認できます。データベースを含まないボリュームにあるファイルを使用し、ロールオーバーと最大サイズを設定することを強くお勧めします。必要に応じて期間フィルターを調整し、待機と一致するイベントを収集して、これをさらにトラブルシューティングし、関与する必要がある他のチームと関連付けることができるようにしてください。
CREATE EVENT SESSION [HADR_SYNC_COMMIT-Monitor] ON SERVER -- Run this on the primary replica
ADD EVENT sqlserver.hadr_db_commit_mgr_update_harden(
WHERE ([delay]>(10))) -- I strongly encourage you to use the delay filter to avoid getting too many events back, this is measured in milliseconds
ADD TARGET package0.event_file(SET filename=N'<YourFilePathHere>')
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO