web-dev-qa-db-ja.com

SQL Server仮想化のベストプラクティス-NUMA、HT、コアと速度

Cisco UCS + VMware ESX + HP3PARで実行します。

ホストブレードの構成:UCSB-B200-M4、Xeon E5-2667 v3 3.1GHz、2ソケット、各8コア、ハイパースレッディングアクティブしたがって、合計16の物理コアまたは32の論理コア。

M $のソフトウェアアシュアランスがあるので、すべてEnterpriseエディションであり、追加のSQLコアライセンスがたくさん支払われているので、お金は問題ではありません。

プライマリシングルOLTP SQL VMはホストの1つに「専用」です。つまり、他のVMの実行は許可されていません。16個すべてが必要です。パワーのコア。それでも、CPUは定期的に約60〜80%実行されるため、ハードウェアのアップグレードを計画しています。以下の質問:

http://imgur.com/a/1t8oQ

  1. SQLServerプロセッサのNUMA構成-16個のプロセッサすべてが1つのNUMAノード上にあります-しかし、ホストには2つのソケットがあるため、2つのNUMAノードがあると思いましたか?

  2. vCenter Socket/Core config-ソケットあたり1コアの16ソケット-基盤となるハードウェアと一致するため、これをソケットあたり8コアの2ソケットに変更する方が良いですか?

  3. 最近PASS会議で、VM全体が単一のホスト専用である場合は、ハイパースレッディングを無効のままにしておくと聞きました。誰もが同意/反対しますか?

  4. 基本的なペンペーパーの計算として、「計算能力」を50(16コアx 3.2Ghz)から約100GHzに2倍にする必要があります。
    2つのソケット間でコア数を増やす方がよいでしょうか。
    E5-4669:2ソケットx22コアx2.2 Ghz = 96.8 Ghz
    または4つのソケット間でより高いクロック速度:
    E5-4627:4ソケットx10コアx2.6 Ghz = 104 Ghz

1
d-_-b

最善の方法は、VMWareガイド「SQLServer onVMWareベストプラクティスガイド」を読むことです。これはあなたが必要とするすべての情報を保持します。しかしながら...

  1. インスタンスが「ワイドVM」として構成されていない限り、各ソケットからvCoreを取得すると、2つのNUMAノードは表示されません。ハイパースレッディングを有効にすると、1つのソケットでのみコアを使用します。 (3.3.4 NUMAの考慮事項)。

  2. ベストプラクティスガイドから:「vSphereプラットフォーム上のVMに仮想CPUを割り当てるときは、ソケットあたりのコア数を1に設定することをお勧めします。つまり、8個のCPUを必要とするVMは8個になりますそれぞれ1コアのvCPU。」(ソケットあたり3.3.5コア)。ただし、これは自分でテストしてください。

  3. 私が働いているところでは、答えは「状況次第」です。有効のままにしておくインスタンスもあれば、有効にしないインスタンスもあります。ただし...「ESXiがこのテクノロジーを利用できるように、BIOSでハイパースレッディングを有効にすることをお勧めします。」 (3.3.3ハイパースレッディング)

  4. ホスト上に他のインスタンスが存在しない場合、複数のインスタンスが存在する場合ほど大きな要因にはなりません。パフォーマンスを最大化する場合は、それらを別々のソケットに割り当てると便利です。残念ながら、客観的な判断を下すには、かなり多くのテストとデータキャプチャを行う必要があります。VMWareからこれに特に関連するものは何も見つかりませんでした。

ガイド全体に目を通し、それを読んでください: http://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/solutions/sql-server-on-vmware-best-practices-guide .pdf

他の考慮事項は、電源方式のチェックです。これらはCPUを非常に低く絞ることができるため、余裕のある最高のCPUからでも、パフォーマンスが非常に低下する可能性があります。

1
Stephen Falken

ベストプラクティスガイドから:

VSphereプラットフォーム上のVMに仮想CPUを割り当てる場合は、ソケットあたりのコア数を1に設定することをお勧めします。つまり、8個のCPUを必要とするVM)には、それぞれ1つのコアを持つ8つのvCPUがあります。

8つのCPUに1つのコアを設定すると、SQL Standard 2016は4つの正当なライセンスのみを使用し、MaxDOPの有用性が失われるため、これは悪いアドバイスのようです(現在のガイドには含まれていないようです)。

0
Matt B