こんにちは。
純インフラエンジニアのねるです。
VMwareによる仮想環境の運用歴7年の大ベテランです。どや顔です。
今年は暖冬と言われていますが、最近は寒い日が続きますね。
既に立春は過ぎて、暦の上では春を迎えているはずなのですが、春分あたりまでは寒いのかもしれません。
ちなみに、春分の日は昼と夜の長さが等しくなる日とされています。今日はこれだけでも覚えて帰って下さいね。
さて、本題とは違いますがVMware vSphere ESXiを運用していると、CPUのReady値(準備完了)?なんだこれ?と気になる時がやってくると思います。
よく分からないけどCPUの使用率だけ見ておけば大丈夫っしょ!笑と思ってる皆さん、大間違いです。ちゃんとCPUのReady値も見ておかないと、痛い目を見ます。
CPUのReady値について説明する前に、VMware仮想環境におけるCPU割当の仕組みを解説しますね。
以下の図のようにESXi上のVM(仮想マシン)はCPUを使う処理をする場合、ESXiに対してCPUの割当要求をします。
そうすると、ESXiは物理サーバのCPUから空いているCPUを割り当てします。
割り当てられたCPUを使って、VMはOS上の処理等を実行します。
これがVMware仮想環境におけるCPU割当の仕組みです。
今説明したのは問題なくCPUを割り当てることが出来たパターンになりますが、
CPUの割り当てが出来ないパターンがあります。その時にCPUのReady値が登場します。
VMがOS上でCPUを使用する処理をするために、CPUの割り当て要求をESXiに投げた時に、物理サーバに空いているCPUがない(他のVMが占有している状態)場合、CPUの割り当てが出来ません。
そうした場合、仮想マシンはCPUが空くまで待ち状態となります。
CPUが空くまで待っている時間の割合がReady値(%)です。
仮想マシンのパフォーマンスチャートでは「準備完了」という項目で表示されています。
物理サーバのCPUを仮想マシン同士で奪い合い競合が発生する程、このReady値は高くなっていきます。
一般的に、10%を超えるとパフォーマンスに大きな影響が出ます。ただし、CPU時間に影響を受けないような処理は問題ありません。
慢性的にCPUのReady値が高い場合、別のESXiへvMotionをして負荷分散する等の対処を検討することをオススメします。
もしくは、仮想マシンのコア数の設定を減らすことも効果的です。1台が占有出来るCPU数が減りますからね。
ただ、減らした仮想マシンのパフォーマンスは当然遅くなるので、まずは別のESXiへvMotionをすることを推奨します。
VMwareは物凄く便利なツールです。
賢く使って更に効果的なパフォーマンスを発揮出来るよう、運用していきましょう。
グッバイ。