インフラエンジニアも人間じゃない?

インフラエンジニアの備忘録

ESXiでソケットあたりのコア数を指定する意味

こんにちは。
今回はESXiでソケットあたりのコア数を指定する意味について確認したので軽くまとめます。

こちらのブログで仮想ソケット数を増やした場合に認識されない事を記事にされていました。
www.infra-engineer-blog.work

僕は今まで基本的に1ソケットにしていましたが、ソケットを分ける意味についてはあまり理解していませんでした。
WindowsSQLのライセンス等に制限がある場合もあるので、とりあえず1ソケットマルチコアにしていました。

VMのブログ等で解説されていますが、ソケットあたりのコア数oメモリがNUMAノードをまたがる様になるとメモリパフォーマンスが低下するため、
1つのNUMAノードに割り当てられているコアを超える数のvCPU・メモリを割り当てる場合、ソケットを分割すべきようです。

ESXiとNUMAについてはこちらの方が詳しく解説されていました。
sasaki.hateblo.jp

Haswell以前のアーキテクチャの場合は1ソケット=1NUMAノードという考えでとりあえず良さそうです。
ここまでの情報で考えると、現行の12コア2ソケット程度のサーバでは1NUMAノードあたり6CPUになるため、vCPUが6を超える場合はソケットを分割するほうがよさそうです。

なお、VMのブログによると6.5以降はソケットあたりのコア数は基本的にNUMAノードに影響しないようです。
blogs.vmware.com

現行のシステムであればあまり気にする必要は無いようですが、
メモリ・CPUパフォーマンスを重視する仮想マシンの場合はNUMAノードを考慮してソケットを分割する必要もありそうです。