(57)【要約】      （修正有）【課題】アプリケーションの性能低下がクラウド基盤に原因があるのかアプリケーションに原因があるのかを特定するプログラム、装置を提供する。【解決手段】性能状況診断装置２は、キャプチャ部２１によりキャプチャされた通信パケットのうち応答時間が性能面で重要となるアプリケーションの通信パケットを用いて、応答時間算出部２６がアプリケーション毎に平均応答時間を算出する。正規化部２８は、平均応答時間を代表応答時間を用いて正規化することによってアプリケーション毎に正規化した応答時間を算出する。性能低下判定部３１は、アプリケーションの性能低下が起きているか否かを判定し、診断部３３は、性能低下が起きているアプリケーションについて、アプリケーションに問題があるかクラウド基盤に問題があるかを判定する。【選択図】図１
2018028783.tif 000002
【特許請求の範囲】
【請求項１】
システムで実行される複数のアプリケーションそれぞれについて、該システムの所定の地点を通過するデータを取得して蓄積し、
蓄積したデータを用いてアプリケーション毎に所定時間毎の平均応答時間を算出し、
算出した平均応答時間を正規化してアプリケーション毎に正規化応答時間を算出し、
算出した正規化応答時間の大きさに応じて前記システムの状態を判断して出力する
処理をコンピュータに実行させることを特徴とするシステム状態可視化プログラム。
【請求項２】
前記平均応答時間を算出する対象となるアプリケーションであるか否かを機械学習により判定する処理を前記コンピュータにさらに実行させ、
前記平均応答時間を算出する処理は、前記判定する処理により前記平均応答時間の算出対象と判定されたアプリケーションについて前記平均応答時間を算出することを特徴とする請求項１に記載のシステム状態可視化プログラム。
【請求項３】
前記正規化応答時間を算出する処理は、ｅｘ−Ｇａｕｓｓｉａｎ分布を用いて前記正規化応答時間を算出することを特徴とする請求項１又は２に記載のシステム状態可視化プログラム。
【請求項４】
前記正規化応答時間を算出する処理は、外れ値を除去したデータについてｅｘ−Ｇａｕｓｓｉａｎ分布を用いて前記正規化応答時間を算出することを特徴とする請求項３に記載のシステム状態可視化プログラム。
【請求項５】
前記出力する処理は、前記正規化応答時間の大きさに応じた色を用いて、前記正規化応答時間を前記所定時間毎の時刻に対応付けて表示装置に表示することを特徴とする請求項１〜４のいずれか一つに記載のシステム状態可視化プログラム。
【請求項６】
前記出力する処理は、アプリケーションに対する前記所定時間毎のリクエスト数に応じた濃淡を用いて、前記正規化応答時間を前記所定時間毎の時刻に対応付けて表示装置に表示することを特徴とする請求項５に記載のシステム状態可視化プログラム。
【請求項７】
前記システムの状態を判断する処理は、アプリケーションの性能低下が起きた場合に、該性能低下の原因がシステムにあるのかアプリケーションにあるのかを判断することを特徴とする請求項１〜６のいずれか一つに記載のシステム状態可視化プログラム。
【請求項８】
前記システムの状態を判断する処理は、アプリケーションの前記正規化応答時間と該アプリケーションに対する前記所定時間毎のリクエスト数に基づいて該アプリケーションに性能低下が起きているか否かを判定することを特徴とする請求項７に記載のシステム状態可視化プログラム。
【請求項９】
システムで実行される複数のアプリケーションそれぞれについて、該システムの所定の地点を通過するデータを取得して蓄積し、
蓄積したデータを用いてアプリケーション毎に所定時間毎の平均応答時間を算出し、
算出した平均応答時間を正規化してアプリケーション毎に正規化応答時間を算出し、
算出した正規化応答時間の大きさに応じて前記システムの状態を判断して出力する
処理をコンピュータが実行することを特徴とするシステム状態可視化方法。
【請求項１０】
システムで実行される複数のアプリケーションそれぞれについて、該システムの所定の地点を通過するデータを取得して蓄積する蓄積部と、
前記蓄積部により蓄積されたデータを用いてアプリケーション毎に所定時間毎の平均応答時間を算出する第１算出部と、
前記第１算出部により算出された平均応答時間を正規化してアプリケーション毎に正規化応答時間を算出する第２算出部と、
前記第２算出部により算出された正規化応答時間の大きさに応じて前記システムの状態を判断して出力する出力部と
を有することを特徴とするシステム状態可視化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム状態可視化プログラム、システム状態可視化方法及びシステム状態可視化装置に関する。
【背景技術】
【０００２】
顧客に資源（Resource）を提供するシステムでは、提供する資源の状況を監視して資源に問題がないかを確認することが重要となる。例えば、仮想マシンを提供するクラウドシステムでは、仮想マシン上で動作するアプリケーションの応答時間や負荷を監視してアプリケーションの性能に問題がないかを確認することが重要である。
【０００３】
ここで、仮想マシンとは、物理マシン（コンピュータ）上で動作する仮想的なコンピュータである。また、クラウドシステムとは、ネットワークを介して利用者にコンピュータのハードウェアやソフトウェアを提供するシステムである。
【０００４】
アプリケーションの性能に関するデータの収集にはエージェントが用いられる。図２９は、エージェントによる監視を説明するための図である。図２９に示すように、物理マシン９では仮想マシン９ａが動作し、仮想マシン９ａによりアプリ９ｂとエージェント９ｃが実行される。ここで、アプリは、アプリケーションである。エージェント９ｃは、アプリ９ｂから性能に関するデータを収集してアプリ９ｂの性能を監視する。
【０００５】
なお、システムの状況を分析する技術として、トランザクションモデルで示される呼出関係に合致するプロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析することで、システムの稼働状況を的確に分析する技術がある。
【０００６】
また、入力操作データの発生状況と入力操作に対応する描画処理データの発生状況との類似度が高い期間の描画処理データの送信時刻と入力操作データの送信時刻との時間差を用いてリモートデスクトップシステムの応答時間を算出する技術がある。
【０００７】
また、第１階層に属するサーバの１処理当りの平均処理時間の時系列推移と第２階層に属するサーバの１処理当りの平均処理時間の時系列推移との間の相関を用いて、異なる階層に属する複数サーバ間での処理時間の影響伝搬の可能性を解析する技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−１１６８３号公報
【特許文献２】特開２０１５−１１６５３号公報
【特許文献３】特開２０１１−２５８０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図２９に示した性能監視には、各アプリケーションの性能を監視することはできるが、アプリケーションの性能低下がクラウド基盤に原因があるのかアプリケーションに原因があるのかを特定することができないという問題がある。ここで、クラウド基盤とは、サーバ、ネットワーク、ストレージ等のＩＣＴ（Information  and  Communication  Technology）インフラを仮想化技術を利用して提供する基盤である。クラウド基盤は、仮想マシン管理、ストレージ管理、ネットワーク管理等の機能を備える。
【００１０】
本発明は、一つの側面では、アプリケーションの性能低下がクラウド基盤に原因があるのかアプリケーションに原因があるのかを特定することを目的とする。
【課題を解決するための手段】
【００１１】
一つの態様では、システム状態可視化プログラムは、システムで実行される複数のアプリケーションそれぞれについて、該システムの所定の地点を通過するデータを取得して蓄積する処理をコンピュータに実行させる。そして、システム状態可視化プログラムは、蓄積したデータを用いてアプリケーション毎に所定時間毎の平均応答時間を算出し、算出した平均応答時間を正規化してアプリケーション毎に正規化応答時間を算出する処理をコンピュータに実行させる。そして、システム状態可視化プログラムは、算出した正規化応答時間の大きさに応じてシステムの状態を判断して出力する処理をコンピュータに実行させる。
【発明の効果】
【００１２】
一つの側面では、アプリケーションの性能低下がクラウド基盤に原因があるのかアプリケーションに原因があるのかを特定することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係るクラウドシステムの構成を示す図である。
【図２】図２は、種別判定用データ記憶部の一例を示す図である。
【図３】図３は、種別情報記憶部の一例を示す図である。
【図４】図４は、応答時間の算出方法を説明するための図である。
【図５】図５は、応答時間情報記憶部の一例を示す図である。
【図６】図６は、平均応答時間の正規化を説明するための図である。
【図７】図７は、代表情報記憶部の一例を示す図である。
【図８】図８は、ｅｘ−Ｇａｕｓｓｉａｎ分布を説明するための図である。
【図９】図９は、外れ値を説明するための図である。
【図１０】図１０は、正規化情報記憶部の一例を示す図である。
【図１１】図１１は、リクエスト数が少ない場合の正規化された平均応答時間のバラツキを説明するための図である。
【図１２】図１２は、判定情報記憶部の一例を示す図である。
【図１３】図１３は、クラウド情報記憶部の一例を示す図である。
【図１４】図１４は、可視化データ記憶部の一例を示す図である。
【図１５】図１５は、性能状況の表示例を示す図である。
【図１６】図１６は、リクエスト頻度に応じて色の濃淡を変化させた表示例を示す図である。
【図１７】図１７は、パケットキャプチャ処理のフローを示すフローチャートである。
【図１８】図１８は、クラウド基盤の性能状況を診断する処理のフローを示すフローチャートである。
【図１９】図１９は、種別判定処理のフローを示すフローチャートである。
【図２０】図２０は、正規化処理のフローを示すフローチャートである。
【図２１】図２１は、性能低下判定処理のフローを示すフローチャートである。
【図２２】図２２は、診断処理のフローを示すフローチャートである。
【図２３】図２３は、可視化処理のフローを示すフローチャートである。
【図２４】図２４は、機械学習を用いた種別判定処理のフローを示すフローチャートである。
【図２５】図２５は、入力計算処理のフローを示すフローチャートである。
【図２６】図２６は、学習器を構築する処理のフローを示すフローチャートである。
【図２７】図２７は、ｅｘ−Ｇａｕｓｓｉａｎ分布を用いた正規化処理のフローを示すフローチャートである。
【図２８】図２８は、実施例に係る性能状況診断プログラムを実行するコンピュータの構成を示す図である。
【図２９】図２９は、エージェントによる監視を説明するための図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示するシステム状態可視化プログラム、システム状態可視化方法及びシステム状態可視化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１５】
まず、実施例に係るクラウドシステムの構成について説明する。図１は、実施例に係るクラウドシステムの構成を示す図である。図１に示すように、実施例に係るクラウドシステム１は、性能状況診断装置２と、任意の台数の物理マシン３と、ネットワークスイッチ４とを有する。
【００１６】
性能状況診断装置２は、クラウドシステム１の性能状況を診断する装置である。物理マシン３は、アプリケーションを実行するコンピュータである。物理マシン３上では仮想マシン３ａが動作し、アプリケーションは仮想マシン３ａにより実行される。なお、図１では、物理マシン３上で一つの仮想マシン３ａが動作する場合を示すが、物理マシン３上で複数の仮想マシン３ａが動作してもよい。
【００１７】
また、クラウドシステム１は、例えば、Ｗｅｂサーバ、アプリケーションサーバ及びＤＢ（Data  Base）サーバから成る３階層システムを実現する。３階層システムでは、一つのアプリケーションがＷｅｂサーバ、アプリケーションサーバ及びＤＢサーバにより処理される。
【００１８】
ネットワークスイッチ４は、物理マシン３を外部のネットワークに接続する装置である。ネットワークスイッチ４は、クラウドシステム１の出入り口に配置される。性能状況診断装置２は、ネットワークスイッチ４から通信パケットをキャプチャし、クラウドシステム１の性能状況の診断に用いる。
【００１９】
クラウドシステム１においては、ユーザはクラウドシステム１上のアプリケーションをクラウドシステム１の外部のクライアント装置からネットワーク経由で利用する。そのために、ユーザとアプリケーションの間の通信パケットは、クラウドシステム１の出入り口のネットワークスイッチ４を必ず通る。このため、出入り口のネットワークスイッチ４で通信パケットをポートミラーリングし、キャプチャすることで、クラウドシステム１内の全アプリケーションについて外部と通信する通信パケットを取得することができる。
【００２０】
性能状況診断装置２は、キャプチャ部２１と、パケット情報記憶部２２と、種別判定用データ記憶部２３と、種別判定部２４と、種別情報記憶部２５と、応答時間算出部２６と、応答時間情報記憶部２７と、正規化部２８と、代表情報記憶部２９とを有する。また、性能状況診断装置２は、正規化情報記憶部３０と、性能低下判定部３１と、判定情報記憶部３２と、診断部３３と、クラウド情報記憶部３４と、可視化部３５と、可視化データ記憶部３６と、表示制御部３７とを有する。
【００２１】
キャプチャ部２１は、ネットワークスイッチ４を通過する通信パケットをポートミラーリングによりキャプチャし、キャプチャした通信パケットの情報をパケット情報記憶部２２に格納する。パケット情報記憶部２２は、ネットワークスイッチ４を通過する通信パケットの情報を記憶する。
【００２２】
種別判定用データ記憶部２３は、アプリケーションの種別を判定するためのデータを記憶する。アプリケーションの種別には、応答時間が性能面で重要となるアプリケーションとその他のアプリケーションとがある。性能状況診断装置２は、応答時間が性能面で重要となるアプリケーションを診断の対象とする。
【００２３】
種別判定部２４は、種別判定用データ記憶部２３が記憶するデータを用いて通信コネクション毎にアプリケーションの種別を判定する。図２は、種別判定用データ記憶部２３の一例を示す図である。図２（ａ）は、アプリケーションの種別を判定するためのデータとしてポート番号のリストであるポートリストを記憶する場合を示す。図２（ａ）において、種別判定用データ記憶部２３が記憶するポート番号は、応答時間が性能面で重要となるアプリケーションが使用するポート番号である。例えば、種別判定用データ記憶部２３は、応答時間が性能面で重要となるアプリケーションが使用するポート番号として、「８０」、「４４３」等を記憶する。
【００２４】
種別判定部２４は、パケット情報記憶部２２に記憶された通信パケットの情報を解析し、サーバ側のポート番号を抽出する。ここで、サーバとは、仮想マシン３ａである。そして、種別判定部２４は、抽出したポート番号が種別判定用データ記憶部２３が記憶するポートリストに含まれる場合に、解析した通信パケットに送信又は受信するアプリケーションを応答時間が性能面で重要となるアプリケーションとして判定する。そして、種別判定部２４は、判定結果を種別情報記憶部２５に格納する。
【００２５】
また、種別判定部２４は、ポート番号からアプリケーションの種別が判定できないアプリケーションについては、通信パターンを入力として機械学習によってアプリケーションの種別を判定する。
【００２６】
具体的には、種別判定部２４は、あらかじめ、応答時間が性能面で重要となるアプリケーション及びその他のアプリケーションについて、通信パケットを収集しておく。そして、種別判定部２４は、収集した通信パケットを解析して一定時間間隔（例えば１分）の平均応答時間、サーバの平均通信量、サーバの平均通信回数、クライアント装置の平均通信量、及びクライアント装置の平均通信回数を計算する。
【００２７】
そして、種別判定部２４は、計算した値を学習データとして、学習器を構築する。学習器としては、ＳＶＭ（Support  Vector  Machine）、ランダムフォレスト等が利用可能である。図２（ｂ）は、種別判定用データ記憶部２３がアプリケーションの種別を判定するためのデータとして学習データを記憶する場合を示す。図２（ｂ）に示すように、種別判定用データ記憶部２３は、アプリケーションの種別、平均応答時間、サーバの平均通信量、サーバの平均通信回数、クライアント装置の平均通信量、及びクライアント装置の平均通信回数を一つの学習データとして記憶する。平均応答時間の単位はマイクロ秒であり、サーバの平均通信量及びクライアント装置の平均通信量の単位はバイトである。
【００２８】
図２（ｂ）では、アプリケーションの種別が「応答時間が性能面で重要となるアプリケーション」について二つの学習データが示され、アプリケーションの種別が「その他のアプリケーション」について一つの学習データが示されている。アプリケーションの種別が「応答時間が性能面で重要となるアプリケーション」の学習データの一つでは、平均応答時間が「６００」であり、サーバの平均通信量は「１００」であり、サーバの平均通信回数は「１」である。また、その学習データでは、クライアント装置の平均通信量は「１００」であり、クライアント装置の平均通信回数は「１」である。
【００２９】
そして、種別判定部２４は、キャプチャされた通信パケットから通信コネクション毎に学習データと同じ時間間隔の平均応答時間、サーバの平均通信量、サーバの平均通信回数、クライアント装置の平均通信量、及びクライアント装置の平均通信回数を計算する。そして、種別判定部２４は、計算した値から、学習器を利用して通信コネクションに対応するアプリケーションの種別を判定する。そして、種別判定部２４は、判定結果を種別情報記憶部２５に格納する。
【００３０】
種別情報記憶部２５は、アプリケーションの種別の判定結果を記憶する。図３は、種別情報記憶部２５の一例を示す図である。図３に示すように、種別情報記憶部２５は、ＩＰアドレス、ポート番号及び種別をアプリケーション毎に記憶する。ＩＰアドレスは、アプリケーションが稼働している仮想マシン３ａのＩＰアドレスである。ポート番号は、アプリケーションが使用するポート番号である。種別は、アプリケーションの種別である。例えば、ＩＰアドレスが「１０．２０．３０．４０」である仮想マシン３ａで稼働するアプリケーションは、使用するポート番号は「８０」であり、「応答時間が性能面で重要となるアプリケーション」である。
【００３１】
応答時間算出部２６は、応答時間が性能面で重要となるアプリケーションに関して、通信パケットを解析して応答時間を算出し、算出した応答時間を応答時間情報記憶部２７に格納する。応答時間算出部２６は、通信パケットが暗号化されていない場合には、プロトコルメッセージを再構築し、リクエストの時刻とレスポンスの時刻より応答時間を算出する。
【００３２】
すなわち、応答時間算出部２６は、通信パケットからプロトコルメッセージを再構成して、どの通信パケットがリクエストメッセージであり、どの通信パケットがレスポンスメッセージなのかを判定する。そして、応答時間算出部２６は、リクエストメッセージが送信されてからレスポンスメッセージが返ってくるまでの時間を応答時間として算出する。
【００３３】
図４は、応答時間の算出方法を説明するための図である。図４に示すように、クライアント装置が送信したリクエストメッセージがクラウドシステム１内の仮想マシン３ａで稼働するアプリ３ｂにより処理され、レスポンスメッセージがアプリ３ｂからクライアント装置に送信される。ここで、アプリ３ｂは、アプリケーションである。応答時間算出部２６は、リクエストメッセージがキャプチャされた時刻とレスポンスメッセージがキャプチャされた時刻の間の時間を応答時間とする。
【００３４】
応答時間算出部２６は、通信パケットが暗号化されている場合には、通信パケットの送受のフローを解析することによって、アプリケーションの応答時間を推定する。通信パケットが暗号化されている場合、応答時間算出部２６は、通信パケットの内部が見られないためにプロトコルの解析ができないので、リクエストメッセージやレスポンスメッセージを再構成することができない。そこで、応答時間算出部２６は、アプリケーション側から一方的にデータをリアルタイムに送信するための技術である「ロングポーリング」を考慮し、クライアント装置とクラウドシステム１上のアプリケーションの通信パケットの時間間隔から応答時間を推定する。
【００３５】
応答時間情報記憶部２７は、応答時間算出部２６によりアプリケーション毎に算出された応答時間を記憶する。図５は、応答時間情報記憶部２７の一例を示す図である。図５に示すように、応答時間情報記憶部２７は、時刻と、ＩＰアドレスと、ポート番号と、応答時間とを対応付けて記憶する。
【００３６】
時刻は、応答時間が算出された時刻である。ＩＰアドレスは、アプリケーションが稼働している仮想マシン３ａのＩＰアドレスである。ポート番号は、アプリケーションが使用するポート番号である。応答時間は、応答時間算出部２６により算出された応答時間である。応答時間の単位はマイクロ秒である。例えば、ＩＰアドレスが「１０．２０．３０．４０」である仮想マシン３ａで稼働し、使用するポート番号が「８０」であるアプリケーションの「２０１６／０６／２４  ０９：００：００」の応答時間は、「６００」である。
【００３７】
正規化部２８は、応答時間算出部２６により算出された応答時間を応答時間情報記憶部２７から読み出し、アプリケーション毎の平均応答時間を算出する。そして、正規化部２８は、代表情報記憶部２９に記憶された情報を用いて平均応答時間の正規化を行い、正規化した平均応答時間を正規化情報記憶部３０に格納する。
【００３８】
図６は、平均応答時間の正規化を説明するための図である。応答時間は、アプリケーションによって、正常時にとりうる値や、遅延とみなす基準が異なる。このため、アプリケーションの応答時間をそのまま用いただけでは、性能状況に問題があるのか判断することは困難である。そこで、性能状況診断装置２は、平均応答時間を正規化して、アプリケーション間で比較可能な尺度に変換する。図６では、正常時にとりうる値が異なるアプリ＃１とアプリ＃２について、平均応答時間を正規化することによって、応答時間の比較が可能となっている。
【００３９】
正規化部２８は、平均応答時間ｔの基本統計量ｔrを代表応答時間として、正規化された平均応答時間ｔnをｔn＝ｔ／ｔrにより計算する。基本統計量には、平均、中央値、最頻値等がある。
【００４０】
代表情報記憶部２９は、代表応答時間をアプリケーション毎に記憶する。図７は、代表情報記憶部２９の一例を示す図である。図７に示すように、代表情報記憶部２９は、時刻と、ＩＰアドレスと、ポート番号と、応答時間をアプリケーション毎に記憶する。
【００４１】
時刻は、代表応答時間が計算された時刻である。ＩＰアドレスは、アプリケーションが稼働している仮想マシン３ａのＩＰアドレスである。ポート番号は、アプリケーションが使用するポート番号である。応答時間は、代表応答時間である。代表応答時間の単位はマイクロ秒である。例えば、ＩＰアドレスが「１０．２０．３０．４０」である仮想マシン３ａで稼働し、使用するポート番号が「８０」であるアプリケーションの「２０１６／０６／２３  ００：００：００」に計算された代表応答時間は、「６００」である。
【００４２】
正規化部２８は、アプリケーション毎に一定時間間隔（例えば１分）毎の平均応答時間ｔを計算し、平均応答時間ｔの基本統計量ｔrを計算する。基本統計量を計算するためのデータとしては前日の１日分のデータ等が用いられる。一定時間間隔が１分の場合は、１日分のデータから６０＊２４＝１４４０のサンプルデータが得られる。
【００４３】
また、正規化部２８は、基本統計量ｔrの代わりに、平均応答時間の分布をｅｘ−Ｇａｕｓｓｉａｎ分布でフィッティングさせたときのμを代表応答時間としてもよい。図８は、ｅｘ−Ｇａｕｓｓｉａｎ分布を説明するための図である。ｅｘ−Ｇａｕｓｓｉａｎ分布は、確率分布の一つであり、図８（ａ）に示すように、ガウス分布（正規分布）と指数分布を畳込み積分したものである。ｅｘ−Ｇａｕｓｓｉａｎ分布は、正規分布の平均μ及び標準偏差σと、指数分布の平均及び標準偏差τの３つのパラメータにより決定される。ｅｘ−Ｇａｕｓｓｉａｎ分布では、μは、図８（ｂ）に示すように、分布のピークの部分の値になる。
【００４４】
正規化部２８は、アプリケーション毎に一定時間間隔（例えば１分）毎の平均応答時間ｔを計算し、平均応答時間の分布をｅｘ−Ｇａｕｓｓｉａｎ分布でフィッティングする。ｅｘ−Ｇａｕｓｓｉａｎ分布へのフィッティングのためのデータとしては前日の１日分のデータ等が用いられる。一定時間間隔が１分の場合は、１日分のデータから６０＊２４＝１４４０のサンプルデータが得られる。
【００４５】
そして、正規化部２８は、フィッティングの確からしさを一標本コルモゴロフ−スミルノフ検定で判定する。一標本コルモゴロフ−スミルノフ検定の入力は、平均応答時間の分布と、フィッティング結果の分布曲線との二つである。正規化部２８は、有意水準を例えば０．０５で検定し、検定した結果、平均応答時間の分布がｅｘ−Ｇａｕｓｓｉａｎ分布であった場合、ｅｘ−Ｇａｕｓｓｉａｎ分布のμを代表平均応答時間とする。
【００４６】
なお、正規化部２８は、平均応答時間の分布をｅｘ−Ｇａｕｓｓｉａｎ分布でフィッティングする前に外れ値除去を行ってもよい。図９は、外れ値を説明するための図である。図９に示すように、外れ値は、他の値から大きく外れた値である。平均応答時間に外れ値がある場合、ｅｘ−Ｇａｕｓｓｉａｎ分布でうまくフィッティングできない場合がある。このため、正規化部２８は、フィッティングの前に外れ値除去を行う。外れ値除去の方法にはＴｕｋｅｙの外れ値除去等がある。
【００４７】
正規化情報記憶部３０は、正規化部２８により正規化された平均応答時間をアプリケーション毎に記憶する。図１０は、正規化情報記憶部３０の一例を示す図である。図１０に示すように、正規化情報記憶部３０は、時刻と、ＩＰアドレスと、ポート番号と、正規化平均応答時間と、リクエスト数とをアプリケーション毎に記憶する。
【００４８】
時刻は、応答時間が算出された時刻である。ＩＰアドレスは、アプリケーションが稼働している仮想マシン３ａのＩＰアドレスである。ポート番号は、アプリケーションが使用するポート番号である。正規化平均応答時間は、正規化された平均応答時間である。リクエスト数は、正規化された平均応答時間の計算に用いられたリクエストの数である。
【００４９】
例えば、ＩＰアドレスが「１０．２０．３０．４０」である仮想マシン３ａで稼働し、使用するポート番号が「８０」のアプリケーションの「２０１６／０６／２４  ０９：００：００」に算出された応答時間に関して正規化された平均応答時間は「１．０」である。正規化された平均応答時間の計算に用いられたリクエストの数は「２」である。
【００５０】
性能低下判定部３１は、正規化された平均応答時間とリクエスト数を基にアプリケーションの性能低下が起きているか否かを判定し、判定結果を判定情報記憶部３２に格納する。ただし、リクエスト数が少ない場合は、正規化された平均応答時間のバラツキが大きくなる。図１１は、リクエスト数が少ない場合の正規化された平均応答時間のバラツキを説明するための図である。図１１に示すように、リクエスト数が少ない場合、正規化された平均応答時間のバラツキは大きい。
【００５１】
このように、リクエスト数が少ない場合、性能が低下していないにも関わらず、正規化された平均応答時間が大きくなる可能性がある。このため、性能低下判定部３１は、リクエスト数が少ない場合は、正規化された応答時間が大きくても性能に問題ないと判定する。
【００５２】
具体的には、性能低下判定部３１は、正規化された平均応答時間の閾値Ｔrtとリクエスト数の閾値Ｔreq-minを用いて、(正規化された平均応答時間)>Ｔrt  かつ  Ｔreq-min<(リクエスト数)の場合はアプリケーションの性能低下が起きていると判定する。
【００５３】
判定情報記憶部３２は、性能低下判定部３１による判定結果をアプリケーション毎に記憶する。図１２は、判定情報記憶部３２の一例を示す図である。図１２に示すように、判定情報記憶部３２は、時刻と、ＩＰアドレスと、ポート番号と、判定結果とをアプリケーション毎に記憶する。
【００５４】
時刻は、応答時間が算出された時刻である。ＩＰアドレスは、アプリケーションが稼働している仮想マシン３ａのＩＰアドレスである。ポート番号は、アプリケーションが使用するポート番号である。判定結果は、性能低下が起きているか否かの判定結果であり、「性能低下が起きていない」又は「性能低下が起きている」である。例えば、ＩＰアドレスが「１０．２０．３０．４０」である仮想マシン３ａで稼働し、使用するポート番号が「８０」であるアプリケーションの「２０１６／０６／２４  ０９：００：００」に関する判定結果は、「性能低下が起きていない」である。
【００５５】
診断部３３は、性能低下が起きているアプリケーションについて、性能低下の原因がアプリケーションにあるのかクラウド基盤にあるのかを正規化情報記憶部３０を参照して判定する。そして、診断部３３は、判定結果をクラウド情報記憶部３４に格納するとともに、クラウド基盤に原因があると判定した場合には、クラウドシステム１の運用管理者５に例えばメールで通知する。
【００５６】
具体的には、診断部３３は、以下の三つのケースの何れかに当てはまるか否かを判定することによって、性能低下の原因がアプリケーションにあるのかクラウド基盤にあるのかを判定する。なお、以下の三つのケースの何れにも当てはまらない場合には、診断部３３は、性能低下の原因を不明とする。
【００５７】
ケース＃１は、アプリケーション自身のリクエスト数と性能状況（正規化された平均応答時間）が相関している場合である。この場合、診断部３３は、アプリケーション自身の負荷の増加の影響で性能低下が起きていると判断し、性能低下の原因がアプリケーションにあると判定する。診断部３３は、アプリケーションのリクエスト数と正規化された平均応答時間との間の無相関検定を、例えば有意水準０．０５で行い、検定結果が有意であった場合、性能低下の原因がアプリケーションにあると判定する。
【００５８】
ケース＃２は、異なるユーザ間の複数のアプリケーションで性能状況(正規化された平均応答時間)が相関している場合である。この場合、診断部３３は、アプリケーション間で何等かのリソースが競合していて、それが不足しているため、性能低下が起きていると判断し、性能低下の原因がクラウド基盤にあると判定する。診断部３３は、性能低下が起きているアプリケーションのユーザとは異なるユーザのアプリケーションの全ての組み合わせについて、二つのアプリケーションの正規化された平均応答時間の間の無相関検定を、例えば有意水準０．０５で行う。そして、診断部３３は、検定結果が有意であった場合、性能低下の原因がクラウド基盤にあると判定する。
【００５９】
ケース＃３は、あるユーザのアプリケーションのリクエスト数と、他のユーザのアプリケーションの性能状況（正規化された平均応答時間）が相関している場合である。この場合、診断部３３は、あるユーザのアプリケーションが何等かのリソースを使用しているため、他のユーザのアプリケーションの性能に影響を与えて、性能低下を引き起こしていると判断し、性能低下の原因がクラウド基盤にあると判定する。診断部３３は、性能低下が起きているアプリケーションのユーザとは異なるユーザのアプリケーションの全てについて、正規化された平均応答時間と性能低下が起きているアプリケーションのリクエスト数との間の無相関検定を、例えば有意水準０．０５で行う。そして、診断部３３は、検定結果が有意であった場合、性能低下の原因がクラウド基盤にあると判定する。
【００６０】
クラウド情報記憶部３４は、診断部３３による判定結果をアプリケーション毎に記憶する。図１３は、クラウド情報記憶部３４の一例を示す図である。図１３に示すように、クラウド情報記憶部３４は、時刻と、ＩＰアドレスと、ポート番号と、判定結果とをアプリケーション毎に記憶する。
【００６１】
時刻は、応答時間が算出された時刻である。ＩＰアドレスは、アプリケーションが稼働している仮想マシン３ａのＩＰアドレスである。ポート番号は、アプリケーションが使用するポート番号である。判定結果は、診断部３３による判定結果であり、当てはまったケースがある場合には、その旨が判定情報記憶部３２が記憶する情報に付加され、性能低下が起きていない場合には、判定情報記憶部３２が記憶する情報と同じである。
【００６２】
図１３では、例えば、ＩＰアドレスが「１０．２０．３０．４０」である仮想マシン３ａで稼働し、使用するポート番号が「８０」のアプリケーションについて「２０１６／０６／２４  ０９：１０：００」に算出された応答時間について判定結果が示されている。判定結果は、「性能低下が起きており、ケース＃２に当てはまる」である。
【００６３】
可視化部３５は、正規化情報記憶部３０から、正規化された平均応答時間を読み出して、平均応答時間の大きさによって色が連続的に変化するような可視化データを全アプリケーションについて作成し、可視化データ記憶部３６に格納する。
【００６４】
可視化部３５は、例えば、正規化された平均応答時間が「１」である場合には、正常を示す「緑」を表す可視化データを作成し、正規化された平均応答時間が「１０」である場合には、やや性能悪化を示す「黄色」を表す可視化データを作成する。また、可視化部３５は、正規化された平均応答時間が「１００」である場合には、性能悪化を示す「赤」を表す可視化データを作成し、正規化された平均応答時間が算出されていない場合には、データなしを示す「白」を表す可視化データを作成する。
【００６５】
可視化データ記憶部３６は、可視化部３５により作成された可視化データを記憶する。図１４は、可視化データ記憶部３６の一例を示す図である。図１４に示すように、可視化データ記憶部３６は、時刻と、ＩＰアドレスと、ポート番号と、色と、不透明度とをアプリケーション毎に記憶する。
【００６６】
時刻は、応答時間が算出された時刻である。ＩＰアドレスは、アプリケーションが稼働している仮想マシン３ａのＩＰアドレスである。ポート番号は、アプリケーションが使用するポート番号である。色は、性能状況を表す色のＲＧＢである。不透明度は、リクエスト数の多少を表す値であり、０〜１．０の値である。
【００６７】
例えば、ＩＰアドレスが「１０．２０．３０．４０」である仮想マシン３ａで稼働し、使用するポート番号が「８０」のアプリケーションについて「２０１６／０６／２４  ０９：００：００」に算出された正規化平均応答時間の可視化データは以下のとおりである。すなわち、性能状況を示す色のＲＧＢの値は「＃００ＦＦ００」であり、リクエスト数の多少を示す不透明度は「０．０２」である。
【００６８】
表示制御部３７は、可視化データ記憶部３６から可視化データを読み出して、アプリケーション毎に性能状況を表示装置６に表示する。図１５は、性能状況の表示例を示す図である。図１５において、縦軸はアプリケーションを示し、横軸は時刻を示す。横軸の時刻は、例えば、１０分毎である。
【００６９】
図１５は、グレースケールであるため色がわからないが、実際の表示画面では、例えば、表示個所４４は緑で表示され、表示個所４５は黄色で表示され、表示個所４６は赤で表示され、表示個所４７は白で表示される。
【００７０】
可視化によって、クラウドシステム１の運用管理者５は、クラウドシステム１上の全アプリケーションの性能状況を俯瞰することができる。クラウドシステム１の運用管理者５は、可視化された結果を見ることによって、性能遅延が発生している仮想マシン３ａの量や、その発生傾向を確認することができる。
【００７１】
また、可視化部３５は、一定時間間隔内のリクエスト頻度に応じて、色の濃淡を変化させた可視化データを作成することもできる。例えば、可視化部３５は、単位時間当たりのリクエスト頻度が多い場合には濃い可視化データを作成し、単位時間当たりのリクエスト頻度が少ない場合には薄い可視化データを作成する。
【００７２】
図１６は、リクエスト頻度に応じて色の濃淡を変化させた表示例を示す図である。表示個所４８は、リクエスト頻度が多いため、濃く表示され、表示個所４９は、リクエスト頻度が少ないため、薄く表示される。
【００７３】
一定時間間隔内のリクエスト頻度が少ない場合、少ない数のリクエストに対する応答がたまたま遅かっただけという可能性がある。また、頻度が少ないので、ユーザの受ける影響も小さい。したがって、頻度が少ないものを目立たなくするように表示することで、運用管理者５がクラウドシステム１全体の性能状況を正しく把握することができる。性能状況診断装置２は、リクエスト頻度が多くて影響の大きい応答遅延を目立つようにすることで、運用管理者５による見落としを防ぐことができる。
【００７４】
次に、パケットキャプチャ処理のフローについて説明する。図１７は、パケットキャプチャ処理のフローを示すフローチャートである。図１７に示すように、キャプチャ部２１は、一定時間毎に通信パケットをキャプチャし（ステップＳ１）、キャプチャした通信パケットの情報をパケット情報記憶部２２に書き込む。キャプチャ部２１は、このステップＳ１の処理を、性能状況診断装置２が停止コマンドを受けるまで繰り返す。
【００７５】
次に、クラウド基盤の性能状況を診断する処理のフローについて説明する。図１８は、クラウド基盤の性能状況を診断する処理のフローを示すフローチャートである。図１８に示すように、性能状況診断装置２は、停止コマンドを受けるまで、以下のステップＳ１１〜ステップＳ２１の処理を繰り返す。
【００７６】
性能状況診断装置２は、パケット情報記憶部２２から通信パケットの情報を読み込み（ステップＳ１１）、以下のステップＳ１２〜ステップＳ１９の処理を通信コネクション数だけ繰り返す。
【００７７】
性能状況診断装置２は、アプリケーションの種別を判定する種別判定処理を行い（ステップＳ１２）、応答時間が性能面で重要となるアプリケーションか否かを判定する（ステップＳ１３）。その結果、応答時間が性能面で重要となるアプリケーションでない場合には、次の通信コネクションを処理する。
【００７８】
一方、応答時間が性能面で重要となるアプリケーションである場合には、性能状況診断装置２は、応答時間を算出し（ステップＳ１４）、応答時間情報記憶部２７に格納する。そして、性能状況診断装置２は、応答時間を算出した期間のリクエスト数をカウントする（ステップＳ１５）。そして、性能状況診断装置２は、平均応答時間を計算し（ステップＳ１６）、平均応答時間を正規化する正規化処理を行う（ステップＳ１７）。
【００７９】
そして、性能状況診断装置２は、正規化した平均応答時間の情報があるか否かを判定し（ステップＳ１８）、正規化した平均応答時間の情報がない場合には、次の通信コネクションを処理する。正規化した平均応答時間の情報がない場合とは、ｅｘ−Ｇａｕｓｓｉａｎ分布を用いて代表応答時間を算出するときに平均応答時間の分布がｅｘ−Ｇａｕｓｓｉａｎ分布にフィットしない場合である。
【００８０】
一方、正規化した平均応答時間の情報がある場合には、性能状況診断装置２は、アプリケーションの性能低下が起きているか否かを判定する性能低下判定処理を行う（ステップＳ１９）。そして、性能状況診断装置２は、次の通信コネクションの処理を行う。
【００８１】
ステップＳ１２〜ステップＳ１９の処理を通信コネクション数だけ繰り返すと、性能状況診断装置２は、クラウド基盤が原因で性能低下が起きているか否かを判定する診断処理を行う（ステップＳ２０）。そして、性能状況診断装置２は、可視化データを作成する可視化処理を行う（ステップＳ２１）。そして、性能状況診断装置２は、可視化データ記憶部３６が記憶する可視化データを表示装置６に表示する（ステップＳ２２）。
【００８２】
このように、性能状況診断装置２は、正規化した平均応答時間を用いることによって、アプリケーションの性能低下がクラウド基盤に原因があるのかアプリケーションに原因があるのかを特定することができる。
【００８３】
図１９は、種別判定処理のフローを示すフローチャートである。なお、図１９は、ポートリストだけを用いる場合を示し、図２４で機械学習を用いる場合を示す。図１９に示すように、種別判定部２４は、通信パケットの情報から通信コネクションのサーバ側のポート番号を抽出する（ステップＳ３１）。そして、種別判定部２４は、種別判定用データ記憶部２３からポートリストを読み込む（ステップＳ３２）。
【００８４】
そして、種別判定部２４は、抽出したポート番号がポートリストの中にあるか否かを判定し（ステップＳ３３）、ある場合には、アプリケーションの種別を応答時間が性能面で重要となるアプリケーションとする（ステップＳ３４）。そして、種別判定部２４は、種別を種別情報記憶部２５に書き込む。一方、抽出したポート番号がポートリストの中にない場合には、種別判定部２４は、アプリケーションの種別をその他のアプリケーションとし（ステップＳ３５）、種別を種別情報記憶部２５に書き込む。
【００８５】
図２０は、正規化処理のフローを示すフローチャートである。なお、図２０は、代表応答時間に基本統計量を用いる場合を示し、図２７でｅｘ−Ｇａｕｓｓｉａｎ分布を用いる場合を示す。図２０に示すように、正規化部２８は、代表応答時間を計算する時刻であるか否かを判定し（ステップＳ４１）、代表応答時間を計算する時刻でない場合には、ステップＳ４３に進む。一方、代表応答時間を計算する時刻である場合には、正規化部２８は、平均応答時間の基本統計量を計算し、最新の代表応答時間とする（ステップＳ４２）。
【００８６】
そして、正規化部２８は、（平均応答時間）／（最新の代表応答時間）を正規化した平均応答時間とする（ステップＳ４３）。
【００８７】
図２１は、性能低下判定処理のフローを示すフローチャートである。図２１に示すように、性能低下判定部３１は、（正規化された平均応答時間）がＴrtより大きく、かつ、(リクエスト数)がＴreq-minより大きいか否かを判定する（ステップＳ５１）。
【００８８】
そして、（正規化された平均応答時間）がＴrtより大きく、かつ、(リクエスト数)がＴreq-minより大きい場合には、性能低下判定部３１は、アプリケーションの性能低下が起きているとし（ステップＳ５２）、判定結果を判定情報記憶部３２に書き込む。一方、（正規化された平均応答時間）がＴrt以下であるか、又は、(リクエスト数)がＴreq-min以下である場合には、性能低下判定部３１は、アプリケーションの性能低下が起きていないとし（ステップＳ５３）、判定結果を判定情報記憶部３２に書き込む。
【００８９】
図２２は、診断処理のフローを示すフローチャートである。図２２に示すように、診断部３３は、判定情報記憶部３２に記憶されたアプリケーションの数だけ、以下のステップＳ６１〜ステップＳ７０の処理を繰り返す。
【００９０】
診断部３３は、アプリケーションが性能低下しているか否かを判定し（ステップＳ６１）、アプリケーションが性能低下していない場合には、次のアプリケーションの処理を行う。一方、アプリケーションが性能低下している場合には、診断部３３は、性能低下しているアプリケーションの正規化された平均応答時間とリクエスト数との間で相関関係があるか、無相関検定を行う（ステップＳ６２）。
【００９１】
そして、診断部３３は、検定した結果は有意であるか否かを判定し（ステップＳ６３）、有意である場合には、性能低下の原因はアプリケーションにあるとし（ステップＳ６４）、判定結果をクラウド情報記憶部３４に書き込む。そして、診断部３３は、次のアプリケーションの処理を行う。
【００９２】
一方、検定した結果が有意でない場合には、診断部３３は、性能低下しているアプリケーションのユーザ以外の各ユーザについて、ユーザのアプリケーション数だけ、以下のステップＳ６５〜ステップＳ６９の処理を繰り返す。
【００９３】
診断部３３は、性能低下しているアプリケーションの正規化された平均応答時間と別ユーザのアプリケーションの正規化された平均応答時間との間で相関関係があるか、無相関検定を行う（ステップＳ６５）。そして、診断部３３は、検定した結果は有意であるか否かを判定し（ステップＳ６６）、有意である場合には、性能低下の原因はクラウド基盤にあるとし（ステップＳ６７）、判定結果を性能情報記憶部３４に書き込む。そして、診断部３３は、次のアプリケーションの処理を行う。
【００９４】
一方、検定した結果が有意でない場合には、診断部３３は、性能低下しているアプリケーションの正規化された平均応答時間と別ユーザのアプリケーションのリクエスト数との間で相関関係があるか、無相関検定を行う（ステップＳ６８）。そして、診断部３３は、検定した結果は有意であるか否かを判定し（ステップＳ６９）、有意である場合には、性能低下の原因はクラウド基盤にあるとし（ステップＳ６７）、判定結果を性能情報記憶部３４に書き込む。そして、診断部３３は、次のアプリケーションの処理を行う。
【００９５】
一方、性能低下しているアプリケーションのユーザ以外の全ユーザの全アプリケーションについて、ステップＳ６５とステップＳ６８の無相関検定で有意な結果が得られなかった場合には、診断部３３は、性能低下の原因は不明とする（ステップＳ７０）。そして、診断部３３は、判定結果を性能情報記憶部３４に書き込み、次のアプリケーションの処理を行う。
【００９６】
そして、判定情報記憶部３２に記憶されたアプリケーションの数だけ、ステップＳ６１〜ステップＳ７０の処理を行うと、診断部３３は、クラウド基盤が原因で性能低下が起きているか否かを判定する（ステップＳ７１）。そして、クラウド基盤が原因で性能低下が起きている場合には、診断部３３は、クラウドシステム１の運用管理者５に通知する（ステップＳ７２）。
【００９７】
図２３は、可視化処理のフローを示すフローチャートである。図２３に示すように、可視化部３５は、正規化した平均応答時間が計算できているアプリケーション数だけ、以下のステップＳ８１〜ステップＳ８２の処理を繰り返す。
【００９８】
可視化部３５は、正規化した平均応答時間に応じて色を計算し（ステップＳ８１）、リクエスト数に応じて不透明度を計算する（ステップＳ８２）。そして、可視化部３５は、計算した色と不透明度を可視化データ記憶部３６に書き込む。
【００９９】
次に、機械学習を用いた種別判定処理のフローについて説明する。図２４は、機械学習を用いた種別判定処理のフローを示すフローチャートである。図２４に示すように、種別判定部２４は、通信パケットの情報から通信コネクションのサーバ側のポート番号を抽出する（ステップＳ９１）。そして、種別判定部２４は、種別判定用データ記憶部２３からポートリストを読み込む（ステップＳ９２）。
【０１００】
そして、種別判定部２４は、抽出したポート番号がポートリストの中にあるか否かを判定し（ステップＳ９３）、ある場合には、アプリケーションの種別を応答時間が性能面で重要となるアプリケーションとする（ステップＳ９４）。一方、抽出したポート番号がポートリストの中にない場合には、種別判定部２４は、学習器へ入力するデータを計算する入力計算処理を行う（ステップＳ９５）。そして、種別判定部２４は、学習器を用いて、アプリケーションの種別を判定する（ステップＳ９６）。
【０１０１】
図２５は、入力計算処理のフローを示すフローチャートである。図２５に示すように、種別判定部２４は、平均応答時間を計算する（ステップＳ１０１）。そして、種別判定部２４は、サーバの平均通信回数を計算し（ステップＳ１０２）、サーバの平均通信量を計算する（ステップＳ１０３）。そして、種別判定部２４は、クライアント装置の平均通信量を計算し（ステップＳ１０４）、クライアント装置の平均通信回数を計算する（ステップＳ１０５）。
【０１０２】
図２６は、学習器を構築する処理のフローを示すフローチャートである。図２６に示すように、種別判定部２４は、応答時間が性能面で重要なアプリケーションの通信パケットを読み込み（ステップＳ１１１）、その他の通信パケットを読み込む（ステップＳ１１２）。
【０１０３】
そして、種別判定部２４は、アプリケーション数だけ入力計算処理を行う（ステップＳ１１３）。そして、種別判定部２４は、平均応答時間、サーバの平均通信回数、サーバの平均通信量、クライアント装置の平均通信量及びクライアント装置の平均通信回数を入力として、アプリケーションの種別を出力する学習器を構築する（ステップＳ１１４）。
【０１０４】
このように、機械学習を用いてアプリケーションの種別を判定することによって、種別判定部２４は、ポート番号から判定できないアプリケーションについても種別を判定することができる。
【０１０５】
次に、ｅｘ−Ｇａｕｓｓｉａｎ分布を用いた正規化処理のフローについて説明する。図２７は、ｅｘ−Ｇａｕｓｓｉａｎ分布を用いた正規化処理のフローを示すフローチャートである。
【０１０６】
図２７に示すように、正規化部２８は、代表応答時間を計算する時刻であるか否かを判定し（ステップＳ１２１）、代表応答時間を計算する時刻でない場合には、最新の代表応答時間ができているか否かを判定する（ステップＳ１２２）。そして、最新の代表応答時間ができている場合には、正規化部２８は、（平均応答時間）／（最新の代表応答時間）を正規化した平均応答時間とする（ステップＳ１２３）。
【０１０７】
一方、代表応答時間を計算する時刻である場合には、正規化部２８は、平均応答時間の外れ値を除去する（ステップＳ１２４）。なお、正規化部２８は、平均応答時間の外れ値を除去しない場合には、ステップＳ１２４の処理は実行しない。
【０１０８】
そして、正規化部２８は、外れ値除去をした平均応答時間の分布をｅｘ−Ｇａｕｓｓｉａｎ分布でフィッティングする（ステップＳ１２５）。そして、正規化部２８は、平均応答時間の分布とフィッティング結果の分布曲線を入力として一標本コルモゴロフ−スミルノフ検定を実行する（ステップＳ１２６）。
【０１０９】
そして、正規化部２８は、検定の結果は有意であるか否かを判定し（ステップＳ１２７）、有意である場合には、ｅｘ−Ｇａｕｓｓｉａｎ分布のパラメータのμを最新の代表応答時間とし（ステップＳ１２８）、ステップＳ１２３に移動する。一方、検定の結果が有意でない場合には、正規化部２８は、正規化を行うことなく処理を終了する。
【０１１０】
このように、正規化部２８は、平均応答時間の分布をｅｘ−Ｇａｕｓｓｉａｎ分布でフィッティングすることによって、代表応答時間を得ることができる。
【０１１１】
上述してきたように、実施例では、キャプチャ部２１によりキャプチャされた通信パケットのうち応答時間が性能面で重要となるアプリケーションの通信パケットを用いて、応答時間算出部２６がアプリケーション毎に平均応答時間を算出する。そして、正規化部２８が、平均応答時間を代表応答時間を用いて正規化することによってアプリケーション毎に正規化応答時間を算出する。そして、性能低下判定部３１が、アプリケーションの性能低下が起きているか否かを正規化応答時間を用いて判定し、診断部３３が、性能低下が起きているアプリケーションについて、アプリケーションに問題があるかクラウド基盤に問題があるかを判定する。したがって、性能状況診断装置２は、アプリケーションの性能低下がクラウド基盤に原因があるのかアプリケーションに原因があるのかを特定することができる。
【０１１２】
また、実施例では、種別判定部２４は、応答時間が性能面で重要であるアプリケーションであるか否かをポート番号から判定できない場合に機械学習によって判定することで、アプリケーションの種別を確実に判定することができる。
【０１１３】
また、実施例では、正規化部２８は、平均応答時間の分布をｅｘ−Ｇａｕｓｓｉａｎ分布でフィッティングすることによって代表応答時間を算出するので、正確に代表応答時間を算出することができる。
【０１１４】
また、実施例では、正規化部２８は、外れ値を除去した後で平均応答時間の分布をｅｘ−Ｇａｕｓｓｉａｎ分布でフィッティングするので、ｅｘ−Ｇａｕｓｓｉａｎ分布にフィッティングする可能性を高めることができる。
【０１１５】
また、実施例では、可視化部３５が正規化平均応答時間に応じて色を計算し、表示制御部３７が正規化平均応答時間を色を用いて表示装置６に表示するので、運用管理者５は、性能遅延が発生している仮想マシン３ａの量や、その発生傾向を確認することができる。
【０１１６】
また、実施例では、可視化部３５がリクエスト数に応じて色の濃淡を計算し、表示制御部３７が正規化平均応答時間を色と濃淡を用いて表示装置６に表示する。したがって、性能状況診断装置２は、リクエスト頻度が高く影響の大きいアプリケーションの性能状況を目立つように表示することができる。
【０１１７】
また、実施例では、性能低下判定部３１は、アプリケーションの性能低下が起きているか否かを該アプリケーションに対するリクエスト数をさらに用いて判定するので、アプリケーションの性能低下を正確に判定することができる。
【０１１８】
なお、実施例では、性能状況診断装置２について説明したが、性能状況診断装置２が有する構成をソフトウェアによって実現することで、同様の機能を有する性能状況診断プログラムを得ることができる。そこで、性能状況診断プログラムを実行するコンピュータについて説明する。
【０１１９】
図２８は、実施例に係る性能状況診断プログラムを実行するコンピュータの構成を示す図である。図２８に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【０１２０】
メインメモリ５１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【０１２１】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【０１２２】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【０１２３】
そして、コンピュータ５０において実行される性能状況診断プログラムは、ＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読み出されてコンピュータ５０にインストールされる。あるいは、性能状況診断プログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされた性能状況診断プログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。
【０１２４】
また、実施例では、クラウドシステム１の性能状況を診断する場合について説明したが、本発明はこれに限定されるものではなく、任意のシステムの性能状況を診断する場合に同様に適用することができる。
【符号の説明】
【０１２５】
１    クラウドシステム
２    性能状況診断装置
３，９    物理マシン
３ａ，９ａ    仮想マシン
３ｂ，９ｂ    アプリ
４    ネットワークスイッチ
５    運用管理者
６    表示装置
２１    キャプチャ部
２２    パケット情報記憶部
２３    種別判定用データ記憶部
２４    種別判定部
２５    種別情報記憶部
２６    応答時間算出部
２７    応答時間情報記憶部
２８    正規化部
２９    代表情報記憶部
３０    正規化情報記憶部
３１    性能低下判定部
３２    判定情報記憶部
３３    診断部
３４    クラウド情報記憶部
３５    可視化部
３６    可視化データ記憶部
３７    表示制御部
４４，４５，４６，４７，４８，４９    表示個所
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１】
2018028783.tif 000003
【図２】
2018028783.tif 000004
【図３】
2018028783.tif 000005
【図４】
2018028783.tif 000006
【図５】
2018028783.tif 000007
【図６】
2018028783.tif 000008
【図７】
2018028783.tif 000009
【図８】
2018028783.tif 000010
【図９】
2018028783.tif 000011
【図１０】
2018028783.tif 000012
【図１１】
2018028783.tif 000013
【図１２】
2018028783.tif 000014
【図１３】
2018028783.tif 000015
【図１４】
2018028783.tif 000016
【図１５】
2018028783.tif 000017
【図１６】
2018028783.tif 000018
【図１７】
2018028783.tif 000019
【図１８】
2018028783.tif 000020
【図１９】
2018028783.tif 000021
【図２０】
2018028783.tif 000022
【図２１】
2018028783.tif 000023
【図２２】
2018028783.tif 000024
【図２３】
2018028783.tif 000025
【図２４】
2018028783.tif 000026
【図２５】
2018028783.tif 000027
【図２６】
2018028783.tif 000028
【図２７】
2018028783.tif 000029
【図２８】
2018028783.tif 000030
【図２９】
2018028783.tif 000031