NutanixサイザーのCPUリソース計算について調べたこと

 概要

Nutanixサイザーはデフォルト設定ではCPUリソース計算のロジックが特殊なので少し調べてみた

 

 

免責事項

本記事の内容は推測多分に含んでおり、詳細については正しくない可能性があります。

実際に計算が微妙に合わない部分などもありますが、実際のサイジング結果から大きくずれているということはないので、

厳密さはないものの、CPU計算ロジックの概要としてお考え下さい。

 

 

CPUサイジングに関わる前提知識

CPUリソース計算のロジックが複雑になっている要因を一言でいえば、CPUモデル毎の性能差である。

つまり、同じ1コアでもCPUモデルによってその性能が大きく異なる。

もし5年前のCPU4コア必要なアプリケーションがあったとして、最新のCPUのコアでは2コアで済む場合もある。

そのようなケースで性能差を考えずに基盤更改の際に単純にコア数だけでサイジングをしてしまうとオーバーサイジングになってしまう。

昨今のソフトウェアはソケット単位ではなくコア単位の課金になっているケースが多いため、コア数が増えるとソフトウェアコストも増えてしまう。

 

そのため、きちんとCPUの性能差を理解して適切なサイジングをすることがコスト観点で重要となっている。

 

 

Nutanix SizerCPUリソース計算のロジック(Applied Weight利用時)

参考: Nutanix Sizer Help

 

Nutanix Sizerから出力されるBOMを見るとCPUリソースとして以下の項目がある。

 

今回議題にしているのはPhysical RAW CapacityCores)とEffective RAW CapacityCores)の違いについてである。

Physical RAQ CapacityCores)はその名の通り、物理的なコア数である。

この例では 24CoreCPUIntel 6442Y)8基利用されているので、合計で192コアとなっている。

 

問題はEffective RAW Capacityである。

この値は実際のコア数ではなく、基準となっているCPUのコアの何個分の性能か、ということを示している。

つまり、式で表すと以下のような感じになる

BOMCPUコア性能 / ベースのCPUコア性能)* BOMの物理コア数 = Effective RAW Capacity

 

ここでいうコア性能とはどのように定量的に評価されているのかだが、ここについてはSPEC Int 2017 Rateの値が参照されている。

この数値を利用して、ベースCPUコア性能に正規化して比較することで、ことなるCPU世代やモデルを単一の指標で比較・計算できるようにしている

 

BOMCPUに関しては、サイザー結果で構成されているCPUモデルの情報がそのまま使われている。(今回の例ではIntel 6442Y

一方でベースCPUは何が使われているのかだが、ここについては明確な言及がないものの、おそらくIntel E5-2680 v2と思われる(理由は後述)

 

これを先ほどの式に当てはめてみる。

BOMCPUコア性能(SPEC Int 2017 Rate Per Coreスコア)は、9.9

BOMCPU物理コア数は合計で192コア(前述)

ベースCPUのコア性能スコアは、4.44

 

式に代入すると、

(9.9/4.44)*192=428.1081

となり、Effective RAW Capacityと概ね一致する結果となる。

つまり、今回のBOMの構成はIntel E5-2680 v2のコアが約428コア分として評価されていることになる

 

なお、各CPUSpec Int 2017 Rate Per Coreは、Nutanix SizerWorkload 入力画面にある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つのCPUCPUリソース計算の前提としたCPUコア性能と、BOM構成で選択されたCPUコア性能)を同じ指標で比較できるようになっている。

 

 

ベースCPUモデルの根拠

これについてはどこかに記載があったわけではなくBOM作成時に自動的に組み込まれるPrism Centralのサイジング情報を根拠としている。

前項のサイジング要件の図を見てもらえばわかるように、Prism Centralのコア数は2.00となっている。一方でNutanixサイザーが自動で生成したPrism Centralのリソース情報は以下のようになっている。

 

 

つまり、vCPU 4コアで2:1であるため、物理CPU2コア分となる。

要するに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 CapacityWorkloadCPUコア数がそのまま比較・サイジングされる

 

 

 

コメント

このブログの人気の投稿

Dell XC モデルのFirmware更新(LTS 6.10)

(Nutanix)Dell XC モデルのアップグレード準備メモ(LTS 6.5.x -> 6.10)

Nutanixクラスタにノードを追加する