1.3.4 仮想化システム上での運用

PFM - Agent for Platformを用いた仮想化システムのパフォーマンス監視について説明します。

<この項の構成>
(1) 仮想化システム上で運用する目的
(2) 仮想化システム上でのリソース監視について
(3) 仮想化システム上でのPFM - Agent for Platformの利用例
(4) 仮想化システム上でPFM - Agent for Platformを利用する際の注意事項
(5) 仮想化システムの機能と収集されるパフォーマンスデータ
(6) 仮想化システム別の収集データ範囲

(1) 仮想化システム上で運用する目的

仮想化システムの利点と,PFM - Agent for Platformを仮想化システムで運用する目的について説明します。

(a) 仮想化システムの利点

仮想化システムは,システムの余剰リソースを有効に扱える技術として注目されています。例えば,「1サーバ1アプリケーション」という状況の多い現在,ほとんどのサーバは余剰リソースを保持しています。具体的には,サーバのジョブが混雑する時間帯を除き5%~7%程のリソースを使用しているのが現状です。このような状況を解決するのに仮想化システムは適しています。

また,仮想化システムはほかにも次のような利点があります。

(b) パフォーマンス監視の目的

前述の「仮想化システムの利点」はシステムのリソースが過不足なく利用されているときに最大の恩恵を受けることができます。システムのリソースが過剰に消費されている,または逆にほとんど使用されていない場合,仮想化システムを有効に利用できていません。

このようなことは,リソースの消費状況を監視することで,現在のシステムが有効な設定であるか,そうでないか判断できます。

基本的には,PFM - Agent for Platformは物理的に一つのOSに関する情報を収集することを目的としています。しかし,使い方を工夫すれば,仮想化システムに依存するパフォーマンス情報についても監視できます。

PFM - Agent for Platformを用いた仮想化システムのパフォーマンス監視は,主に次の目的で使用できます。

仮想化システムでは特定のボトルネックによって,仮想化システム全体のパフォーマンスに悪影響を及ぼす場合があります。ボトルネックが発生する要因としては,次のようなものがあります。

ここでは,PFM - Agent for Platformを用いて仮想化システムのパフォーマンスを監視する方法について紹介していきます。なお,ここで表記されるパフォーマンス監視時のしきい値はあくまで参考値です。システムの構成,利用方法ごとに適切な値を検討してください。

(2) 仮想化システム上でのリソース監視について

(a) 概要

パフォーマンスを監視する上で最も重要なシステムリソースを次に示します。

仮想化システムでは,上記リソースのうち一部のパフォーマンスデータが収集できない,または動的に変更されることによって,利用上意味をなさないケースがあります。パフォーマンスは,OSごと,または仮想化システムによって変動します。

(b) 仮想化システム上へのPFM - Agent for Platformのインストール

仮想化システムは基本的に各種リソースを仮想化機能(ソフトウェアまたはハードウェア)で管理し,論理的なパーティションにそれらを割り当てることによって構築されます。管理されるリソースはプロセッサ,メモリー,ディスク,ネットワークなどです。

これらのリソースは,論理パーティション内にPFM - Agent for Platformをインストールすれば,インストールした論理パーティションのパフォーマンスデータとして取得できます。

また,仮想化システムにはゲストOSとホストOSに区分されるものがあります。VMWareやVirtageなどの,ソフトウェアベースで仮想化を実現している場合はこのケースとなります。ホストOSはゲストOSを管理するOSで,ゲストOSはホストOS上で動作するOSのことです。このような場合,PFM - Agent for PlatformをゲストOS上にインストールしてパフォーマンスを監視します。

PFM - Agent for Platformはインストールした論理パーティション,またはゲストOS上のパフォーマンスデータを取得します。

注意
VMWareのホストOSは,仮想化機能を管理するための特殊なOSのため,アプリケーションの動作が保証されていません。Virtageの場合は,管理領域がSVPフレームと呼ばれるディスク外領域に作成されるため,管理領域にはPFM - Agent for Platformで収集したデータをデータベースとして保存できません。

