SQL Server 2016には8個のCPUコアと32GBのRAMがあります。ユーザーは今や不平を言っていますが、遅いアプリケーションについてはわかりますが、わかりません。だから私は可能な弱点を見つけようとします。SQL Server - 低CPU負荷ですが、待機中のタスク
SQL ServerのCPU負荷は、たいてい1%-20%です。 しかし、時々私は30から50のタスクを待っています。
これは問題である可能性がありますか?
- MAXDOPは、(すべてのコアを使用)を0に設定並列の
- コストのしきい値は5
に設定されているイスト私のCXPACKETが高いに待機していますか? MAXDOPとしきい値設定を変更する必要がありますか? または、私のSQL Serverが正常に見えるとお考えですか?
これは役立ちます:https://www.brentozar.com/archive/2013/08/what-is-the-cxpacket-wait-type-and-how-do-you-reduce-it/ - *短いストーリーは、あなたがそれを1つのプロセッサーのコア数に設定する必要があるということです。最大で8です。* – Prisoner
IO?私はそれがむしろ高く、遅れとCXPACKET待機をもたらすと確信しています。 CPUがどんなに速くても、ディスクが遅い場合は何もできません。 CXPACKETは、原因ではなく、IOが遅いという症状です。 DOPを減らすと、同じIOが完了するまでにコアが少なくなるため、CXPACKETの待機時間が短縮されます。 –
@PanagiotisKanavos:「CXPACKETはIOが遅いという症状です。私はその主張に挑戦する。スレッドが並列処理を待機する原因になるものはたくさんあります。 1つの例は、データヒストグラムが実際のデータ分布を反映しておらず、結果として1つのスレッドに他のスレッドより多くの作業が与えられることです。他のスレッドは「早期終了」し、過度に処理されたスレッドが終了するのを待って、CXPACKETがすべての時間待機します。 –