シナリオ3では、それぞれ1基ずつのVCPUを割り当てたVMを2つ用意し、最初は1台のVMをアクティブにし、次に2台目のVMもアクティブにしてSMTPテストを実施しました。表8は、SMTPワークロードのもとで、1台のVMを実行したときのテスト結果です。
シナリオ1のOWAテストで得たVMの利用率(表4)に比べ、SMTPのワークロードではVCPUの利用率も、1秒あたりのコンテキストスイッチ数も明らかに増えています。プロセッサ時間を最も消費しているプロセスはInetinfoで、一部のオーバヘッドはESPツールから発生しています。図2では、OWAワークロードのもとで2台のVMをアクティブにすると、ESX ServerのCPU利用率がどのように変わるのかがわかります。このグラフから、アクティブにしたVMごとのVCPU利用率もわかります。
図2:2台のVMで300人のOWAユーザを処理したときの測定結果(再掲)
SMTPサーバの性能 VM0 |
%Processor Timeプロセッサ時間(%)、すなわちプロセッサ利用率 |
93.1 |
Context Switches/secコンテキストスイッチ数/秒 |
8702 |
Available Mbytes利用できるMB数 |
3142 |
SMTP Messages Sent/SecSMTPの送信メッセージ数/秒 |
28852 |
Process(Inetinfo)%Processor timeプロセス(Inetinfo)のプロセッサ時間(%) |
59.48 |
表2:IMAPワークロードを使用したときのVMデータ
次の図3は、同じSMTPワークロードのもとで2台のVMを実行したときの性能をグラフにしたものです。両方のVMともデフォルト設定を採用し、同量のプロセッサ・リソースが使えるようにしています。
図3:2台のVMに同量のCPUリソースを割り当て、SMTPワークロードを処理したときのテスト結果
次は、CPUリソースを動的に割り当てる機能を使い、一方のVM上でCPUリソース量を制限するテストを実施しました。このテストでは、VM0に対し、CPU利用率の最大値(Max)として50%を設定します。デフォルト設定は、Maxが100、Minが0となります。次のコマンドを使うと、VM0に設定されているMax値を表示することができます。
# cat /proc/vmware/vm/143/cpu/max 100
仮想マシンの最大値を変更するときは、次のコマンドが利用できます。
# echo 50 > /proc/vmware/vm/143/cpu/max
# cat /proc/vmware/vm/143/cpu/max 50
図4は、ESX Server上でVMが使用したCPUサイクル量をグラフにしたものです。VM0は、設定されたMax値を超えないように制御されているため、VM0のVCPU利用率が50%付近を推移していることがわかります。このテスト結果から、Max機能を使って特定のVMへのリソース量を制限すれば、その分、他のVMにリソースを回すことができ、より的確なサービスが提供できるようになります。
図4:CPUリソースの割り当て量が異なる2台のVMSを稼動し、SMTPワークロードを処理したときのテスト結果
ESX Serverは、必要最小限のリソースを確保するMin(最小値)オプションも提供しているので、例えば、サーバで稼動させるVM を優先度の高いものだけに限る場合、このMin が利用できます。
|