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-5 プロセッサリソースの割り振り設定が不十分なケース1(プロセッサ使用率監視時)
論理パーティションAのプロセッサ使用率が100%となっているため,割り振り比率を切り替えています。しかし,論理パーティションAのプロセッサ使用率は下がらないで,論理パーティションBのプロセッサ使用率は余裕がある状態となっています。このような場合は,割り振り比率の設定を変更してください。
次に示すグラフは,プロセッサリソースの割り振り設定が適切なケースです。
図1-6 プロセッサリソースの割り振り設定が適切なケース2(キュー内プロセス数監視時)
論理パーティション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) メモリー情報収集時の注意点
プロセッサと同様に,仮想化システム上のメモリー情報も動的なリソース変更によって全体からの割合が変動することがあります。
例えば,256MBのメモリー領域が割り当てられ,そのうち64MBを使用していたとき,PFM - Agent for Platformのメモリー使用量の割り当ては25%を示す値を表示します。この状態で,動的に256MBのメモリー割り当て領域が128MBに変更されると,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-44 仮想化システムごとのリソース対応
仮想化システム | リソース | |||
---|---|---|---|---|
プロセッサ数 | メモリー | ディスク | ネットワーク | |
VMware ESX Server 3.0 | △ | △ | △ | △ |
Virtage | △ | △ | - | △ |
(a) 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-10 VMwareの構造
・VMware ESX Server上でのPFM - Agent for Platformの利用
VMware ESX Server上でPFM - Agent for Platformを利用するに際には,次の点に注意してください。
(b) 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-45 仮想化システム別の収集データ範囲
レコード | VMwareおよびVirtage |
---|---|
PD | ゲストOS上のプロセス。 |
PD_APP | ゲスト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 | - |