web-dev-qa-db-ja.com

VMWare仮想サーバー上のSQL Server MAXDOP

VMWare仮想サーバーでMAXDOPを設定する場合、VMWareはMicrosoftのガイドラインに従うことをお勧めします

https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/solutions/sql-server-on-vmware-best-practices-guide.pdf

https://support.Microsoft.com/en-gb/help/2806535/recommendations-and-guidelines-for-the-max-degree-of-parallelism-confi

  • MAXDOPを論理プロセッサーの数以下に保つ
  • MAXDOPを8に保つ
  • MAXDOPをNUMAノードあたりの論理プロセッサー数以下に保つ
  • MAXDOPを8に保つ

同僚は、仮想CPUが異なると主張しています。SQLServerは、いくつ持っていても1 CPUにしかアクセスできず、MAXDOPは1に設定する必要があります。何年もの間、MAXDOPを上記のように設定しました。しかし、彼らが言っていることに真実はありますか?.

どうもありがとう

1
sja

あなたの同僚は間違っています。 SQL Serverは、コアが仮想かどうかに関係なく、並列処理を使用します。

実際、VMWare SQL Serverのベストプラクティスでは、明示的に次のようにリンクしています。

仮想環境でのこれらの構成の値に関して、インターネットにはかなりの誤解と誤ったアドバイスがあります。データベースで低いパフォーマンスが観察され、CXPACKETが高い場合、多くのDBAはMAXDOP値を1に設定して並列処理を完全に無効にすることを決定します。複数のCPUでの処理から利益を得る大きなジョブがある可能性があるため、これはお勧めできません。代わりに、CTFP値を5秒から約50秒に増やして、大きなクエリのみが並列で実行されるようにすることをお勧めします。 MAXDOPは、VMのNUMAノードのコア数に関するマイクロソフトの推奨事項に従って設定します(8以下)。

ただし、VMWareベストプラクティスガイドの作成者が混乱していることに注意します。値は秒単位ではなく、「コスト」単位です(別名 query bucks