エンジニアの皆さまお疲れ様です。
五代です。
VMware社のハイパーバイザ・ESXiのリソース設定にて、気になったことがあったので備忘がてらに書きます。
ESXiの仮想マシンにはこんな機能がある
ESXi上の仮想マシンには、CPUやメモリ等のリソースを「予約」する機能・「制限」する機能・「シェア」する機能が備わっている。最初の2つの機能は読んで字の如く、仮想マシンが使用するリソースをユーザが明示的に確保させるものである。
通常、仮想マシン達は、下記図の様に仮想ホストのリソースを各々が必要な時に使用し、不要な時は互いに譲り合っている。※あくまでイメージで!
そのため、特定の仮想マシンに優先的にリソースを振りたい!とか、この仮想マシンはこれ以上のリソースを使ってほしくないなー…という時に「予約」と「制限」の機能で仮想マシンのリソースを任意に設定してあげる訳ですねー。
じゃあこの一番上の「シェア」ってなんなのよ、仮想マシンってもともとリソースをシェア(共有)しとるやんけ、と思ったところで調査したのでメモ。
シェア機能ってなんすか
結論から言うと、他の仮想マシンと共有するリソースの比率である。
下記図の枠で括った箇所が「シェア値」と呼ばれるもので、仮想マシン作成時に設定したソケット数およびコア数に1000(定数)をかけたものが表示される。
例) ソケット数:1、コア数:4 の仮想マシンの場合
(シェア値) = 1 × 4 × 1000 = 4000
このシェア値が各仮想マシンに振られており、この比率がそのまま各仮想マシンのリソース使用量の比率となる。以下は、仮想ホストサーバCPU:6GHz×1、各仮想マシンのCPU:3GHz×1で、1つのコアを2つの仮想マシンのCPUで共有しているイメージである。
シェア値が高ければ高いほど、設定した仮想マシンには多くリソースが振られる訳ですね。ちなみにシェア値の設定には、「標準」以外にも「低」・「高」・「カスタム」が選択でき、「高」「標準」「低」のシェア値の割合は4:2:1となります。カスタムは任意値。
例) ソケット数:1、コア数:4 の仮想マシンの場合
「高」設定:シェア値 = 8000
「標準」設定:シェア値 = 4000
「低」設定:シェア値 = 2000
うーん、気になって調べてみたけど、どういう時に使うんだろこれ…2台の仮想マシンだけで考えたけど、実際もっと仮想マシンがある環境(数十台)とかだと設計だけで頭がパンクしそうだし、「割合」で設定するシェア機能より「実値」で設定する予約機能の方が使える気がする…。
「こういう機会に使うんだぞルーキー」というコメントがあればぜひお願いします。