(c) 仮想化システム上でのPFM - Agent for Platformの設定

インストールしたPFM - Agent for Platformによって情報を収集する手順は,仮想化システムでも変わりません。既存の設定方法で設定し,利用できます。

仮想化システムによって仮想マシンを構築し,その上でPFM - Agent for Platformをインストールした場合,PFM - Agent for Platformは仮想マシンのパフォーマンスデータを収集します。

(3) 仮想化システム上でのPFM - Agent for Platformの利用例

仮想化システムを使用する際の簡単な利用例について説明します。

(a) 仮想化システムの設定を変更するべきか判断したい場合

特定のゲストOSまたは論理パーティション上でリソースを大量に消費しているにもかかわらず,物理リソースに余裕がある場合,仮想化システムの設定を変更することをお勧めします。

そのような状態かどうかを判定する材料として,PFM - Agent for Platformを利用できます。

次に示すグラフは,プロセッサリソースの割り振り設定が適切でないケースです。

図1-5 プロセッサリソースの割り振り設定が不十分なケース(プロセッサ使用率監視時)

[図データ]

論理パーティションAのプロセッサ使用率が100%となっているため,割り振り比率を切り替えています。しかし,論理パーティションAのプロセッサ使用率は下がらないで,論理パーティションBのプロセッサ使用率は余裕がある状態となっています。このような場合は,割り振り比率の設定を変更してください。

次に示すグラフは,プロセッサリソースの割り振り設定が適切なケースです。

図1-6 プロセッサリソースの割り振り設定が適切なケース(キュー内プロセス数監視時)

[図データ]

論理パーティションAのキュー内のプロセス数が多い状態で,プロセッサリソースの比率を切り替えています。その結果,論理パーティションAのキュー内のプロセス数が減少しています。

(b) 物理的なリソース追加が必要であるか判断したい場合

物理的なリソースが常に高負荷を示している場合,別途物理的なリソースの追加を検討してください。

ただし,仮想化システムでは一つのゲストOSまたは論理パーティションが高負荷でも,システム全体から見ると負荷が低いこともあります。そのため,すべてのゲストOS,またはすべての論理パーティションが高負荷であることを確認してください。

PFM - Agent for Platformで負荷状況を確認する際に,仮想化システムでは通常の環境と異なる見方が必要になることもあります。

仮想化システムではプロセッサやメモリーなどの動的に変更できるリソースが存在します。そのため,プロセッサやメモリーの使用率だけでなく,現在のキューの長さやページング頻度などの,リソースの動的変更の影響を受けにくい項目もあわせて監視してください。

次に示すグラフは,プロセッサリソースを例とするサンプルです。

図1-7 プロセッサリソースの追加が必要と推測されるケース(プロセッサ使用率監視時)

[図データ]

図の例では,論理パーティションBのプロセッサ使用率が高負荷のため割り当て比率を切り替えましたが,論理パーティションAとBどちらの使用率も高い状態となっています。このような場合は,物理的なリソースが不足しています。

(4) 仮想化システム上でPFM - Agent for Platformを利用する際の注意事項

仮想化システム上でPFM - Agent for Platformが収集するパフォーマンスデータは,各仮想マシンが対象です。このため,各仮想マシンにPFM - Agent for Platformをインストールしてください。

仮想化システム全体または管理マシン側から,各仮想マシンのパフォーマンスデータを収集することはできません。

各リソース情報収集時の注意点を次に示します。

(a) プロセッサ情報収集時の注意点

仮想化システム上で収集するプロセッサの使用率は,意図した値にならないことがあります。これは,仮想化システムがプロセッサのリソースの分割とほかの論理パーティションへの動的割り当てを行うためです。例えば,高負荷によって特定の論理パーティションでプロセッサリソースを大量に使用している場合は,別の論理パーティションでは少ないプロセッサリソースしか使えないことがあります。

