(57)【要約】      （修正有）【課題】コンピュータ性能状態の変化、処理状態の変化、あるいは異常を、短時間で検知できるようなコンピューティング環境の性能状態を簡易に管理するシステムを提供する。【解決手段】プロセッサは、複数の処理においてプロセッサの性能に関連するイベントの検出割合を取得するＳ３。プロセッサは、検出割合に基づいて、複数の処理でのイベントの検出に対する情報量の平均値を計算する第１の計算、または、複数の処理のそれぞれについて、所定時間を隔てた前後で取得されたイベントの検出割合同士の差分値を求め、差分値の絶対値を複数の処理について加算した加算値を計算する第２の計算、の少なくとも一方を実行するＳ４。【選択図】図１０
2018088075.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを備え、
前記プロセッサが複数の処理において前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方を実行する情報処理装置。
【請求項２】
解析装置と複数のプロセッサを備える情報システムであって、
前記解析装置は、前記複数のプロセッサのそれぞれ複数の処理において検出される前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方を実行する制御部を備える情報システム。
【請求項３】
前記制御部は、前記期待値および前記加算値を前記所定時間ごとに計算し、前記所定時間を隔てた前後における前記期待値および前記加算値の少なくとも一方の変化量が許容範囲から逸脱した場合に、異常発生を報知する請求項２に記載の情報システム。
【請求項４】
プロセッサが、
前記プロセッサの複数の処理において前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方を実行する情報処理方法。
【請求項５】
解析装置と複数のプロセッサを備える情報システムにおける情報処理方法であって、
前記解析装置は、前記複数のプロセッサのそれぞれ複数の処理において検出される前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方を実行する情報処理方法。
【請求項６】
プロセッサに、
前記プロセッサの複数の処理において前記プロセッサの性能に関連するイベントの検出割合を取得させ、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平
均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方の処理を実行させるためのプログラム。
【請求項７】
解析装置と複数のプロセッサを備える情報システムにおける前記解析装置に、
前記複数のプロセッサのそれぞれ複数の処理において検出される前記プロセッサの性能に関連するイベントの検出割合を取得させ、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方の処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報システム、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
今日、クラウドコンピューティングによるサービスが提供されている。クラウドコンピューティングは、利用者に、計算機を構成可能な共用のコンピューティングリソースの集積に、簡便にネットワーク経由等でアクセスすることを可能とする計算機システムといえる。ここで、コンピューティングリソースは、例えば、ネットワーク、サーバ、ストレージ、アプリケーション、サービス等である。クラウドコンピューティングによるサービスは、簡易な利用手続きまたはサービスプロバイダとのやり取りにより、速やかに利用者に割り当てられ提供される。さらに、今日のクラウドコンピューティングは、コンピューティングリソースが仮想化された仮想計算機環境で提供される場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−４１５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、コンピューティングリソースが仮想化されることに伴い、クラウドの複数テナント、つまり、サービスを受ける利用者による資源共有が発生し、コンピュータ環境が大規模複雑化する。このために、クラウドコンピューティング環境の管理が困難になってきている。すなわち、仮想計算機環境やクラウドコンピューティング環境では、コンピュータの性能低下の検知、性能異常の検知、走行ソフトウェア上の問題発生個所（hotspot
）の特定は困難になってきている。
【０００５】
さらに、これまでの非仮想化環境と異なり、仮想計算機環境では、異常要因が１つの仮想計算機（ＶＭ）の外部からの干渉に起因する場合がある。このような異常においては、問題調査時には外部からの干渉の変化により異常が一旦解消していて、再現されず、調査そのものが行えない場合もあり、その結果、問題解決に時間を要することがある。
【０００６】
本発明の課題は、コンピューティング環境の性能状態を簡易に管理可能にすること、例えば、コンピュータ性能状態の変化、処理状態の変化、あるいは異常を短時間で検知できる技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一側面は、情報処理装置によって例示できる。本情報処理装置は、プロセッサを備える。プロセッサは、複数の処理において前記プロセッサの性能に関連するイベントの検出割合を取得する。そして、プロセッサは、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、の少なくとも一方を実行する。
【発明の効果】
【０００８】
本情報処理装置によれば、コンピューティング環境の性能状態を簡易に管理可能にし、
例えば、コンピュータ性能状態の変化、処理状態の変化、あるいは異常を短時間で検知できる。
【図面の簡単な説明】
【０００９】
【図１】仮想計算機システムの構成を例示する図である。
【図２】計算機上の性能イベントのサンプリングと性能解析を実行するための計算機の構成を例示する図である。
【図３】採取された情報を基にＣＰＵ使用率を解析する処理を例示する図である。
【図４】比較例でのＣＰＵ使用率の解析結果を例示する図である。
【図５】段階的分析の処理例である。
【図６】ＨＰＣとクラスタとにおいて、ＣＰＵを占有したスレッドの内訳を比較して例示する図である。
【図７】実施形態において監視対象の情報システムの構成を例示する図である。
【図８】実施形態の情報システムが性能イベントをサンプリングするときのデータフローを例示する図である。
【図９】ＣＰＵ使用率の収集結果を例示する図である。
【図１０】情報システムにおけるプロファイル解析処理のフローチャートを例示するである。
【図１１】実施形態の処理によって計算されるエントロピー（またはマンハッタン距離）、移動平均値、および、２σまたは３σの範囲を例示する図である。
【図１２】解析マシンによる複数物理マシンのデータに対する解析処理を例示する図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、一実施形態に係る情報システムについて説明する。以下の実施形態の構成は例示であり、本情報システムは実施形態の構成には限定されない。以下、コンピューティング環境の性能状態の管理を簡易に実現し、例えば、コンピュータ性能の変化、あるいは異常を短時間で検知できる情報システムを説明する。
［比較例の処理］
【００１１】
図１は、比較例の仮想計算機システムの構成を例示する図である。比較例の仮想計算機システムは、物理計算機であるホストマシン上に仮想計算機基盤であるハイパーバイザが稼働し、ハイパーバイザが仮想計算機を提供する。以下、仮想計算機を仮想マシンともいう。ハイパーバイザによって提供されるそれぞれの仮想マシンでは、それぞれのゲストＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）が稼働し、それぞれのゲストＯＳ上で業務Ａ、Ｂ、Ｃ等のアプリケーションプログラムが実行されている。
【００１２】
ここで、業務Ｂのアプリケーションプログラムを実行する仮想マシンのＣｅｎｔｒａｌ
Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）使用量が増加した場合を想定する。図では、業務Ａ、Ｂ、Ｃは、実質的に同一のホストマシン上の物理ＣＰＵに割り当てられるため、業務Ｂの仮想マシンのＣＰＵ使用量が増加すると、業務ＡおよびＣに割り当て可能なホストマシン上のＣＰＵリソースが減少する。したがって、業務ＡおよびＣを実行する仮想マシンの性能が低下する。
【００１３】
図１の環境では、仮想マシン間の相互干渉によって性能低下が発生するため、業務ＡおよびＣを実行する仮想マシンを個別に調査しても、原因を特定できない場合がある。特に、図で例示した業務Ｂの仮想マシンのＣＰＵ使用量が変動する場合、業務ＡおよびＣを実行する仮想マシンでは、問題を再現することができず、原因特定が困難となる。
【００１４】
図２は、計算機上の性能イベントのサンプリングと性能解析を実行するための計算機の
構成を例示する図である。ここで、性能イベントとは、計算機の性能を監視するために、計算機から取得される計算機のリソースの状態を示す情報、あるいは計算機の様々な処理の実行を示す情報といえる。性能イベントとしては、ＣＰＵの１サイクルの完了、ＣＰＵの命令実行完了、キャッシュミス、ページフォルト等を例示できる。性能イベントのサンプリングの結果として、ＣＰＵの使用率、実行命令数、キャッシュミス、ページフォルト回数等が取得される。
【００１５】
例えば、計算機上で実行されるプログラムごと関数ごとのＣＰＵ使用率は以下のように取得される。ＣＰＵには、Ｐｅｒｆｏｒｍａｎｃｅ  Ｍｏｎｉｔｏｒｉｎｇ  Ｃｏｕｎｔｅｒ（ＰＭＣ）と呼ばれるレジスタを有するものがある。また、ＰＭＣを有するＣＰＵは、ＰＭＣで監視するイベントの種類およびカウンタ上限値を設定するレジスタを有する。ＰＭＣのカウンタが設定された上限値を超えるとオーバーフロー割り込みが発生する。オーバーフロー割り込みにより、ＯＳカーネル中のドライバ（ｓａｍｐｌｉｎｇ  ｄｒｉｖｅｒ）が起動されるので、ドライバは、起動されたタイミングで種々の情報、例えば、実行中のプロセスのＩＤ、実行中のメモリのアドレス（プログラムカウンタ値）等を採取できる。ドライバは、採取した情報（採取データという）を主記憶に保持する。このようにして、オーバーフロー割り込みが発生するごとに、実行中のプロセスのＩＤ、実行中のメモリのアドレス等が採取される。
【００１６】
なお、ハードウェアタイマ割り込みを利用して、タイムベースでプログラムカウンタ（ＰＣ）のサンプリングを行なうことで、プログラムの問題箇所は同定可能である。このようなハードウェアタイマ割り込みを利用する処理ではプログラム中で問題が発生している箇所が検知されえるが、どんなイベントによって、問題が発生しているかなどの情報は提供されない。一方、ＰＭＣを用いることで、プログラムカウンタ値による問題発生箇所の情報とともに、その問題を引き起こした原因に関連する可能性のあるイベントの種類が特定されることになる。
【００１７】
図３は、採取された情報を基にＣＰＵ使用率を解析する処理を例示する図である。ここでは、ＣＰＵにおいて、プログラムＡ、Ｂ、Ｃが動作中であったと想定する。また、オーバーフロー割り込みがある時間ごと（１ｍｓごとなど）に発生する場合を想定する。すると、図３でＯｖｅｒｆｌｏｗ割り込み（Ｓａｍｐｌｉｎｇ割り込み）と記載された矢印のタイミングでドライバが起動され、実行中のプロセスのＩＤと、メモリのアドレスが採取される。実行中のプロセスのＩＤと、メモリのアドレスが特定できれば、そのプロセスで実行されているプログラムの実行形式（バイナリファイル）から、実行中の関数、あるいは、実行中の命令が特定できる。したがって、ドライバによって採取された情報を集計すると、図３の表のように、プログラムごと関数ごとにイベントのサンプリング数、例えば、ＣＰＵの使用率が取得される。実行命令回数、キャッシュミス数等も上記と同様の手順で取得できる。なお、図３の表のような性能情報の内訳を示す情報をプロファイルと呼ぶ。ここで、内訳は、例えば、情報システム内のＣＰＵごとの内訳、ＣＰＵ毎プロセス毎の内訳、ＣＰＵ毎プロセス毎関数毎の内訳等が例示できる。
【００１８】
取得された性能イベントの収集結果を解析し、異常箇所の特定を効率的に実行するため、性能プロファイラと呼ばれる解析支援ツールが提供されている。性能プロファイラは、プロセス単位や関数単位での実行比率情報（プロファイル）を提供し、表示する。
【００１９】
性能プロファイラは、問題発生環境にて、例えば、１ミリ秒間隔で６０秒間のデータ採取（サンプリング測定）を行い、サンプリングデータを基に統計解析を行う。さらに、性能プロファイラでは、アプリケーションの「挙動変化の把握」や「間欠障害の発見」のために時系列解析手法が用いられている。
【００２０】
図４は、比較例でのＣＰＵ使用率の解析結果を例示する図である。図４（Ａ）は測定時間全体を所定の時間間隔に区切り、時系列グラフで表現したものであり、図４（Ｂ）は、測定時間全体の集計結果である。ここで、測定時間全体は３０秒であり、時系列グラフの区切りの時間間隔は１０ｍｓである。
【００２１】
図４の（Ｂ）では、プロセスＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５のＣＰＵ消費時間とアイドル時間の割合が図示されている。図４（Ｂ）の測定時間全体の集計結果の例では、ＣＰＵの動作、性能について、特異な状態は把握できない。
【００２２】
一方、図４の（Ａ）のように、ＣＰＵ消費時間の割合を所定の時間間隔（例えば１ｍｓ）に区切って集計した時系列グラフにすると、一時的に発生した性能の変化、あるいは異常が検知可能となる場合がある。例えば、図４（Ａ）の時刻２２秒から２３秒の付近で、プロセスＰ３、Ｐ４、（Ｂ）には現れなかったＰ６とＰ７のＣＰＵ消費量が一時的に急増し、その後低下している。
【００２３】
さらに、性能イベントの収集結果を解析する手法として、クラスタリングと呼ばれる手法が知られている。クラスタリングでは、時系列データが時間軸方向やノード単位あるいはＣＰＵ単位でグループ化された解析結果が表示される。したがって、クラスタリングによりサンプリング結果が数グループ程度に集約され、大局的に挙動が把握される。そして、問題の発生が懸念されるグループに対しては従来通りの詳細なプロファイルが取得される。
【００２４】
ここで、クラスタリングとは、特徴が似ているデータ同士を自動的にグループ化するデータ分類方法をいい、教師なしの機械学習手法の１つである。クラスタリングは、データマイニングやパターン認識などの様々な分野で利用されている。基本的なクラスタリング手法としては、階層型クラスタリングと非階層型クラスタリングが存在する。階層型クラスタリングでは、データが階層的に分類される。階層型クラスタリングの計算量はＯ（Ｎ２）  （Ｎはデータ数）である。一方、非階層型クラスタリングでは、データが特定のクラスタ数のフラットなクラスタに分類される。非階層型クラスタリングとしてはＫ−ｍｅａｎｓクラスタリングなどが知られている。Ｋ−ｍｅａｎｓクラスタリングでは、計算量はＯ（Ｎｋ）  （Ｎはデータ数、ｋはクラスタ数）である。
【００２５】
本比較例では、以下のような段階的分析を検討する。この分析では、まず、ノード間分析を実行する。ノード間分析では、情報システムの性能イベントの集計結果をノードと呼ばれるコンピュータシステムの単位ごとに取得する。そして、ノードごとに時系列データをクラスタ分析する。
【００２６】
図５は段階的分析の処理例である。例えば、図５の上段では、８つのノードの性能イベントの時系列データがＧＲＯＵＰ１とＧＲＯＵ２の２つのグループにクラスタリングされている。そして、８つのノードのうち、他のノードとはことなる動きをするノードが異常発生の可能性のあるノード（以下、単に異常ノードという）として抽出される。
【００２７】
そして、図５の下段では、異常ノードについて、性能イベントの時系列データが詳細化して表示される。その結果、問題の時間帯に、性能イベントに関与するプロセス、例えば、ＣＰＵ消費率の高いプロセス（図５では、ｓａｒコマンドを実行するプロセス）が抽出される。
【００２８】
しかしながら、このような比較例の方法は、主としてＨｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ（ＨＰＣ）での利用が想定されている。ＨＰＣはクラウドと類似し、複数ノードのコンピュータが連携する大規模システムである。しかし、ＨＰＣでは、
各ノードで同様な処理が動いていることが多い。したがって、ＨＰＣでは、このような処理の特性を前提にして、大部分のノード（あるいはプロセス等）とは異なる少数派のノード（あるいはプロセス等）を検出することで問題箇所の特定が可能となること場合がある。
【００２９】
しかし、クラウドでは、多種多様なアプリケーションプログラムが動作し、ノードあるいはプロセス等の負荷の比率（負荷パターンともいう）が多種多様となり得るため、単純なクラスタリングだけでは効果が薄い。つまり、クラウドでは、ノード毎、あるいはプロセスごとに、性能イベントの発生状況を単にグルーピングしただけでは異常を見分けることが困難となる場合がある。
【００３０】
図６に、ＨＰＣとクラスタでのある時間帯（０から３０秒まで）のＣＰＵを占有したスレッドの内訳を比較して例示する。図６の上側はＨＰＣ内のあるＣＰＵでのスレッドの内訳であり、単一のスレッドがこの時間帯（０から３０秒まで）を通じて実行されている。一方、図６の下側は、クラスタ内のあるＣＰＵでのスレッドの内訳であり、複数スレッドが３０秒間にＣＰＵを順次占有していることが理解できる。したがって、クラスタ環境では、クラスタリング処理が有効でない場合がある。
【００３１】
さらに、クラスタリングは、性能イベントの発生状況（時系列のグラフ等）が類似する複数ノード（あるいは複数プロセス）を探索する処理となるため、負荷が重い。したがって、大規模なクラスタでは、クラスタリングによってリアルタイムに解析する処理は負荷が重くなり、実行が困難となる場合がある。
【００３２】
そこで、以下の実施形態では、秒レベルまたはそれ以下の高精細で、クラスタリング等の比較例の処理より低負荷で、大規模システムにおいても、リアルタイムな変化検知（異常検知）が可能な処理方法が例示される。また、以下の実施形態では、ＨＰＣの様に、単一のスレッドが継続するなど、限定された種類の処理が実行されていることが前提とされない。つまり、クラスタのように多種多様なアプリケーションプログラムが動作する場合にも、性能イベントの取得結果から異常を検知できる情報処理方法が例示される。さらに、以下の実施形態では、異常要因分析のためのプログラムの問題発生箇所であるhotspot
情報（プロファイル情報）が異常検知ととともに提供される。
［実施形態］
＜構成＞
【００３３】
以下、図７から図１２を参照して、一実施形態に係る情報システムを説明する。図７は、本実施形態において監視対象の情報システムの構成を例示する。本情報システムは、コントローラマシン１と、複数のホストマシン２−１から２−３等を有する。なお、ホストマシン２−１から２−３等を総称する場合には、単にホストマシン２という。ただし、ホストマシン２の数が３個に限定される訳ではない。ホストマシン２はノードとも呼ばれる。
【００３４】
コントローラマシン１は、情報システム全体を監視し、制御する。コントローラマシン１は、ＣＰＵ、主記憶装置、外部記憶装置、ディスプレイ、入力装置、通信インターフェース等を有する。コントローラマシン１のＣＰＵは、主記憶装置に展開されたコンピュータプログラムを実行し、コントローラマシン１としての処理を実行する。主記憶装置は、ＣＰＵが実行するコンピュータプログラムあるいはＣＰＵが処理するデータを記憶する。外部記憶装置は、ＣＰＵが処理するデータを保存する。ディスプレイはＣＰＵが処理するデータ等を表示する。入力装置は、ユーザの操作を受け付け、ＣＰＵに入力する。通信インターフェースは、ネットワークを通じて、ホストマシン２等と通信する。図７では、コントローラマシン１としては、１台が例示されているが、コントローラマシン１は複数の
コンピュータが連携するシステムであってもよい。
【００３５】
ホストマシン２は、物理ＣＰＵを有する。なお、図７では、ホストマシン２のＣＰＵ以外のハードウェアは省略されているが、ホストマシン２はコントローラマシン１と同様、主記憶装置、外部記憶装置、通信インターフェース等を有する。さらに、ホストマシン２の物理ＣＰＵ上では、ハイパーバイザが実行され、仮想環境が構築される。すなわち、ハイパーバイザは、仮想ＣＰＵ等の仮想リソースを含む仮想マシン（ＶＭ）を提供する。各仮想マシン上ではゲストＯＳ（図７では、単にＯＳと記載）が実行され、ゲストＯＳ上でアプリケーションプログラムが実行される。
【００３６】
物理ＣＰＵ（および上記コントローラマシン１のＣＰＵ、以下同様）は、ＭＰＵ（Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、プロセッサとも呼ばれる。物理ＣＰＵは、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一の物理ＣＰＵがマルチコア構成を有していても良い。上記ホストマシン２（あるいはコントローラマシン１）の少なくとも一部の処理は、物理ＣＰＵ以外のプロセッサ、例えば、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）、Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＧＰＵ）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、上記ホストマシンの少なくとも一部の処理は、集積回路（ＩＣ）、その他のディジタル回路であっても良い。また、上記ホストマシンの少なくとも一部にアナログ回路が含まれても良い。集積回路は、ＬＳＩ，Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＡＳＩＣ），プログラマブルロジックデバイス（ＰＬＤ）を含む。ＰＬＤは、例えば、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）を含む。上記ホストマシン２（あるいはコントローラマシン１）は、プロセッサと集積回路との組み合わせであっても良い。このような組み合わせは、例えば、マイクロコントローラ（ＭＣＵ），ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ），システムＬＳＩ，チップセットなどと呼ばれる。
【００３７】
図８に、本実施形態の情報システムが性能イベントをサンプリングするときのデータフローを例示する。仮想マシンが実行される環境においても、ゲストＯＳやゲストＯＳ上のユーザプログラムの命令は従来のネイティブ環境同様に、物理ＣＰＵ上で走行する。その状態で、ＰＭＣのカウンターオーバーフロー割込み（サンプリング割込み）が発生すると、その時の物理ＣＰＵのレジスタ状態（プログラムカウンタ含む）は退避先に退避される。ここで、退避先は、ハイパーバイザが管理する割り込み元（その時動作していたゲストマシン（仮想マシン）のコンテキスト退避領域である。コンテキスト退避領域は、ゲストステートエリアと呼ばれる。この退避処理はＣＰＵハードウェアが自動で実行する。この退避処理は、ＶＭ  ｅｘｉｔ処理と呼ばれる。
【００３８】
退避処理後、実行制御はハイパーバイザに移る。つまり、退避処理後、物理ＣＰＵ上の実行命令はハイパーバイザ（またはホストＯＳやホストのユーザプログラム）の命令に変わる。そして、ハイパーバイザは、ＶＭ  ｅｘｉｔの要因判定を行い、適切な制御先へ処理を移行する。例えば、ドライバ（サンプリング割込みハンドラともいう）に制御が移行する。そして、ドライバは、ホストマシン上のその時点での実行アドレス（仮想アドレス）、割込み元ゲストのその時点での実行アドレス（仮想アドレス）等を採取し、トレース情報として保存する。トレース情報として、上記実行アドレスの他、物理ＣＰＵ番号、ホストマシン（物理ＣＰＵ）上でハイパーバイザが管理するプロセスＩＤ、スレッドＩＤ、仮想マシン番号、仮想ＣＰＵ番号等が含まれる。
【００３９】
一方、仮想マシン上では、仮想マシンで実行されるすべてのプロセスについて、各プロセス終了前に、各プロセスのシンボルマップ情報が作成される。シンボルマップ情報は、
仮想ＣＰＵ番号、ゲストＯＳに管理されるプロセスＩＤ、ページテーブルアドレス、スレッドＩＤ、プロセス名、当該プロセスで実行されるアプリケーションプログラム中の関数のアドレス範囲（仮想アドレスの範囲）、関数名等を含む。関数のアドレス範囲、関数名は、プログラムのオブジェクトファイルから取得される。関数のアドレス範囲は、例えば、先頭アドレスと末尾のアドレス、あるいは、先頭アドレスと関数のメモリ上のサイズ等である。
【００４０】
そして、ハイパーバイザ上で実行される解析プログラムがトレース情報中の仮想マシン上の実行アドレスと、シンボルマップ情報中の関数のアドレス範囲および関数名の情報から、関数毎のＣＰＵ使用率等のプロファイルを算出する。
【００４１】
図９にＣＰＵ使用率の収集結果を例示する。図９の例では、仮想マシン名、プログラム名、関数名とともに、ＣＰＵ使用率、サンプリング数が例示される。ここで、サンプリング数は、ＰＭＣ割込発生時に取得された仮想マシン上の実行アドレスから得られた関数名の取得回数、つまり、関数実行中であることが特定された回数である。また、ＣＰＵ使用率は、サンプリング数に基づく、ＣＰＵ使用率の算出値である。
＜エントロピーとマンハッタン距離＞
【００４２】
本実施形態の情報システムは、性能イベントの収集結果の解析において、エントロピーとマンハッタン距離を計算する。今、図９に例示される性能イベントの収集結果、例えば、行ｘｉ（ある仮想マシンで実行されるあるプログラム内のある関数ｘｉ）のＣＰＵ使用率を、ＣＰＵを占有する事象の出現確率とみなして、Ｐ（ｘｉ）とする。この場合に、図９のＣＰＵ使用率から得られる情報量の期待値は、エントロピーと呼ばれ、以下の式で計算できる。
【００４３】
（式１）
2018088075.tif 000003
【００４４】
エントロピーは、事象ｘｉ（ｉ＝１〜ｎ）の平均情報量、あるいは、乱雑さとして知られる量である。平均情報量は、事象ｘｉの生起確立ｐ（ｘｉ）から得られる情報量ｌｏｇ２（ｘｉ）を各事象ｘｉ（ｉ＝１〜ｎ）について、各事象ｘｉの生起確立ｐ（ｘｉ）にしたがって平均したものである。ただし、事象の数ｎは、情報システムから得られるすべての事象を計算対象とする値でなくてもよい。つまり、情報システムは、生起確率が所定以上のものに限定して、上記式１を計算してもよい。生起確率が小さい場合には、エントロピー値への影響が概ね無視できるからである。
【００４５】
また、図９の例では、エントロピーを算出する対象として、ＣＰＵ使用率が例示されている。しかし、本情報システムにおいて、エントロピーが計算される対象が関数のＣＰＵ使用率に限定される訳ではない。例えば、情報システムは、事象ｘｉとして、他の性能イベントの収集値、例えば、プログラム全体のＣＰＵ使用率、仮想マシン全体のＣＰＵ使用率、関数のソースコードの各行でのＣＰＵ使用率を用いてもよい。また、情報システムは、ＣＰＵ使用率以外の他の性能イベントの収集値のプロファイルｐ（ｘｉ）を生起確率として、エントロピーを計算してもよい。他の性能イベントの収集値のプロファイルとｐ（ｘｉ）は、例えば、プログラムや関数等におけるキャッシュミス発生の割合、ページフォルト発生の割合、Ｉ／Ｏアクセスの割合等をいう。
【００４６】
本実施形態では、情報システムの各ホストマシンのハイパーバイザ上で、解析プログラムが所定の時間（例えば、数十秒間、数分間等）性能イベントの収集を行い、上記エントロピーを計算する。さらに、この解析プログラムは、このような性能イベントの収集、プロファイルの生成、エトロピーの計算を所定の周期で繰り返し、情報システムのプロファイルから得られるエントロピーの変化を監視する。
【００４７】
収集された性能イベントのサンプル数が多く、図９に対応する事象の発生確率（プロファイル結果）が一定の場合、エントロピーは大きくなる傾向がある。一方、サンプル数が少ないか、図９の行に対応する事象の数が小さいと、エントロピーは小さくなる傾向がある。本実施形態では、情報システムは、エントロピーの値自体から情報システムの性能を判定するのではなく、値に変化があるか否かを監視し、情報システムの状態を判定する。すなわち、エントロピーに変化があると、本情報システムは、性能状況、例えば、各関数のＣＰＵ使用率に変化があると見なし、次の処理、例えば、詳細な解析処理を実行する。
【００４８】
次に、本情報システムが計算するマンハッタン距離について説明する。今、図９で例示されるような各関数のＣＰＵ使用率等のプロファイルが時刻Ｘと時刻Ｙで収集されたとする。このとき、時刻Ｘと時刻Ｙとの間のマンハッタン距離は、以下の式２によって計算される。
【００４９】
（式２）
2018088075.tif 000004
【００５０】
上記エントロピーは、収集される性能イベントについて、比率構成の変化を検知する。しかしながら、エントロピーは、収集される性能イベントの内容そのものの変化を検知できないことがある。例えば、同一比率構成で、２つの関数のＣＰＵ使用率が入れ替わった場合には、エントロピーは、変化を識別できない。すなわち、ある関数Ｘ１とＸ２について、ある時刻ｔ１においてＣＰＵ使用率がＰ（Ｘ１（ｔ１））＝ｐ％、Ｐ（Ｘ２（ｔ１））＝ｑ％であったとする。そして、時刻ｔ２において、上記ＣＰＵ使用率がＰ（Ｘ１（ｔ２））＝ｑ％、Ｐ（Ｘ２（ｔ２））＝ｐ％に変化したとする。この場合、情報システム内では、関数別のＣＰＵ使用率が変化したにも拘わらず、エントロピーは変化しない。
【００５１】
そこで、異なる時刻間でのプロファイルのエントリ（図９の各行に相当）ごとの変化を検知するために、本情報システムは、異なる時刻間でのプロファイルに対して、マンハッタン距離を計算する。なお、ここでは、ＸとＹは異なる時刻として説明したが、マンハッタン距離の計算は、異なる時刻間のプロファイルに限定される訳ではない。例えば、情報システム（例えば、図７のコントローラマシン１）は、異なるホストマシン間、異なる仮想マシン間等におけるプロファイルに対して、マンハッタン距離を計算してもよい。
【００５２】
なお、マンハッタン距離の計算において、上記式のエントリ数ｋ、つまり、事象ｘｉの数は、例えば、性能イベントの収集結果（プロファイル）Ｘのうち、サンプル数、すなわち生起確率の多いものからｋ個の事象ｘｉを抽出すれればよい。サンプル数の少ないものはマンハッタン距離の計算に対する影響が小さいからである。
＜処理手順＞
【００５３】
本実施形態では、情報システムは、例えば１ミリ秒のサンプリング期間の性能イベントの収集を３０秒間繰り返し継続する。そして、情報システムは、直近の３０秒間に収集し
たサンプリングデータに対してプロファイル解析を実行する。ただし、サンプリング期間が１ミリ秒に限定される分けではなく、繰り返し継続する期間が３０秒に限定される訳ではない。また、時系列解析としては、本情報システムは、１００ミリ秒単位でプロファイル解析していくとする。即ち、３０秒間では  ３０ｓ／１００ｍｓ＝  ３００回のプロファイル計算となる。
【００５４】
そして、本情報システムは、１００ｍｓの時系列解析単位毎に、同時にエントロピーＨ（ｔ）とマンハッタン距離Ｍ（ｔ）も計算する。ここで、ｔは解析対象のサンプリング期間に対応する時刻（例えば、上記１００ｍｓの時系列解析対象の期間開始時刻）である。また、マンハッタン距離Ｍは時刻ｔでのプロファイル結果と、一つ前の時刻ｔ−ｄｔの時系列解析対象の期間でのプロファイル結果との距離を算出する。ここで、ｄｔは、時系列解析単位の期間であり、例えば、１００ｍｓである。
【００５５】
さらに、本情報システムは、エントロピーＨとマンハッタン距離Ｍの各移動平均値ＭＡ（Ｈ）、ＭＡ（Ｍ）と、各標準偏差σも同時に計算し、時系列解析単位毎に更新する。ここで移動平均の範囲に得に限定はない。例えば、数十秒間だけの狭い範囲から、数分、数時間、数日などの広い範囲までバリエーションは考えられる。
【００５６】
そして、本情報システムは、エントロピーＨとマンハッタン距離Ｍがそれまでの計算結果と大きく乖離していないかどうかを毎回判定する。例えば、本情報システムは、品質管理などで利用される２σ法や３σ法で検査すればよい。例えば、今回の計算値（ＨあるいはＭ）が「移動平均値ＭＡ±３σ」から逸脱した場合には、本情報システムは異常検知とみなすことにより、リアルタイムに異常検知を判定できる。
【００５７】
図１０に、本情報システムにおけるプロファイル解析処理のフローチャートを例示する。すでに、述べたように、例えば、図７に例示した各ホストマシン２−１から２−３等において、物理ＣＰＵがハイパーバイザ上の解析プログラムにしたがって、図１０の処理を実行する。この処理では、サンプリング測定の開始ともに、まず、プレ測定が実行される（Ｓ１）。プレ測定では、物理ＣＰＵは、サンプリング開始からＤ秒後にＳ３からＳ５の処理（Ａ）（Ｂ）（Ｃ）をＮ秒ごとにＣ回繰り返して実行する。ここで、Ｄ秒待つのは、第１回目のサンプリング結果からプロファイルを取得するためである。Ｓ１のプレ測定によって、物理ＣＰＵは、第１回のＤ秒間のサンプリング結果から、Ｃ回分のプロファイル（各Ｎ秒間のサンプリングに対するプロファイル）を取得する。以下、物理ＣＰＵは、Ｄ秒間のサンプリング結果に対する処理を繰り返す。
すなわち、物理ＣＰＵは、次の直近Ｄ秒でのサンプリング結果を取得する（Ｓ２）。
【００５８】
次に、物理ＣＰＵは、Ｓ２で取得した直近のＤ秒、つまり、Ｎ×Ｃ秒のサンプリング結果に対してプロファイル解析を実行し、各エントリに対する生起確率として、プロファイルＰ（ｘｉ（ｔ））（ｉ＝１〜ｎ）を得る（Ｓ３）。ここで、エントリは、例えば、図９の各行である。また、Ｓ３のプロファイル解析を処理（Ａ）と呼ぶ。プロファイル解析では、図７で説明したサンプリング処理の結果から、プロファイルの対象別、例えば、仮想マシンごとプロセスごと関数毎に、サンプリング結果が集約される。Ｓ３の処理は、プロセッサが複数の処理においてプロセッサの性能に関連するイベントの検出割合を取得することの一例である。
【００５９】
次に、物理ＣＰＵは、Ｐ（ｘｉ（ｔ））に対するエントロピーＨ（ｔ）およびＰ（ｘｉ（ｔ−Ｎ））とＰ（ｘｉ（ｔ））間のマンハッタン距離Ｍ（ｔ）を計算する（Ｓ４）。計算は、Ｄ秒（例えば、３０秒）をＣ（例えば、３００）区間に区切ったＮ秒（例えば、１００ｍｓ）に対して、Ｃ回繰り返して実行する。ここで、Ｓ４の計算は、処理（Ｂ）と呼ぶ。なお、図１０の例では、物理ＣＰＵは、エントロピーとマンハッタン距離の両方を計
算するが、物理ＣＰＵは、エントロピーとマンハッタン距離の両方を計算の少なくとも一方を計算するようにしてもよい。Ｓ４の処理は、検出割合に基づいて、複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算の一例である。また、Ｓ４の処理は、複数の処理のそれぞれについて、所定時間を隔てた前後で取得されたイベントの検出割合同士の差分値を求め、差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算の一例である。また、Ｓ４の処理では、サンプリング期間Ｄ秒（３０秒）をＣ区間（３００区間）に区切ったＮ秒（１００ｍｓ）ごとに、エントロピーとマンハッタン距離が計算される。したがって、Ｓ４の処理は、期待値および加算値の少なくとも一方を所定時間ごとに計算することの一例といえる。
【００６０】
さらに、物理ＣＰＵは、エントロピーとマンハッタン距離の各移動平均値ＭＡ（Ｈ）とＭＡ（Ｍ）と各標準偏差σ（Ｈ）とσ（Ｍ）を更新する（Ｓ５）。ここで、Ｓ５の更新は、処理（Ｃ）と呼ぶ。
【００６１】
次に、物理ＣＰＵは、直近Ｄ秒間のサンプリング結果に対して、エントロピーＨ（ｔ）が移動平均値ＭＡ（Ｈ）−ｎσから移動平均値ＭＡ（Ｈ）＋ｎσの範囲内か（ｎ＝２，３）を判定する（Ｓ６）。ここで、ｎは、例えば、２または３である。そして、エントロピーＨ（ｔ）が移動平均値ＭＡ（Ｈ）−ｎσから移動平均値ＭＡ（Ｈ）＋ｎσの範囲内の場合には、物理ＣＰＵは、Ｓ２の処理に戻る。一方、エントロピーＨ（ｔ）が移動平均値ＭＡ（Ｈ）−ｎσから移動平均値ＭＡ（Ｈ）＋ｎσの範囲ではない場合には、物理ＣＰＵは、マンハッタン距離Ｍ（ｔ）がＭＡ（Ｍ）−ｎσからＭＡ（Ｍ）＋ｎσの範囲内かを判定する（Ｓ７）。ここで、ｎは、例えば、２または３である。そして、マンハッタン距離Ｍ（ｔ）がＭＡ（Ｍ）−ｎσからＭＡ（Ｍ）＋ｎσの範囲内の場合には、物理ＣＰＵは、Ｓ２の処理に戻る。一方、マンハッタン距離Ｍ（ｔ）がＭＡ（Ｍ）−ｎσからＭＡ（Ｍ）＋ｎσの範囲ではない場合には、物理ＣＰＵは、例えば、コントローラマシン１に異常検知を通知し、プロファイルＰ（ｔ）を提示する（Ｓ８）。なお、物理ＣＰＵは、異常が検知されたプロファイルＰ（ｔ）を外部記憶装置等に保存してもよい。そして、物理ＣＰＵは、Ｓ２の処理に戻る。Ｓ８の処理は、異常発生を報知することの一例である。
【００６２】
以上の処理では、エントロピーとマンハッタン距離の両方で異常が検知された場合に、情報システムはコントローラマシン１に異常を通知し、プロファイルを保存する。しかし、このような処理に代えて、エントロピーとマンハッタン距離の少なくとも一方で異常が検知された場合に情報システムはコントローラマシン１に異常を通知し、プロファイルを保存するようにしてもよい。したがって、Ｓ６からＳ８の処理は、エントロピーの計算とマンハッタン距離の計算の少なくとも一方を実行することの一例ということができる。また、Ｓ６、Ｓ７の処理は、所定時間を隔てた前後における期待値および前記加算値の少なくとも一方の変化量が許容範囲から逸脱したか否かを判定することの一例ということができる。なお、さらに、例えば、毎回の検査はまずはエントロピーＨを計算し、マンハッタン距離Ｍは、毎回は計算しないなどのＳ４からＳ８の処理のバリエーションも考えられる。
【００６３】
図１１に、図１０の処理によって計算されるエントロピー（またはマンハッタン距離）、移動平均値、および、２σまたは３σの範囲を例示する。図で横軸は経過時間であり、縦軸は、エントロピー（またはマンハッタン距離）、移動平均値、および、移動平均＋２σ（または３σ）、移動平均−２σ（または３σ）の値を例示する。図で実線が図１０の処理によって計算されるエントロピー（またはマンハッタン距離）の例である。また、一点鎖線が移動平均である。また、点線は移動平均から２σまたは３σの範囲を例示する。そして、図中央付近で、エントロピー（またはマンハッタン距離）が急激に変化し、移動平均から２σまたは３σの範囲を逸脱した場合を例示している。
【００６４】
本実施形態の情報システムは、図１１のような一時的なプロファイルの変化であっても、エントロピーまたはマンハッタン距離の変化として、プロファイルから直ちに計算することができる。したがって、時々刻々変化する情報システムの負荷状態に対して、従来よりも低い負荷でほぼリアルタイムに、異常を検知できる。
【００６５】
また、本情報システムでは、エントロピーＨとマンハッタン距離Ｍの計算のための性能イベントの収集値であるプロファイルが得られている。このため、異常検知の判定とともに、問題発生個所（ｈｏｔｓｐｏｔ）の情報やその時点までのアプリケーションの挙動を提示することが可能となる。
【００６６】
また、本情報システムは、図１１のように、エントロピーＨとマンハッタン距離Ｍの計算結果が移動平均から許容範囲内あるか否かによって情報システムの性能状況を判断する。したがって、許容範囲内の緩やかな変化は異常と検知されず、急激な変化だけが異常として検知され、擬似的な異常の検知、つまりノイズの検知を抑制できる。
【００６７】
さらに、図１０の処理は、式１のエントロピー、あるいは、式２のマンハッタン距離を計算することによって、簡易、低負荷でプロファイルに基づく情報システムの性能状態を判定でき、性能の異常、アプリケーションプログラムの実行上の問題を検知できる。図１０の処理では、Ｄ秒ごとのプロファイルの取得に対して、式１のエントロピー、あるいは、式２のマンハッタン距離に基づく判定がなされており、少なくともＤ秒以内でのほぼリアルタイムな処理が実現可能となっている。
＜情報システム全体の処理＞
【００６８】
図１０では、単一の物理ＣＰＵにおける処理を例示した。このような物理ＣＰＵの処理結果を情報システム全体で統合してもよい。以下、情報システム全体の処理を例示する。（処理例１）
【００６９】
処理例１としては、情報システムは、性能イベントの検出結果をシステム全体としてまとめて判断しない。クラウド環境のシステムは、ＨＰＣのクラスタ環境同様、複数の物理マシンで構成される。しかし、ＨＰＣ処理の様に１つのアプリケーションを多数の物理マシンにまたがって大規模並列計算する様な処理の実行は少ないと考えられる。よって、プロファイル解析も各物理マシン単位の解析でも十分と考えられる。したがって、情報システム全体の解析処理を行う代わりに、各物理マシン単位の閉じたプロファイル解析であっても、大方のビジネスアプリケーションをカバーできる。すなわち、処理例１では、性能解析は、物理マシンであるホストマシン２単位での解析に留まる。
（処理例２）
【００７０】
処理例２でも、情報システム全体の性能を判断しないのは処理例１と同様である。ただし、実施形態として、専用の解析マシン（物理マシン）を１台から必要に応じて複数台用意して、解析処理や異常検知は専用の解析マシン上（解析基盤）で行ってもよい。解析単位は各物理マシン単位で実行されるので、処理やプロファイル出力としては処理例１と同じホストワイドの結果となる。
【００７１】
この処理では、データ採取は、仮想マシンが運用されている各物理マシン上で実行される。各物理マシンは、サンプリングデータを各物理マシンが接続される共有ディスク上に定期的（例えば、図１０のＤ秒間隔）に出力し、解析マシン側も同様に定期的に共有ディスク上からデータを読み出し解析や異常検知を実行すればよい。なお、共有ディスクは、Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＳＡＮ）で接続される記憶装置やＮｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ（ＮＡＳ）などが例示される。解析マシンの一例は、図７のコントローラマシン１である。したがって、コントローラマシンは解析装
置の一例ということができる。また、コントローラマシン１のＣＰＵは制御部の一例ということができる。
（処理例３）
【００７２】
処理例３として、処理例２の解析マシンが、全物理マシンまたは複数の物理マシンのデータを集計し、プロファイル解析ではホスト名がさらなるメタ情報として加えられればよい。その結果、「ホスト名＋ゲスト名＋プログラム名＋関数名」で一意の識別子となる。すなわち、図９の表にもう１列「ホスト名」が加わるデータ構造でプロファイルが作成される。比率の分母は全物理マシン上のサンプル数の合計となる。つまり、クラウドシステム全体で１つのプロファイル結果が得られることになる。情報システム（例えば、図７のコントローラマシン１）は、クラウドシステム全体または複数のホストマシングループ全体で１つのプロファイルに対して、図１０と同様の処理を実行し、異常判定を行えばよい。なお、必ずしも、クラウドシステム全体で処理が実行されなくてもよく、クラウドシステム上の複数のノードから得られるサンプリング結果に対して、図１０と同様の処理を実行してもよい。
【００７３】
図１２に、解析マシンによる複数物理マシンのデータに対する解析処理を例示する。ここで、複数物理マシンは、情報システム内の全物理マシンでもよいし、全物理マシンよりも少ない数の物理マシンでもよい。この図１２では、Ｓ２の処理が、Ｓ２Ａの処理に変更される点が図１０と相違する。すなわち、解析マシンは、監視対象の各物理マシンからサンプリング結果を読み出す（Ｓ２Ａ）。各物理マシンは、自身のホスト名とともに、サンプリング結果を例えば、ＳＡＮやＮＡＳに書き出すので、解析マシンは、「ホスト名＋ゲスト名＋プログラム名＋関数名」で一意の識別子となるサンプリングデータを取得し、Ｓ３からＳ８の処理を実行すればよい。なお、図１２では、Ｓ３のプロファイル解析処理は、解析マシンで実行する。しかし、図１２の処理に代えて、各物理マシンがＳ３のプロファイル解析処理を実行し、プロファイル解析結果を解析マシンに引き渡すようにしてもよい。各物理マシンがＳ３のプロファイル解析処理を実行する場合には、解析マシンでのＳ３の処理は不要である。各物理マシンがＳ３のプロファイル解析処理を実行する場合には、Ｓ２Ａの処理で、プロファイル解析結果を取得すればよい。いずれしても、Ｓ２ＡまたはＳ３の処理は、複数のプロセッサのそれぞれ複数の処理において検出されるプロセッサの性能に関連するイベントの検出割合を取得することの一例である。なお、Ｓ２Ａの処理が実行される結果、Ｓ１Ａのプレ測定においも、Ｓ２Ａに対応する処理（Ｚ）が実行される。
【００７４】
以上述べたように、処理例３では、解析マシン（例えば、図７のコントローラマシン１）が各物理マシンのサンプリングデータを取得し、エントロピーとマンハッタン距離にしたがって、情報システム全体の性能を監視することができる。今後、基幹系アプリの様な大規模高負荷アプリケーションがクラウドへ本格移動してきた場合は、システム全体のクラウドシステムワイドな解析や判断が有効となると想定される。
＜その他の変形例＞
【００７５】
本実施形態では、図７〜図１２のように、複数の仮想マシンが実行される情報システムにおける性能イベントの検出処理を例示した。しかし、このような処理に代えて、エントロピーとマンハッタン距離による負荷状態の判定は、単一のＣＰＵにおいて、ネイティブモードで稼働するコンピュータ上において行ってもよい。
【００７６】
上記実施形態の図１０、図１２では、Ｄ秒間のサンプリング結果が取得されるのを前提として、（Ａ）プロファイル解析、（Ｂ）エントロピー値とマンハッタン距離の計算、（Ｃ）移動平均と標準偏差の計算を実行する処理を説明した。しかし、上記処理に代えて、Ｄ秒をＣ区間に区切ったＮ秒ごとにサンプリングを結果を取得するようにしてもよい。つ
まり、Ｃ区間に区切ったＮ秒ごとのサンプリングと並行して、Ｎ秒ごとに（Ａ）プロファイル解析、（Ｂ）エントロピー値とマンハッタン距離の計算、（Ｃ）移動平均と標準偏差の計算を実行するようにしてもよい。このように処理することで、本情報システムは、例えば、Ｎ秒（例えば、１００ｍｓ）ごとに、リアルタイムに情報システムの性能状態が判定できる。
＜コンピュータが読み取り可能な記録媒体＞
【００７７】
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【００７８】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ＲＯＭ（リードオンリーメモリ）等がある。さらに、ＳＳＤ（Solid State Drive）は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ
等に固定された記録媒体としても利用可能である。
【００７９】
なお、今日、コンピュータの構成が複雑化しており、非クラウド環境、あるいは非仮想計算機環境であっても、コンピューティング環境の管理、例えば、コンピュータ性能低下の検知、性能異常の検知、走行ソフトウェア上の問題発生個所（hotspot）特定を従来よ
りも簡易に実現することが望ましく、それらの環境について上記の実施形態を適用することが可能である。
＜その他の実施形態＞
【００８０】
本実施形態は、以下の実施形態の態様を含む。下記態様の各付記に含まれる構成は、他の付記の構成と組み合わせてもよい。
（付記１）
プロセッサを備え、
前記プロセッサが複数の処理において前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方を実行する情報処理装置。
（付記２）
前記プロセッサは、前記期待値および前記加算値を前記所定時間ごとに計算し、前記所定時間を隔てた前後における前記期待値および前記加算値の少なくとも一方の変化量が許容範囲から逸脱した場合に、異常発生を報知する付記１に記載の情報処理装置。
（付記３）
解析装置と複数のプロセッサを備える情報システムであって、
前記解析装置は、前記複数のプロセッサのそれぞれ複数の処理において検出される前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平
均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２計算、
の少なくとも一方を実行する制御部を備える情報システム。
（付記４）
前記制御部は、前記期待値および前記加算値を前記所定時間ごとに計算し、前記所定時間を隔てた前後における前記期待値および前記加算値の少なくとも一方の変化量が許容範囲から逸脱した場合に、異常発生を報知する付記３に記載の情報システム。
（付記５）
プロセッサが、
前記プロセッサの複数の処理において前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方を実行する情報処理方法。
（付記６）
前記プロセッサは、前記期待値および前記加算値を前記所定時間ごとに計算し、前記所定時間を隔てた前後における前記期待値および前記加算値の少なくとも一方の変化量が許容範囲から逸脱した場合に、異常発生を報知する付記５に記載の情報処理方法。
（付記７）
解析装置と複数のプロセッサを備える情報システムにおける情報処理方法であって、
前記解析装置は、前記複数のプロセッサのそれぞれ複数の処理において検出される前記プロセッサの性能に関連するイベントの検出割合を取得し、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方を実行する情報処理方法。
（付記８）
前記解析装置は、前記期待値および前記加算値を前記所定時間ごとに計算し、前記所定時間を隔てた前後における前記期待値および前記加算値の少なくとも一方の変化量が許容範囲から逸脱した場合に、異常発生を報知する付記７に記載の情報処理方法。
（付記９）
プロセッサに、
前記プロセッサの複数の処理において前記プロセッサの性能に関連するイベントの検出割合を取得させ、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方の処理を実行させるためのプログラム。
（付記１０）
前記プロセッサに、前記期待値および前記加算値を前記所定時間ごとに計算し、前記所定時間を隔てた前後における前記期待値および前記加算値の少なくとも一方の変化量が許
容範囲から逸脱した場合に、異常発生を報知することをさらに実行させるための付記９に記載のプログラム。
（付記１１）
解析装置と複数のプロセッサを備える情報システムにおける前記解析装置に、
前記複数のプロセッサのそれぞれ複数の処理において検出される前記プロセッサの性能に関連するイベントの検出割合を取得させ、
前記検出割合に基づいて、前記複数の処理での前記イベントの検出に対する情報量の平均値を計算する第１の計算、または、
前記複数の処理のそれぞれについて、所定時間を隔てた前後で取得された前記イベントの検出割合同士の差分値を求め、前記差分値の絶対値を前記複数の処理について加算した加算値を計算する第２の計算、
の少なくとも一方の処理を実行させるためのプログラム。
（付記１２）
前記解析装置に、前記期待値および前記加算値を前記所定時間ごとに計算し、前記所定時間を隔てた前後における前記期待値および前記加算値の少なくとも一方の変化量が許容範囲から逸脱した場合に、異常発生を報知することをさらに実行させるための付記１１に記載のプログラム。
【符号の説明】
【００８１】
１    コントローラマシン
２    ホストマシン
【図１】
2018088075.tif 000005
【図２】
2018088075.tif 000006
【図３】
2018088075.tif 000007
【図４】
2018088075.tif 000008
【図５】
2018088075.tif 000009
【図６】
2018088075.tif 000010
【図７】
2018088075.tif 000011
【図８】
2018088075.tif 000012
【図９】
2018088075.tif 000013
【図１０】
2018088075.tif 000014
【図１１】
2018088075.tif 000015
【図１２】
2018088075.tif 000016