NutanixサイザーのCPUリソース計算について調べたこと
概要
Nutanixサイザーはデフォルト設定ではCPUリソース計算のロジックが特殊なので少し調べてみた
免責事項
本記事の内容は推測多分に含んでおり、詳細については正しくない可能性があります。
実際に計算が微妙に合わない部分などもありますが、実際のサイジング結果から大きくずれているということはないので、
厳密さはないものの、CPU計算ロジックの概要としてお考え下さい。
CPUサイジングに関わる前提知識
CPUリソース計算のロジックが複雑になっている要因を一言でいえば、CPUモデル毎の性能差である。
つまり、同じ1コアでもCPUモデルによってその性能が大きく異なる。
もし5年前のCPUで4コア必要なアプリケーションがあったとして、最新のCPUのコアでは2コアで済む場合もある。
そのようなケースで性能差を考えずに基盤更改の際に単純にコア数だけでサイジングをしてしまうとオーバーサイジングになってしまう。
昨今のソフトウェアはソケット単位ではなくコア単位の課金になっているケースが多いため、コア数が増えるとソフトウェアコストも増えてしまう。
そのため、きちんとCPUの性能差を理解して適切なサイジングをすることがコスト観点で重要となっている。
Nutanix
SizerのCPUリソース計算のロジック(Applied
Weight利用時)
Nutanix Sizerから出力されるBOMを見るとCPUリソースとして以下の項目がある。
今回議題にしているのはPhysical RAW Capacity(Cores)とEffective RAW Capacity(Cores)の違いについてである。
Physical RAQ Capacity(Cores)はその名の通り、物理的なコア数である。
この例では 24CoreのCPU(Intel
6442Y)が8基利用されているので、合計で192コアとなっている。
問題はEffective RAW Capacityである。
この値は実際のコア数ではなく、基準となっているCPUのコアの何個分の性能か、ということを示している。
つまり、式で表すと以下のような感じになる
(BOMのCPUコア性能 / ベースのCPUコア性能)*
BOMの物理コア数 = Effective RAW Capacity
ここでいうコア性能とはどのように定量的に評価されているのかだが、ここについてはSPEC Int
2017 Rateの値が参照されている。
この数値を利用して、ベースCPUコア性能に正規化して比較することで、ことなるCPU世代やモデルを単一の指標で比較・計算できるようにしている
BOMのCPUに関しては、サイザー結果で構成されているCPUモデルの情報がそのまま使われている。(今回の例ではIntel 6442Y)
一方でベースCPUは何が使われているのかだが、ここについては明確な言及がないものの、おそらくIntel
E5-2680 v2と思われる(理由は後述)
これを先ほどの式に当てはめてみる。
BOMのCPUコア性能(SPEC Int 2017 Rate Per Coreスコア)は、9.9
BOMのCPU物理コア数は合計で192コア(前述)
ベースCPUのコア性能スコアは、4.44
式に代入すると、
(9.9/4.44)*192=428.1081
となり、Effective RAW Capacityと概ね一致する結果となる。
つまり、今回のBOMの構成はIntel E5-2680 v2のコアが約428コア分として評価されていることになる
なお、各CPUのSpec Int
2017 Rate Per Coreは、Nutanix SizerのWorkload
入力画面にあるWorkload Processorから確認した。
Workload側のCPUリソース計算
前項にてBOM構成のCPUリソースの計算を示したが、同様にWorkload側も同じようにしなければ正しい比較ができないということになる。
例として、vCPU 400コア分を4:1でサイジングした場合を見てみる。
Workload入力時のWorkload Processorとして、Intel 6526Yを選択している(通常は既存環境のCPUモデルを選択する)
この時のBOMでのサイジング要件は以下のように表示されていた。
注目すべきはWorkload1 のコア数である。
入力したワークロード情報はvCPU 400コア(4:1)であるため、物理CPUでは100コアとして計算されるべきところが、236.79コアとして計算されている。
これは前述の通りApplied Weight Factorによって、E5-2680
v2のコア性能で正規化されてているためである。
実際の計算をしてみる
(6526Yのコア性能/E5-2680v2のコア性能)*物理コア数
= (10.53/4.44)*100=237.1622
つまり、入力されたCPU要件はE5-2680v2のコアが約237コア分であると算出されている。
これにより、本来性能の異なる2つのCPU(CPUリソース計算の前提としたCPUコア性能と、BOM構成で選択されたCPUコア性能)を同じ指標で比較できるようになっている。
ベースCPUモデルの根拠
これについてはどこかに記載があったわけではなくBOM作成時に自動的に組み込まれるPrism
Centralのサイジング情報を根拠としている。
前項のサイジング要件の図を見てもらえばわかるように、Prism
Centralのコア数は2.00となっている。一方でNutanixサイザーが自動で生成したPrism Centralのリソース情報は以下のようになっている。
つまり、vCPU が4コアで2:1であるため、物理CPUは2コア分となる。
要するにApplied Weight Factor適用前と後のCPUコア数の要件が一致していることになる。これはつまりWorkload ProcessorとベースCPUモデルが同じ性能スコアの場合ということになる。
上図をみるとWorkload Processor としてE5-2680 v2 が選択されているため、このCPUとサイザーのベースCPUは同じ性能スコアであるということがわかる。
そのため、本記事ではこのCPUがベースCPUであるとして計算をしている。
純粋なコア数でサイジングをしたい場合
既存環境の置き換えの場合など、CPUの性能差を考慮することは非常に重要ではあるが、場合によっては純粋なコア数で比較したいケースもある。
その場合はApplied Weight Factorをオフにしてしまえばよい。
Nutanix サイザーのWorkload タブで該当クラスタのModifyを選択してPlatform Settingsを開く。そこにApplied
Weight Factorのスイッチがあるのでそこからオフにすればよい。
そうすれば、Physical RAW CapacityやWorkloadのCPUコア数がそのまま比較・サイジングされる
コメント
コメントを投稿