TOPサーバ構築・運用> シェアの割り当てによるCPU リソースの制御
VMware ESX Server サーバ統合ガイド
VMware ESX Server サーバ統合ガイド

第14回:メール・プロトコル環境における仮想CPU(リソース管理編)

著者:デル   2006/9/15
前のページ  1  2  3  次のページ
シェアの割り当てによるCPU リソースの制御

   CPUリソースを割り当てたり、リソース量を制限したりする方法の1つに、「シェアの割り当て」があります。VMに与えたシェア数の比率に応じてプロセッサ・スケジュールを組むことで、CPUリソースの割り当て量を制御します。

   この方法では、各VMに特定のシェア数を与えます。VMが実際に獲得するCPU時間は、利用できる全シェア数のうち、与えられたシェアの割合と、現在のESX ServerホストにおけるCPUリソースの利用状況によって決まります。

   シェアとは、本質的にサービスの保証になります。2つのVMを稼動させ、一方のVMに2倍のCPUシェアを与えれば、そのVMに2倍のCPUサイクルが割り当てられますが、両方のVMともアクティブにすることができます。

   デフォルトでは、いずれのシングル・プロセッサVMにも1,000シェアが割り当てられ、リソースへのアクセス能力に差はありません。

   例えば、テスト中、VM IDが151であるVM0のステータスは、次のようになりました。
%less -S /proc/vmware/vm/151/cpu/status
vcpu vm type name uptime status costatus usedsec syssec wait
151 151 V vmm0:Exchang 1364647.127 WAITB NONE 74991.611 419.716 IDLE
waitsec idlesec readysec cpu affinity htsharing min max shares
1275933.220 1270388.050 3928.922 2 0,1,2,3 any 0 100 1000

VCPU
仮想CPUのID(識別子)
VM
仮想マシンのID
Type
VCPUの種類:「V」は、仮想マシンを示す
Name
VMに付けられた表示名
Uptime
VMをパワーオンしてからの経過時間
Status
現在のVCPUの実行状況: 実行(RUN)、実行可能(READY)、イベント待機(WAITまたはWAITB)、終了(ZOMBIE)
Cosststus
現在のSMP VMに対する協調スケジュールの状態: ユニプロセッサVMの場合「NONE」
usedsec
vcpuが使用したプロセッサ時間の累計
syssec
vcpuが使用したシステム時間の累計
wait
現在vcpuが待機しているイベントの種類
waitsec
vcpuの待機時間の累計
cpu
現在のvcpuプロセッサの割り当て
htsharing
ハイパースレッディングのシェア設定
Min
VM用に最小限確保されるプロセッサの割合(%)
Min
VM用に確保されるプロセッサの上限(%)
Shares
VMに割り当てられたCPUシェア数

表1:この出力結果の説明

   VM0には、前述のとおりデフォルトの1,000シェアが割り当てられており、このVMのステータスは、イベント待ちとなっています。VMに割り当てたCPUシェア数を変えるとどのような影響が出るのか調べるため、次のコマンドを実行し、シェア数を2,000に増やしました。

# proc 2000 > /proc/vmware/vm/151/cpu/shares

   次に、第13回で説明したシナリオ2と同じテストを実行しました。シナリオ2では、VM0の方がVM1より頻繁にCPUリソースにアクセスしていましたが、このテストでは、VM1の方が高いVCPU 利用率を示しました。VM1のVCPU利用率の方が高くなった理由は、VM0の利用できるリソース量が与えられたプロセッサ・シェア数に応じて増え、余裕ができたからです。

VMに割り当てたCPUシェア数とCPU利用率の関係
図1:VMに割り当てたCPUシェア数とCPU利用率の関係

   図1のグラフを見ると、VM0とVM1は同じ処理量を実行しているにも関わらず、VM0のVCPU利用率はVM1より低いことがわかります。このようにシェアを動的に割り当てられる能力は、1台のESX Serverホスト上で優先度の高いVMと低いVMを混在させるときに便利です。今回のテストで実証されたように、優先度の高いVMのシェア数を増やすか、優先度の低いVMのシェア数を減らすことで、リソース要件を満たすことができます。


CPUリソースの最小値と最大値の指定

   ESX ServerのCPUリソースを制御するその他の手段として、スレッショルド(しきい値)を設定する方法があります。「Min」(最小値)パラメータを使ってVMにプロセッサの割合(%)を設定すると、そのVMに最低限必要なCPUリソース量を確保することができます。たとえ、システムの合計シェア数が変わっても、設定した%値は維持されます。

   システムのCPU時間に空きがなく、VMに設定されたMin条件を満たすことができない場合、そのVMはパワーオンすることができません。この機能を活用すれば、異種ワークロードが同時発生する環境でVM内のアプリケーションを運用する場合、必要な応答速度やスループット性能を確実に達成することができます。

   運用規定としてSLA(サービスレベル合意)やQOS(クォリティオブサービス=サービスの質)を設けている組織では、VMに十分なCPUリソースを提供するよう、ESX Serverを構成することができます。Min設定と対照的なのが、Max(最大値)設定です。

   これは、たとえシステムのプロセッサ時間に余裕があっても、VMに与えるプロセッサの割合(%)が最大値を超えないように制御する機能です。このようにESX Serverでは、必要に応じてVMが利用するCPUリソース量の上限を定めることができます。

   以上のオプション設定や概念を実際に利用したのが、以降に示すテストです。VMにMin値やMax値を設定して、動作検証を行っています。

前のページ  1  2  3  次のページ

デル株式会社
著者プロフィール
著者:デル株式会社
デルはスケーラブル・エンタープライズ戦略の重要な要素の1つとして、VMware社の仮想化技術を用いたサーバ統合ソリューションを提供しています。業界標準技術を採用した、デルのPowerEdgeサーバとDell | EMCストレージから構成されるハードウェアプラットフォームと、仮想化ソフトウェア「VMware ESX Server」、仮想マシン管理ツール「VirtualCenter」、仮想マシンの無停止マイグレーション技術「VMotion」を組み合わせることにより、柔軟でコストパフォーマンスに優れるサーバインフラストラクチャが構築可能です。

http://www.dell.com/jp/


INDEX
第14回:メール・プロトコル環境における仮想CPU(リソース管理編)
  ESX Serverにおける仮想CPU のリソース管理
シェアの割り当てによるCPU リソースの制御
  シナリオ3