サーバー+ Calライセンスモデルを使用してSQL Server Enterprise 2012をインストールした後、それぞれ16コア(ハイパースレッディングを含まない)の2プロセッサーを搭載したコンピューターにサーバーを非常に大きな負荷にかけた場合、最初のプロセッサーの16コアは十分に活用されていませんでした。 2番目のCPUの最初の4コアは頻繁に使用され、最後の12コアはまったく使用されませんでした(このsqlサーバーバージョンには20コアの制限があるため)。合計CPU使用率は約25%と表示されていました。残念ながら、20個のコアにタスクが均等に分散されていたとしても、サーバーのパフォーマンスは非常に悪くなりました。
Windows ServerはESX Serverの下のVMWare仮想イメージで実行されていましたが、すべてのCPUがWindows Serverに割り当てられていました。
アフィニティ設定の変更(たとえば、ほとんどのコアをCPUに割り当て、他のコアをI / Oに割り当てるなど)を試みましたが、パフォーマンスの問題の解決には役立ちませんでした。
製品エディションをSQL Server Enterprise Core 2012にアップグレードすると、SQL Serverは2番目のプロセッサで以前に使用されていなかった12個のコアを利用できるだけでなく、すべてのプロセッサにタスクがより均等に分散されました。リクエストのバックログを処理するために、cpU使用率は約90%に跳ね上がり、追いつかれると約33%に下がりましたが、新しく更新されたバージョンにフェイルオーバーしたため、パフォーマンスは劇的に向上し、パフォーマンスの問題はなくなりました。
SQL Serverが負荷を不均一に分散させる原因を誰かが知っていて、12コアがアイドル状態である2番目のプロセッサの最初の4コアにほぼ独占的に依存していて、最初の16コアのそれぞれにいくつかのタスクのみを割り当てているのではないかと思いました。プロセッサ。また、製品エディションをアップグレードせずに使用されていた20コアに負荷をより均等に分散させる方法はありますか?
その質問の裏側は、SQL Serverが認識したすべてのコアに負荷を均等に分散し始めた原因となった製品アップグレードによって何が行われたのでしょうか。
これらの質問やリンクに回答するための洞察に感謝します。これにより、起こったことを理解する方法をよりよく理解するのに役立ちます。