私は、16のCPUを搭載したサーバーで、a max degree of parallelism
が8、max worker threads
設定が0に設定されています。
所定の時間、私の信号待機は20%でしたが、その間の私のOS CPU使用率は25%を超えることはありませんでした。誰かが私の信号待機が非常に高かった理由を説明できますか?
私のベンダーはクラス最高のスコアリングシステムを使用しており、信号待機が10%以下であると予想します。(CPUを追加せずに)これを修正するにはどうすればよいですか?
- NUMAノードごとに8個を超えるCPU はないため、トレースフラグ8048は適用されません。
- 最大のインスタンス待機は
CXPACKET
(70%)、次にPREEMPTIVE_OS_PIPEOPS
(20%) cost threshold for parallelism
50に設定されています。上げる必要がありますか?何に?- これは、SQL Server専用の物理マシン(VMではない)です。
- 監視ツールを使用して、最も頻繁に実行されるクエリとプロシージャを特定しています。高CPU、高I / O、または高継続時間を確認しますか?通常、アプリはI / Oを集中的に使用するため、高いI / Oを調整します。しかし、問題はシグナル待機であるため、CPU使用率が高いことを確認する必要がありますか?
- アプリが追加のスレッドを必要とするウェアハウススタイルのクエリを実行するため、4 に下げるというMax Vernonの推奨を回避したいと思って
MAXDOP
いました。
アーロン、ありがとう!期間が長く、CPUが低いクエリを探します。
—
Chris Woods