PFM - Agent for Platformを用いた仮想化システムのパフォーマンス監視について説明します。
(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上のパフォーマンスデータを取得します。
(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-6 プロセッサリソースの割り振り設定が不十分なケース1(プロセッサ使用率監視時)
パーティションAのプロセッサ使用率が100%となっているため,割り振り比率を切り替えています。しかし,論理パーティションAのプロセッサ使用率は下がらないで,パーティションBのプロセッサ使用率は余裕がある状態となっています。このような場合は,割り振り比率の設定を変更してください。
次に示すグラフは,プロセッサリソースの割り振り設定が適切なケースです。
図1-7 プロセッサリソースの割り振り設定が適切なケース2(キュー内プロセス数監視時)
パーティションAのキュー内のプロセス数が多い状態で,プロセッサリソースの比率を切り替えています。その結果,パーティションAのキュー内のプロセス数が減少しています。
(b) 物理的なリソース追加が必要であるか判断したい場合
物理的なリソースが常に高負荷を示している場合,別途物理的なリソースの追加を検討してください。
ただし,仮想化システムでは一つのゲストOSまたは論理パーティションが高負荷でも,システム全体から見ると負荷が低いこともあります。そのため,すべてのゲストOS,またはすべての論理パーティションが高負荷であることを確認してください。
PFM - Agent for Platformで負荷状況を確認する際に,仮想化システムでは通常の環境と異なる見方が必要になることもあります。
仮想化システムではプロセッサやメモリーなどの動的に変更できるリソースが存在します。そのため,プロセッサやメモリーの使用率だけでなく,現在のキューの長さやページング頻度などの,リソースの動的変更の影響を受けにくい項目もあわせて監視してください。
次に示すグラフは,プロセッサリソースを例とするサンプルです。
図1-8 プロセッサリソースの追加が必要と推測されるケース(プロセッサ使用率監視時)
図の例では,パーティションBのプロセッサ使用率が高負荷のため割り当て比率を切り替えましたが,パーティションAとBどちらの使用率も高い状態となっています。このような場合は,物理的なリソースが不足しています。
(4) 仮想化システム上でPFM - Agent for Platformを利用する際の注意事項
仮想化システム上でPFM - Agent for Platformが収集するパフォーマンスデータは,各仮想マシンが対象です。このため,各仮想マシンにPFM - Agent for Platformをインストールしてください。
仮想化システム全体または管理マシン側から,各仮想マシンのパフォーマンスデータを収集することはできません。
各リソース情報収集時の注意点を次に示します。
(a) プロセッサ情報収集時の注意点
仮想化システム上で収集するプロセッサの使用率は,意図した値にならないことがあります。これは,仮想化システムがプロセッサのリソースの分割とほかの論理パーティションへの動的割り当てを行うためです。例えば,高負荷によって特定の論理パーティションでプロセッサリソースを大量に使用している場合は,別の論理パーティションでは少ないプロセッサリソースしか使えないことがあります。
図1-9 リソースの動的変更によって収集値が変更されるケース
また,ある論理パーティションのアプリケーションが物理的なプロセッサを使用している場合,別の論理パーティションのジョブが稼働中として待たされることがあります。このような場合には,プロセッサ使用率が正確に計測できません。
(b) メモリー情報収集時の注意点
プロセッサと同様に,仮想化システム上のメモリー情報も動的なリソース変更によって全体からの割合が変動することがあります。
例えば,256MBのメモリー領域が割り当てられ,そのうち64MBを使用していたとき,PFM - Agent for Platformのメモリー使用量の割り当ては25%を示す値を表示します。この状態で,動的に256MBのメモリー割り当て領域が128MBに変更されると,PFM - Agent for Platformはメモリー使用量として50%を示す値を表示します。アラームなどに指定した場合は,意図しない警告が発生することがあるため注意してください。
図1-10 メモリーリソースをアラームに組み込んだときのケース
(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-27 仮想化システムごとのリソース対応
仮想化システム | リソース | |||
---|---|---|---|---|
プロセッサ数 | メモリー | ディスク | ネットワーク | |
Zone | - | - | △ | - |
APV | ○ | ○ | △ | △ |
I-VM(VSE) | △ | △ | △ | △ |
VMware ESX Server 3.0 | △ | △ | △ | △ |
Virtage | △ | △ | - | △ |
(a) Zone
Solaris 10以降に実装されているZone機能は,ほかのOSで実現されている論理的なリソース分割機能(例:AIXのLPAR,VMwareなど)とは異なり,アプリケーション用のワークスペースを提供する機能です。このため,ほかのOS上の仮想化システムとは多少異なる位置づけとなります。複数のOSを一つのシステムで実現できる点など,利用方法は類似しています。次に,Zone機能の構造を説明します。
・Zone機能の構造
Zone機能は2種類存在し,システム全体とほぼ同義なものと,システムから与えられたアプリケーション用のワークスペースを表すものが存在します。前者をGlobal Zone,後者をLocal Zoneと呼びます。
通常の仮想化システムでは,ユーザー側から見るとリソースが完全に分離されますが,Zone機能による仮想化システムではディスク以外のリソースは,基本的にGlobal Zoneの所有物となります。
PFM - Agent for PlatformではGlobal Zoneの情報を収集できます。
図1-11 一般的な仮想化システムとZone機能の概念
Local Zoneでは,Global Zoneから見た1ファイルシステムを使用してZone機能が動作します。
Local Zoneでは,ファイルシステムの一部をGlobal Zoneのものを共有します。
次の図の例では,「zone a」,「zone b」および「zone c」以下にある「sbin」「usr」の実体は,「/」以下にある「sbin」と「usr」となります。
図1-12 Zoneの構築例
・Global Zone上でのリソース監視
PFM - Agent for PlatformがGlobal Zone上で動作する場合,ALL Zone Collection for Processプロパティの設定によって,プロセス情報を収集するZoneが選択できます。ALL Zone Collection for Processプロパティは,PFM - Web ConsoleのAgent Collectorサービスプロパティ一覧から設定します。ALL Zone Collection for Processプロパティの設定値を次に示します。
設定したプロパティは,PFM - Agent for Platform起動時に取得されます。ALL Zone Collection for Processプロパティが設定されていない場合は,デフォルト値の「Y」が設定されます。
Global Zone上でPFM - Agent for Platformが動作する場合に収集するプロセス情報を次の図に示します。
図1-13 Global Zone上で収集するプロセス情報
・Local Zone上でのリソース監視
PFM - Agent for PlatformがLocal Zone上で動作する場合,ALL Zone Collection for Processプロパティの設定に関係なくPFM - Agent for Platformが動作しているLocal Zoneのプロセス情報だけが収集されます。Local Zone上でPFM - Agent for Platformが動作する場合に収集するプロセス情報を次の図に示します。
図1-14 Local Zone上で収集するプロセス情報
(b) APV
・APVの機能
APVは,統合仮想化システムを実現する拡張機能です。APVには,次に示すような多数の機能があります。
・APVの構造
APVは幾つかのコンポーネントを利用し,仮想化システムを実現しています。
APVの構造を簡単に説明すると,Micro-Partitioning機能によって一つのプロセッサリソースを複数のLPARに割り当て,VIOS機能で限られた物理的なデバイスリソースを複数のLPARから使用できるようにしたものです。IVM(APV)はそれらを利用しやすくするためのソフトウェアです。
図1-15 APV構造
・APV上でのPFM - Agent for Platformの利用
APV上でPFM - Agent for Platformを利用する場合,プロセッサ,メモリーの情報が動的に変更されることに注意してください。また,プロセッサ情報を扱うレコードを利用する場合は,割り当てができるプロセッサ数と同じ数のインスタンスを作成する仮想化システムと,そうではない環境とで異なる運用が必要になる場合があります。
(c) I-VM(VSE)
・I-VM(VSE)の機能
I-VM(VSE)はVSE環境の一つの機能として提供されています。I-VM(VSE)は,プロセッサリソースを動的に5%単位で分割し,論理パーティションに割り当てることを可能にする機能(sub-CPUパーティショニング技術)です。この機能を使用すると,一つの物理プロセッサで最大20個の論理プロセッサを設定できます。この機能を利用すると,PFM - Agent for Platformは論理分割されたプロセッサのパフォーマンスデータを収集します。
プロセッサリソース以外にも,複数の論理パーティションからのI/Oの共有や,メモリーの仮想化などをサポートしています。I-VM(VSE)は,HP-UX以外にもLinuxをサポートしているため,Linuxの互換性も提供できます。
・I-VM(VSE)の構造
I-VM(VSE)が提供するプロセッサリソースの割り当て機能は,AIXが提供しているMicro-Partitioningとほぼ同じ機能になります。
図1-16 I-VM(VSE)構造
・I-VM(VSE)上でのPFM - Agent for Platformの利用
I-VM(VSE)上でPFM - Agent for Platformを利用する場合,プロセッサ,メモリー,デバイスの情報が変更されることに注意してください。
(d) VMware ESX Server 3.0
VMwareは,Intelアーキテクチャー上で仮想化システムを実現するソフトウェアです。ソフトウェア上で仮想化システムを実現するためはん用性が高く,さまざまな環境で柔軟な動作を提供します。
・VMware ESX Serverの機能
VMwareが提供する機能は,ほかの仮想化システムと同様に,次のようなものがあります。
上記機能をVMwareが管理し,組み合わせることで仮想的なマシンであるVM(Virtual Machine)を作成します。作成されたVMは,ほかのホストからは一つのホストとして認識され,通常の物理マシンと同様に扱えます。
VMは複数作成して稼働できるため,LinuxやWindowsなどのOSを同時に動作させることもできます。
・VMware ESX Serverの構造
VMwareはホストOSとゲストOSという区分を作り,仮想化システムを実現します。仮想化システムの手順を簡単に説明します。
上記の手順からわかるように,VMwareはホストOS上でゲストOSを実行することによって仮想化システムを実現するという,親子構造に似た形式をしています。
VMware ESX Serverの特徴として,ホストOSはWindowsやLinuxなどのOSではなく,専用のカスタムOSが使用されます。つまり,専用のカスタムOSがホストOSとしてあり,その上でWindowsやLinuxが動作する仮想化システムを実現します。
VMwareの種類によってはホストOSがカスタムOSではなく,WindowsやLinuxの場合もあります。
図1-17 VMwareの構造
・VMware ESX Server上でのPFM - Agent for Platformの利用
VMware ESX Server上でPFM - Agent for Platformを利用するに際には,次の点に注意してください。
(e) Virtage
・Virtageの機能
Virtageが提供する機能は,ほかの仮想化システムと同様に,次のようなものがあります。
上記機能をVirtageが管理し,仮想化システムを実現します。どのリソースの変更時にも,一度論理パーティションを停止する必要があります。
・Virtageの構造
VirtageはVMwareと同じような親子構造をしています。Virtageで仮想化システム構築の手順を簡単に説明します。
・Virtage上でのPFM - Agent for Platformの利用
Virtage上でPFM - Agent for Platformを利用するには,次の点に注意してください。
(6) 仮想化システム別の収集データ範囲
仮想化システムでPFM - Agent for Platformを利用する場合に,PFM - Agent for Platformが収集するデータの範囲を次の表に示します。
表1-28 仮想化システム別収集データ範囲一覧
レコード | Global Zone | Local Zone | APVおよびI-VM(VSE) | VMware ESX Server 3.0およびVirtage | |
---|---|---|---|---|---|
Shared-IP Non-Global Zone | Exclusive-IP Non-Global Zone | ||||
PD | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PD_APP | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PD_FSL | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のローカルディスク情報。 | ゲストOS上のローカルディスク情報。 |
PD_FSR | グローバルゾーンだけ。Local Zoneにマウントされたリモートファイルシステム(NFS)の情報は取得できません。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティションに登録済みのリモートファイルシステム情報。 | ゲストOSに登録済みのリモートファイルシステム情報。 |
PD_PDI | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PD_PDS | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PD_PGM | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PD_TERM | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PD_UPD | 指定された情報。 | 指定された情報。 | 指定された情報。 | 論理パーティション上でユーザーが独自に指定したパフォーマンスデータ。 | ゲストOS上でユーザーが独自に指定したパフォーマンスデータ。 |
PD_UPDB | 指定された情報。 | 指定された情報。 | 指定された情報。 | 論理パーティション上でユーザーが独自に指定したパフォーマンスデータ。 | ゲストOS上でユーザーが独自に指定したパフォーマンスデータ。 |
PD_USER | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PI | システム全体。※1 | システム全体。 | システム全体。 | 論理パーティション上のシステム値。 | ゲストOS上のシステム値。 |
PI_CPUP | システム全体。 | システム全体。 | システム全体。 | 論理パーティションに割り当てられたプロセッサ情報。 | ゲストOSに割り当てられたプロセッサ情報。 |
PI_DEVD | システム全体。 | システム全体。 | システム全体。 | 論理パーティションに割り当てられたディスク情報。 | ゲストOSに割り当てられたディスク情報。 |
PI_DEVS | システム全体。 | システム全体。 | システム全体。 | 論理パーティションに割り当てられたディスク情報。 | ゲストOSに割り当てられたディスク情報。 |
PI_NIND※2 | Global Zoneと全Shared-IP Non-Global Zoneで共有されているインターフェースの情報。 | - | - | 論理パーティションに割り当てられたNIC情報。 | ゲストOSに割り当てられたNIC情報。 |
PI_NINS※2 | Global Zoneと全Shared-IP Non-Global Zoneで共有されているインターフェースの情報。 | - | - | 論理パーティションに割り当てられたNIC情報。 | ゲストOSに割り当てられたNIC情報。 |
PI_UPI | 指定された情報。 | 指定された情報。 | 指定された情報。 | 論理パーティション上でユーザーが独自に指定したパフォーマンスデータ。 | ゲストOS上でユーザーが独自に指定したパフォーマンスデータ。 |
PI_UPIB | 指定された情報。 | 指定された情報。 | 指定された情報。 | 論理パーティション上でユーザーが独自に指定したパフォーマンスデータ。 | ゲストOS上でユーザーが独自に指定したパフォーマンスデータ。 |
PI_WGRP | システム全体。 | 自ゾーンだけ。 | 自ゾーンだけ。 | 論理パーティション上のプロセス。 | ゲストOS上のプロセス。 |
PL_MESS | 指定された情報。 | 指定された情報。 | 指定された情報。 | evfileまたはMessages Fileプロパティに指定したファイル。 | evfileまたはMessages Fileプロパティに指定したファイル。 |