図1-8 リソースの動的変更によって収集値が変更されるケース

[図データ]

また,ある論理パーティションのアプリケーションが物理的なプロセッサを使用している場合,別の論理パーティションのジョブが稼働中として待たされることがあります。このような場合には,プロセッサ使用率が正確に計測できません。

(b) メモリー情報収集時の注意点

プロセッサと同様に,仮想化システム上のメモリー情報も動的なリソース変更によって全体からの割合が変動することがあります。

例えば,256メガバイトのメモリー領域が割り当てられ,そのうち64メガバイトを使用していたとき,PFM - Agent for Platformのメモリー使用量の割り当ては25%を示す値を表示します。この状態で,動的に256メガバイトのメモリー割り当て領域が128メガバイトに変更されると,PFM - Agent for Platformはメモリー使用量として50%を示す値を表示します。アラームなどに指定した場合は,意図しない警告が発生することがあるため注意してください。

図1-9 メモリーリソースをアラームに組み込んだときのケース

[図データ]

(c) ディスク情報収集時の注意点

プロセッサリソースと同様に,ディスクビジー率が正確に計測できないことがあります。例えば,仮想化システム上で,一方が物理的なディスクリソースを使用している場合,もう一方はジョブが稼働中として待たされてしまうことがあるためです。

(d) ネットワーク情報収集時の注意点

PFM - Agent for Platformはネットワーク情報としてパケットの送受信だけを計測しています。そのため,仮想化システム上での利用は通常通り行えますが,ネットワーク情報に仮想ネットワークの情報が表示されるケ-スがあります。これは,仮想マシン上からOSが認識しているネットワーク情報をPFM - Agent for Platformが収集しているため誤りではありません。

(e) プロセス情報収集時の注意点

プロセス関連のパフォーマンスデータには,プロセスの数とプロセスが使用しているリソース量を示すものがあります。どちらも仮想化システム上では論理パーティション上のデータを取得するもので,仮想化システム全体のプロセス情報を収集するものではありません。

PFM - Agent for Platformは各論理パーティション上に存在するプロセスの数と,プロセスが使用しているリソース量の両方を収集します。

(5) 仮想化システムの機能と収集されるパフォーマンスデータ

仮想化システムでは,そのシステムの実現方法によって,提供しているリソースの仕組みなどが異なります。また,リソースの変更に関しても,論理パーティションの一時停止が必要なものとそうでないものがあります。論理パーティションの停止が必要な場合,PFM - Agent for Platformも一時停止するため,あまり影響を受けることはありません。しかし,論理パーティションの停止が必要でなく,動的にリソースが変更されるシステムの場合,PFM - Agent for Platformで取得したパフォーマンスデータは大きく影響を受ける場合があります。その場合は,動的なリソース変更に影響を受けにくいパフォーマンスデータを収集することをお勧めします。

仮想化システムごとに,収集できるリソースを次の表に示します。

表1-34 仮想化システムごとのリソース対応

仮想化システムリソース
プロセッサ数メモリーディスクネットワーク
VMware ESX Server
Virtage
(凡例)
△:論理パーティションの一時停止が必要
-:未対応

(a) VMware ESX Server

VMwareは,Intelアーキテクチャー上で仮想化システムを実現するソフトウェアです。ソフトウェア上で仮想化システムを実現するためはん用性が高く,さまざまな環境で柔軟な動作を提供します。

・VMware ESX Serverの機能

VMwareが提供する機能は,ほかの仮想化システムと同様に,次のようなものがあります。

上記機能をVMwareが管理し,組み合わせることで仮想的なマシンであるVM(Virtual Machine)を作成します。作成されたVMはほかのホストからは一つのホストとして認識され,通常の物理マシンと同様に扱えます。

VMは複数作成して稼働させることができるため,LinuxやWindowsなどのOSを同時に動作させることもできます。

・VMware ESX Serverの構造

