これは大幅な見直しが必要なクライアント環境なので、私がやろうとしているのは出血を遅らせることだけです。
CPUがクラッシュし、多くの場合80%以上の使用率
VMWARE 5.5、Windows Server 2008r2、SQL Server 2012
6コアの1 vCPU(ここでは赤いフラグ)
70GBのRAM
16の個別のインスタンス、CPU使用のほとんどを駆動するインスタンスには80のユーザーデータベースがあります
ほとんどすべてのインスタンスMAXDOP 0、並列処理のすべてのコストしきい値は5
現時点では停止はオプションではないため、再起動やvCPUの変更はありませんが、高CPUである出血を遅くする必要があります。
これは、DBが80のインスタンスでCPUが占有している現在のトップ10の現在の待機のサンプルです。
╔══════════════════════╦══════════════════╦════════════╦═════════════╗
║ wait_type ║ Wait Time (Secs) ║ # of Waits ║ Avg ms/Wait ║
╠══════════════════════╬══════════════════╬════════════╬═════════════╣
║ WRITELOG ║ 9.8 ║ 5563 ║ 1.8 ║
║ PAGELATCH_SH ║ 7 ║ 21742 ║ 0.3 ║
║ SOS_SCHEDULER_YIELD ║ 6.5 ║ 8891 ║ 0.7 ║
║ PAGELATCH_EX ║ 5.3 ║ 20106 ║ 0.3 ║
║ CXPACKET ║ 4.2 ║ 174 ║ 24.2 ║
║ LATCH_EX ║ 2.7 ║ 1287 ║ 2.1 ║
║ LCK_M_S ║ 2.2 ║ 123 ║ 18.1 ║
║ LCK_M_U ║ 1.7 ║ 385 ║ 4.5 ║
║ PAGEIOLATCH_SH ║ 0.9 ║ 972 ║ 0.9 ║
║ ASYNC_IO_COMPLETION ║ 0.5 ║ 3 ║ 150.3 ║
╚══════════════════════╩══════════════════╩════════════╩═════════════╝
私の考えでは、MAXDOPを3に設定し、すべてのインスタンスのコストしきい値を25に設定しました。
すぐに間違って見えるもの
ご質問
これを修正すると停止します。おそらくそれらのいくつか。
上記に同意します。また、CPUにヒットするクエリをチェックし、クエリのチューニングを実装できるかどうか、または少なくともいくつかの計画ガイドを決定します。ただし、全体として、構成は持続可能ではありません。
更新するために、負荷の一部を別のサーバーに移動してから、環境を完全に再構築します。
お時間とご回答ありがとうございます。