1
誰が私のワーカースレッドを使用していますか?SQL Server 2014-HADR
最近、SQL Server 2014 HADR環境で問題が発生し、サーバーの1つでワーカースレッドが不足しました。 メッセージを受け取りました: AlwaysOn可用性グループのスレッドプールは、利用可能なワーカースレッドが十分にないため、新しいワーカースレッドを開始できませんでした。 問題を分析するのに役立つ(と思った)ステートメントを取得するために、別の質問を既に開いています(どのSPIDがどのスケジューラー(ワーカースレッド)を使用しているかを確認できますか?)。システムを使用しているスレッドを見つけるためのクエリを取得しましたが、サーバーがワーカースレッドを使い果たした理由がわかりません。 私たちの環境は次のとおりです。 4 Windows Server 2012 R2 SQL Server 2014エンタープライズ 24プロセッサ-> 832ワーカースレッド 256 GB RAM 12個の可用性グループ(全体) 642データベース(全体) したがって、問題が発生したサーバーには次の構成がありました。 5つの可用性グループ(3つのプライマリ/ 2つのセカンダリ) 325データベース(127プライマリ/ 198セカンダリ) MAXDOP = 8 Cost Threshold for Parallelism = 50 電源プランは「高パフォーマンス」に設定されています この問題を「解決」するために、1つの可用性グループをセカンダリサーバーに手動でフェールオーバーしました。そのサーバーの構成は次のとおりです。 5つの可用性グループ(2つのプライマリ/ 3つのセカンダリ) 325データベース(77プライマリ/ 248セカンダリ) 私はこのステートメントで利用可能なスレッドを監視しています: declare @max int select @max = …