VMwareはホストOSとゲストOSという区分を作り,仮想化システムを実現します。仮想化システムの手順を簡単に説明します。

  1. 実際のハードウェアに上にWindowsやLinuxなどのOSをインストールする。
  2. インストールしたホストOS上でVMwareをインストールする。
    このときVMwareをインストールしたOSを「ホストOS」と呼びます。
  3. VMwareを使いVMを作成する。
  4. 作成したVMにほかのOSをインストールする。
    VM上にインストールしたOSを「ゲストOS」と呼びます。

上記の手順からわかるように,VMwareはホストOS上でゲストOSを実行することによって仮想化システムを実現するという,親子構造に似た形式をしています。

VMware ESX Serverの特徴として,ホストOSはWindowsやLinuxなどのOSではなく,専用のカスタムOSが使用されます。つまり,専用のカスタムOSがホストOSとしてあり,その上でWindowsやLinuxが動作する仮想化システムを実現します。

VMwareの種類によってはホストOSがカスタムOSではなく,WindowsやLinuxの場合もあります。

図1-10 VMwareの構造

[図データ]

・VMware ESX Server上でのPFM - Agent for Platformの利用

VMware ESX Server上でPFM - Agent for Platformを利用するに際には,次の点に注意してください。

PFM - Agent for Platformのインストール
利用する際にはゲストOSにインストールしてください。VMware ESX ServerのホストOSはVMwareで仮想化システムを実現するための最適化されたカスタムOSのため,アプリケーションの動作が保証されていません。
プロセッサ情報
仮想化システムでは,ホストOSに十分なリソースが割り当てられていない場合,ホストOSの動作にも影響が出ます。特に,プロセッサリソースはその影響が顕著で,過負荷が発生したとき,VMに割り当てられているプロセッサリソースが不足しているのか,ホストOSのプロセッサリソースが不足しているのかが判断できない場合があります。
また,VMwareの特徴として,プロセッサ使用率の割り当て上限,または下限を設定し,その範囲であれば自動でリソースの変動が行われるため,使用率が大幅に変動するおそれがあります。
それらが想定される場合は,現在のキューの長さなどプロセッサリソースの動的変更の影響を受けにくい項目を監視してください。
メモリー
動的に変更されるリソースとして,アラームの設定には注意してください。使用しているメモリーが一定であっても,割り当てているメモリーリソースを減少させると,メモリー使用率は増加するため,意図しないアラームが通知されることがあります。
デバイス
ディスクのパフォーマンスデータはゲストOS上の論理パーティション群だけです。ホストOSを含むシステム全体のパフォーマンスデータは収集できません。ネットワークアダプター情報に関しては,ゲストOSに割り当てられた仮想的なネットワークアダプター情報を取得します。

(b) Virtage

・Virtageの機能

Virtageが提供する機能は,ほかの仮想化システムと同様に,次のようなものがあります。

上記機能をVirtageが管理し,仮想化システムを実現します。仮想ネットワーク,仮想プロセッサの割り当て数,仮想メモリーのリソースを変更するときは,論理パーティションを停止する必要があります。仮想プロセッサの割り当て率を変更するときは,論理パーティションを停止する必要はありません。

・Virtageの構造

VirtageはVMwareと同じような親子構造をしています。Virtageで仮想化システム構築の手順を簡単に説明します。

  1. インストールしたVirtageを起動する。
  2. 仮想マシンの作成および設定を行う。
  3. 仮想マシンを起動する。

・Virtage上でのPFM - Agent for Platformの利用

Virtage上でPFM - Agent for Platformを利用するには,次の点に注意してください。

PFM - Agent for Platformのインストール
VirtageはSVPフレームという特殊な環境に構築されます。そのため,SVPフレーム上にPFM - Agent for Platformをインストールすることはサポートしていません。
プロセッサ情報
Virtageは,論理パーティションを設定してから起動する仮想化システムのため,PFM - Agent for Platformの動作中にプロセッサ数が変更されることはありません。そのため,通常通り運用できますが,割り当てられたプロセッサ数と物理的に存在するプロセッサ数が一致しないことがあります。
メモリー
Virtageは,論理パーティションを設定してから起動する仮想化システムのため,PFM - Agent for Platformの動作中にメモリー量が変更されることはありません。そのため通常どおり運用できます。
デバイス
ディスクのパフォーマンスデータは論理パーティション群だけです。ホストOSを含むシステム全体のパフォーマンスデータは収集できません。ネットワークアダプター情報に関しては,論理パーティションに割り当てられた仮想的なネットワークアダプター情報を取得します。

(6) 仮想化システム別の収集データ範囲

仮想化システムでPFM - Agent for Platformを利用する場合に,PFM - Agent for Platformが収集するデータの範囲を次の表に示します。

表1-35 仮想化システム別の収集データ範囲

レコードVMwareおよびVirtage
PDゲストOS上のプロセス。
PD_APPゲストOS上のプロセスまたはサービス制御マネージャーに登録されているアプリケーションサービス。
PD_APP2ゲストOS上のプロセスまたはサービス制御マネージャーに登録されているアプリケーションサービスのパフォーマンスデータ。
PD_APPDゲストOS上のプロセスまたはサービス制御マネージャーに登録されているアプリケーションサービスのパフォーマンスデータ。
PD_APSゲストOS上のプロセス。
PD_APSIゲストOS上のプロセス。
PD_ASVCゲストOS上のサービス制御マネージャーに登録されているアプリケーションサービスのパフォーマンスデータ。
PD_DEVゲストOS上のファイルシステムドライバおよびカーネルドライバのデバイス。
PD_ELOGゲストOS上のイベントログ。
PD_GENDゲストOS上でユーザー定義したパフォーマンスデータ。
PD_PAGFゲストOS上のページングファイルのインスタンスに関するパフォーマンスデータ。
PD_PDIゲストOS上のプロセス。
PD_PENDゲストOS上のプロセス。
PD_SVCゲストOS上のサービス制御マネージャーに登録されているアプリケーションサービスのパフォーマンスデータ。
PD_UPDゲストOS上でユーザーが独自に指定したパフォーマンスデータ。
PD_UPDBゲストOS上でユーザーが独自に指定したパフォーマンスデータ。
PIゲストOS上のシステム値。
PI_ADゲストOS上のActive Directoryのパフォーマンスデータ。
PI_BRSR
PI_GENIゲストOS上でユーザー定義したパフォーマンスデータ。
PI_ICM6ゲストOS上のICMP関連パフォーマンスデータ。
PI_ICMPゲストOS上のICMP関連パフォーマンスデータ。
PI_IPゲストOS上のIP関連パフォーマンスデータ。
PI_IP6ゲストOS上のIP関連パフォーマンスデータ。
PI_LOGDゲストOSに割り当てられた論理パーティションのパフォーマンスデータ。
PI_NBT
PI_NETIゲストOS上のTCP/IP関連パフォーマンスデータ。
PI_PCSRゲストOSに割り当てられたプロセッサ情報。
PI_PHYDゲストOSに割り当てられた論理パーティションの合計値,または平均値のパフォーマンスデータ。
PI_SVRQゲストOSが提供するServerサービスのキューに関するパフォーマンスデータ。
PI_TCPゲストOS上のTCP関連パフォーマンスデータ。
PI_TCP6ゲストOS上のTCP関連パフォーマンスデータ。
PI_UDPゲストOS上のUDP関連パフォーマンスデータ。
PI_UDP6ゲストOS上のUDP関連パフォーマンスデータ。
PI_UPIゲストOS上でユーザーが独自に指定したパフォーマンスデータ。
PI_UPIBゲストOS上でユーザーが独自に指定したパフォーマンスデータ。
PI_WGRPゲストOS上のプロセス。
PI_WINS
(凡例)
-:該当しない