(57)【要約】【課題】アプリケーションサーバにより実行されるアプリケーションの動作遅延の原因を特定することを目的とする。【解決手段】情報処理装置が実行するアプリケーションの処理時間と、記憶手段に記憶された構成情報に基づいて特定される前記アプリケーションの実行に関わる複数の要素それぞれの動作状況を示す動作情報を収集し、収集された処理時間に基づいて、アプリケーションの処理の遅延の検知し、アプリケーションの処理の遅延の検知に応じて、収集された処理時間と動作情報に基づき、複数の要素それぞれについて、処理時間と要素の動作情報との相関の有無を判定し、判定した結果に基づいて、複数の要素の中から、動作状況が前記処理時間と相関を有する要素を抽出する。【選択図】図３
2014115826.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
情報処理装置が実行するアプリケーションの処理状況である処理情報と、記憶手段に記憶された構成情報に基づいて特定される前記アプリケーションの実行に関わる複数の処理要素それぞれの動作状況である動作情報を収集し、
収集された前記処理情報に基づいて前記アプリケーションの処理時間の遅延を検知したときに、収集された前記処理情報と前記動作情報に基づき、前記複数の処理要素それぞれについて、前記処理状況と処理要素の動作状況との相関の有無を判定し、
判定した結果に基づいて、前記複数の処理要素の中から、動作状況が前記処理状況と相関を有する処理要素を抽出する、
ことを実行させることを特徴とする処理プログラム。
【請求項２】
前記処理プログラムは、
前記コンピュータに、
前記複数の処理要素の中から抽出された、相関を有する前記処理要素と関連する関連処理要素を、前記構成情報に基づいて特定し、
前記関連処理要素の動作状況を示す情報をさらに収集し、
収集された前記処理情報と、前記関連処理要素の動作状況を示す前記動作情報と、に基づき、前記処理状況と前記関連処理要素の動作状況との相関の有無を判定し、
動作状況が前記処理状況と相関を有する関連処理要素を抽出する、
ことを実行させることを特徴とする請求項１記載の処理プログラム。
【請求項３】
前記処理プログラムは、
前記コンピュータに、
前記アプリケーションを実行する場合にアクセスする外部リソースの動作情報をさらに収集し、
収集された前記処理情報と、外部リソースの動作情報と、に基づき、前記処理状況と前記外部リソースの動作状況との相関の有無を判定し、
動作状況が前記処理状況と相関を有する外部リソースを抽出する、
ことを実行させることを特徴とする請求項１または２記載の処理プログラム。
【請求項４】
前記処理情報は、所定時間間隔で収集された前記アプリケーションの処理時間を含み、
前記複数の処理要素、前記関連処理要素、および前記外部リソースの動作情報は、所定時間間隔で収集された処理要素それぞれの処理時間を含む、
ことを特徴とする請求項１乃至３のいずれか１項に記載の処理プログラム。
【請求項５】
前記処理プログラムは、
前記コンピュータに、
前記複数の処理要素について、要素の処理状況であって、処理時間とは異なる第２の動作情報をさらに収集し、
前記関連処理要素が特定されなかった場合、前記処理情報と前記第２の動作情報とに基づいて、前記処理状況と前記第２の処理情報が収集された要素の動作状況との相関の有無を判定し、
前前記処理状況と前記第２の処理情報が収集された要素の動作状況との相関があると判定された場合、処理状況が前記処理状況との相関があると判定された、前記第２の動作情報が収集された処理要素を抽出する、
ことを実行させることを特徴とする請求項４記載の処理プログラム。
【請求項６】
コンピュータが、
情報処理装置が実行するアプリケーションの処理状況である処理情報と、記憶手段に記憶された構成情報に基づいて特定される前記アプリケーションの実行に関わる複数の処理要素それぞれの動作状況である動作情報を収集し、
収集された前記処理情報に基づいて前記アプリケーションの処理時間の遅延を検知したときに、収集された前記処理情報と前記動作情報に基づき、前記複数の処理要素それぞれについて、前記処理状況と処理要素の動作状況との相関の有無を判定し、
判定した結果に基づいて、前記複数の処理要素の中から、動作状況が前記処理状況と相関を有する処理要素を抽出する、
ことを特徴とする処理方法。
【請求項７】
情報処理装置が実行するアプリケーションの構成情報を記憶する記憶手段と、
情報処理装置が実行するアプリケーションの処理状況である処理情報と、前記記憶手段に記憶された構成情報に基づいて特定される前記アプリケーションの実行に関わる複数の処理要素それぞれの動作状況である動作情報を収集する収集手段と、
収集された前記処理情報に基づいて前記アプリケーションの処理時間の遅延を検知したときに、収集された前記処理情報と前記動作情報に基づき、前記複数の処理要素それぞれについて、前記処理状況と処理要素の動作状況との相関の有無を判定する判定手段と、
判定した結果に基づいて、前記複数の処理要素の中から、動作状況が前記処理状況と相関を有する処理要素を抽出する抽出手段と、
を備えたことを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに適用する処理プログラムに関する。
【背景技術】
【０００２】
クライアント装置がサーバ装置にアプリケーションの実行を要求し、サーバ装置が、クライアント装置からの要求に応じてアプリケーションを実行し、結果をクライアント装置に送信する技術が存在する。このような技術に用いられるサーバ装置は、例えば、アプリケーションサーバと呼ばれる。アプリケーションサーバは、情報処理システムの中で複数台用いられることもある。
【０００３】
アプリケーションの実行時には、種々の原因によって、サーバ装置がクライアント装置から要求を受けてから、クライアント装置に実行結果を送信するまでの処理に遅延が発生することがある。処理の遅延を解消し、情報処理システムを安定して運用させるためには、遅延の原因を特定し、システム管理者などによる迅速な対処が求められる。このような事象に対し、従来、アプリケーションの実行に用いられる複数のアプリケーションサーバの内、遅延の原因となるアプリケーションサーバを特定し、情報処理システムに発生した遅延の解消が解消されるまでの時間を短縮する技術が存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２５８０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アプリケーションサーバが実行する処理には、複数の実行単位（プロセス）、また実行単位ごとの工程（コンポーネント）が存在する。したがって、遅延解消のためには、例えば、アプリケーションサーバの処理の遅延の原因がどのコンポーネントであるかを特定し、遅延原因と特定されたコンポーネントに対して対処を施す必要がある。
【０００６】
しかしながら、従来技術では、処理に遅延が発生しているアプリケーションサーバを特定することはできるものの、特定されたアプリケーションサーバにおいてどのコンポーネントが遅延の原因であるかを特定することができない。したがって、どのコンポーネントが遅延の原因であるかは、例えばシステム管理者の手作業により特定する必要があるが、このため、遅延解消までの時間が長くなってしまうおそれがある。特に、アプリケーションサーバで実行されるアプリケーションやアプリケーション内のコンポーネントの数が多くなると、手作業がより煩雑になるため、遅延解消までの時間が長くなってしまう。
【０００７】
1つの側面では、本発明は、アプリケーションサーバにより実行されるアプリケーションの動作遅延の原因を迅速に特定し、情報処理システムに発生した遅延が解消されるまでの時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、コンピュータに、情報処理装置が実行するアプリケーションの処理時間と、記憶手段に記憶された構成情報に基づいて特定される前記アプリケーションの実行に関わる複数の要素それぞれの動作状況を示す動作情報を収集し、収集された処理時間に基づいて、アプリケーションの処理の遅延の検知し、アプリケーションの処理の遅延の検知に応じて、収集された処理時間と動作情報に基づき、複数の要素それぞれについて、処理時間と要素の動作情報との相関の有無を判定し、判定した結果に基づいて、複数の要素の中から、動作状況が前記処理時間と相関を有する要素を抽出することを実行させる。
【発明の効果】
【０００９】
本発明の１つの態様によれば、アプリケーションの処理の遅延の検知した場合に、複数の要素の中から、動作状況が前記処理時間と相関を有する要素が抽出される。したがって、例えば、アプリケーションの動作遅延の原因となる要素を特定することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システム１００を示す。
【図２】管理サーバ４００のハードウェア構成の一例を示す。
【図３】管理サーバ４００の機能ブロック図を示す。
【図４】構成情報記憶部４２３が記憶する情報の一例を示す。
【図５】アプリケーションサーバ２００の定義情報の一例を示す（１／２）。
【図６】アプリケーションサーバ２００の定義情報の一例を示す（２／２）。
【図７】遅延原因を特定する処理対象のアプリケーションの態様を示す。
【図８】性能情報１１００を示す。
【図９】閾値情報１２００を示す。
【図１０】管理サーバ４００が実行する、遅延原因を特定する処理のフローチャートを示す（１／２）。
【図１１】管理サーバ４００が実行する、遅延原因を特定する処理のフローチャートを示す（２／２）。
【図１２】相関関数を算出する式を示す。
【図１３】スレッドプールのキュー格納数の推移を示す情報の一例を示す。
【図１４】解析部４１４により正規化が実行された後の、応答時間とキュー格納数を示す。
【発明を実施するための最良の形態】
【００１１】
本発明を実施する実施例について、図面とともに説明する。
【００１２】
図１は、本実施例の情報処理システム１００を示す図である。情報処理システム１００は、アプリケーションサーバ２００、データベース３００、管理サーバ４００、クライアント装置５００、管理端末６００を備える。アプリケーションサーバ２００、データベース３００、管理サーバ４００、クライアント装置５００、管理端末６００は、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを用いたネットワーク７００を介して、相互に通信可能に接続される。アプリケーションサーバ２００、データベース３００、管理サーバ４００のそれぞれは、例えばサーバ装置を用いて実現することが可能である。また、クライアント装置５００、管理端末６００には、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を用いて良い。
【００１３】
アプリケーションサーバ２００は、情報処理システム１００においてアプリケーションを実行する装置である。データベース３００は、アプリケーションサーバ２００が実行するアプリケーションにおいて利用されるデータを格納する装置である。管理サーバ４００は、アプリケーションサーバ２００、およびデータベース３００の管理、制御を行なう装置である。クライアント装置５００は、例えば、アプリケーションサーバ２００が実行するアプリケーションの実行結果が出力される装置である。管理端末６００は、管理サーバ１０５が実行する処理の結果が出力される装置である。
【００１４】
図２は、管理サーバ４００のハードウェア構成の一例を示す図である。管理サーバ４００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０２、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ４０４、アダプタ４０６を備え、それぞれはバスによって相互に通信可能に接続されている。ＣＰＵ４０１は、管理サーバ４００が実行する演算処理等を実行する。ＲＡＭ４０２は、例えば、ＣＰＵ４０１が実行する演算処理に用いられるデータやプログラムがロードされる。ＨＤＤ４０３は、サーバ装置１０１が実行する処理に用いられるデータが記憶される。また、ＨＤＤ４０３は、ＣＰＵ４０１が実行するプログラムを記憶することが可能である。尚、ＨＤＤ４０３は、例えば半導体記憶装置や、磁気テープ記憶装置などの、ＨＤＤ以外の記憶装置であっても良い。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ４０４は、例えばディスクＲＯＭ４０５に記憶された情報を読み込み、ＲＡＭ４０２にロードすることが可能な読み取り装置である。ディスクＲＯＭ４０５は、管理サーバ４００が実行するプログラムを記憶することが可能である。したがって、ＣＰＵ４０１は、ディスクＲＯＭ４０５に記憶されたプログラムを、ドライブ４０４を介してＲＡＭ４０２にロードし、ロードされたプログラムを実行することも可能である。アダプタ４０６は、サーバ装置をネットワーク１１０に接続するための接続機器である。例えば、ネットワーク１１０がＬＡＮである場合、アダプタ４０６としてＬＡＮアダプタを用いれば良い。
【００１５】
尚、アプリケーションサーバ２００およびデータベース３００にサーバ装置を用いる場合、アプリケーションサーバ２００およびデータベース３００のハードウェア構成は図２に示す管理サーバ４００のハードウェア構成と同様であって良い。
【００１６】
図３は、管理サーバ４００の機能ブロック図である。管理サーバ４００は、機能部として、通信部４１１、収集部４１２、検出部４１３、解析部４１４、判定部４１５、構成管理部４１６を有する。
【００１７】
通信部４１１は、ネットワーク７００を介して、アプリケーションサーバ４００、データベース３００、クライアント装置５００、管理端末６００とのデータの送受信を実行する。
【００１８】
収集部４１２は、アプリケーションの実行中に、アプリケーションサーバ２００、データベース３００の性能情報を収集する。性能情報については詳細を後述する。
【００１９】
検出部４１３は、アプリケーションのクライアント装置５００に対する応答時間の情報を収集し、応答時間の遅延を検出する。
【００２０】
解析部４１４は、検出部４１３によって応答時間の遅延が検出されると、後述する性能情報記憶部４２２および構成情報記憶部４２３に記憶された情報に基づいて、〜〜
判定部４１５は、アプリケーションの各要素について、クライアント装置５００への応答時間と相関があるか否かを判定する。また、判定部４１５は、クライアント装置５００への応答時間と相関がある要素を、応答時間の遅延の原因として抽出する。
【００２１】
構成管理部４１６は、アプリケーションの実行に関わるコンポーネントおよびコンポーネント同士の接続関係を示す情報を管理する。構成管理部４１６が管理する情報は後述する構成情報記憶部４２３に記憶される。
【００２２】
収集部４１２、検出部４１３、解析部４１４、判定部４１５、構成管理部４１６のそれぞれは、例えば、図２に示すＣＰＵ４０１が、ＨＤＤ４０３に記憶されたプログラムを実行することにより実現されても良い。その際、ＨＤＤ４０３に記憶されたプログラムが、ＲＡＭ４０２にロードされることとしても良い。また、通信部４１１として、例えば図２に示すアダプタ４０６のような接続機器を用いても良い。
【００２３】
また、管理サーバ４００は、閾値情報記憶部４２１、性能情報記憶部４２２、構成情報記憶部４２３を有する。
【００２４】
閾値情報記憶部４２１は、クライアント装置５００への応答時間の遅延の基準となる閾値を特定する情報を記憶する。
【００２５】
性能情報記憶部４２２は、アプリケーションの実行中に、収集部４１２が収集したアプリケーションサーバ２００、データベース３００の性能情報を記憶する。
【００２６】
構成情報記憶部４２３は、アプリケーションサーバ２００により実行されるアプリケーションが有する要素および要素の依存関係を特定する情報を記憶する。
【００２７】
閾値情報記憶部４２１、性能情報記憶部４２２、構成情報記憶部４２３は、例えば、図２に示すＨＤＤ４０３やＲＡＭ４０２を用いて実現されても良い。
〔定義情報〕
図４は、構成情報記憶部４２３が記憶する情報の一例を示す図である。構成情報記憶部４２３には、図４に示すような、アプリケーションサーバ２００で実行される処理に用いられる、コンポーネントや、アプリケーションの関係を特定する構成情報８００が記憶される。例えば、図４では、構成情報８００からｖｉｒｔｕａｌ−ｓｅｒｖｅｒ２１１、ｎｅｔｗｏｒｋ−ｌｉｓｔｅｎｅｒ２１２、２１３、ｔｈｒｅａｄ−ｐｏｏｌ２１４、Ｗｅｂアプリケーション２１５、２１６、ｊｄｂｃ−ｒｅｓｏｕｒｃｅ２２３、ｊｄｂｃ−ｃｏｎｎｅｃｔｉｏｎ−ｐｏｏｌ２２４、というコンポーネントが含まれることが特定される。また、
Ｗｅｂアプリケーションは２１５、ｖｉｒｔｕａｌ−ｓｅｒｖｅｒ２１１、ｎｅｔｗｏｒｋ−ｌｉｓｔｅｎｅｒ２１２（または２１３）、ｔｈｒｅａｄ−ｐｏｏｌ２１４を介してクライアント装置５００からの要求に応じた処理を実行する。Ｗｅｂアプリケーション２１５は処理実行時に、必要に応じてデータベース３００にアクセスし、ｊｄｂｃ−ｒｅｓｏｕｒｃｅ２２３、ｊｄｂｃ−ｃｏｎｎｅｃｔｉｏｎ−ｐｏｏｌ２２４は、Ｗｅｂアプリケーション２１５とデータベース３００との接続を制御する。
図５および図６は、アプリケーションサーバ２００の定義情報の一例を示す図である。図５および図６に示す定義情報９００は、アプリケーションサーバ２００で実行されるアプリケーション、およびコンポーネントが定義された情報である。尚、図５および図６では定義情報の一部を抜粋して記載している。図４に示したアプリケーションの構成は、例えば、図３の構成管理部４２３が、定義情報９００に基づいて特定することができる。
【００２８】
例えば、図５の情報９０１では、コンポーネントとして、ｊｄｂｃ−ｒｅｓｏｕｒｃｅ２２３、ｊｄｂｃ−ｃｏｎｎｅｃｔｉｏｎ−ｐｏｏｌ２２４、を含むことを定義している。
【００２９】
また、例えば、図６の情報９０４では、ｈｔｔｐ−ｌｉｓｔｅｎｅｒ２１２、２１３の後段にｈｔｔｐ−ｔｈｒｅａｄ−ｐｏｏｌ２１４が接続されるという、コンポーネントの接続態様を定義している。
【００３０】
また、例えば、図６の情報９０６では、ｖｉｒｔｕａｌ−ｓｅｒｖｅｒ２１１の後段に、ｎｅｔｗｏｒｋ−ｌｉｓｔｅｎｅｒ２１２、２１３が接続されるという、コンポーネントの接続態様を定義している。
図５および図６に示す定義情報９００に基づいて、図４のように、アプリケーションサーバ２００で実行されるアプリケーション、コンポーネント、およびそれらの接続関係を特定することができる。
【００３１】
図７は、本実施例の処理の説明のための、遅延原因を特定する処理対象のアプリケーションの態様を示した図である。図７に示すようなアプリケーションの態様は、例えば、構成情報記憶部４２３が記憶する情報から特定される、図７に示すように、本実施例においてアプリケーションサーバ２００が実行するアプリケーションは、要素Ａ（Ｗｅｂサーバ）１００１、要素Ｂ（コンポーネントＡ）１００２、要素Ｃ（アプリケーション）１００３、要素Ｄ（コンポーネントＢ）１００４、要素Ｅ（外部リソース）１００５により実現されるアプリケーションである。また、要素Ｂ（コンポーネントＡ）１００２、要素Ｃ（アプリケーション）１００３、要素Ｄ（コンポーネントＢ）１００４は、Ｊａｖａ（登録商標）仮想マシン１００６（図５では、要素Ｚと示す）を用いて実現される。尚、要素Ｂ（コンポーネントＡ）１００２〜要素Ｄ（コンポーネントＢ）１００４のそれぞれは、例えば、前述した構成情報８００に含まれるアプリケーションやコンポーネントである。
【００３２】
要素Ａ（Ｗｅｂサーバ）１００１は、クライアント装置１００からの要求を受信し、要求の内容を要素Ｂ（コンポーネントＡ）１００２に送信する。ウェブサーバ１００１から要求を受信した要素Ｂ（コンポーネントＡ）１００２は、要素Ｃ（アプリケーション）１００３に要求を実行する。要素Ｃ（アプリケーション）１００３は要求に基づく処理を実行するため、処理対象のデータを、要素Ｄ（コンポーネントＢ）１００４を介して、要素Ｅ（外部リソース）１００５から抽出する。ここで、外部リソースとは、例えば、アプリケーションの実行に用いられる情報を記憶するデータベースである。処理対象のデータを要素Ｅ（外部リソース）１００５から抽出後、要素Ｃ（アプリケーション）１００３は処理対象のデータに処理を実行し、実行結果を、要素Ｂ（コンポーネントＡ）１００２および要素Ａ（Ｗｅｂサーバ）１００１を介して、クライアント装置に送信する。この一連の処理の開始から終了までの時間を、本明細書においては「応答時間」と記載する。
〔性能情報の収集〕
アプリケーションサーバ２００が、アプリケーションを実行する際に、管理サーバ４００の収集部４１２は、通信部４１１を介して、性能情報を取得し、性能情報記憶部４２２に記憶する。ここで性能情報とは、アプリケーションサーバ２００が実行する処理に関する情報、およびアプリケーションの要素それぞれが実行する処理に関する情報である。アプリケーションサーバ２００が実行する処理に関する情報は、具体的には、例えば、アプリケーションサーバ２００が、クライアント装置１００からの要求を受けてから、要求に対する応答をクライアント装置１００に送信するまでの時間、つまり前述した応答時間である。また、アプリケーションの要素それぞれが実行する処理に関する情報は、例えば、要素それぞれが処理に要する時間である。以後、明細書においては、要素それぞれが処理に要する時間を「処理時間」と記載する。
【００３３】
図８は、収集部４１２が収集し、性能情報記憶部４２２に記憶する情報の一例を示す図である。図８の性能情報１１００は、応答時間と、アプリケーション内の各要素の処理時間を記憶した情報である。例えばアプリケーションに、図５のように要素Ａ１００１、要素Ｂ１００２、要素Ｃ１００３、要素Ｄ１００４、要素Ｅ１００５が含まれる場合、性能情報１１００は、図８に示すように、取得時刻１１０１、応答時間１１０２、要素Ａの処理時間１１０３、要素Ｂの処理時間１１０４、要素Ｃの処理時間１１０５、要素Ｄの処理時間１１０６、要素Ｅの処理時間１１０７、要素Ｚの処理時間１１０８を含む。
【００３４】
収集部４１２は、アプリケーションサーバ２００が、クライアント装置からの要求に応じてアプリケーションを実行する際に、応答時間と、各要素の処理時間とを定期的に（例えば、１分に１回）収集し、収集した値を性能情報記憶部４２２に記憶する。
【００３５】
収集部４１２が実行する処理により、性能情報記憶部４２２には、図８に示すような応答時間、処理時間が記憶される。
【００３６】
また、収集部４１２は、応答時間や、処理時間以外の性能情報を収集することとしても良い。具体的には、例えば、スレッドプールのキューに格納された作業項目の数（キュー数）や、ＪＤＢＣ（Ｊａｖａ（登録商標）  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）プールの接続待ちの数（接続待ち数）などが挙げられる。尚、スレッドプールとは、クライアント装置５００から受け付けた要求をキューに格納するコンポーネントであり、例えば、図４のｈｔｔｐ−ｔｈｒｅａｄ−ｐｏｏｌ２１４に相当する。また、ＪＤＢＣプールとは、Ｊａｖａ（登録商標）仮想マシンと、データベースとの接続を制御するコンポーネントであり、例えば、図４のｊｄｂｃ−ｃｏｎｎｅｃｔｉｏｎ−ｐｏｏｌ２２４に相当する。
〔遅延検出の閾値〕
図９は、閾値情報記憶部４２１が記憶する情報の一例を示す図である。図９に示す閾値情報１２００は、検出部４１３が、処理時間の遅延を検出する基準となる値が記憶されている。例えば、閾値情報１２００には、応答時間の閾値が３０００ミリ秒であることを示す。したがって、検出部４１３は、収集部４１２が取得した応答時間が３０００ミリ秒を超えた場合、処理時間の遅延が発生したと判定する。本実施例においては、閾値情報に記憶される閾値の値は固定値であるが、閾値の値は、例えば、収集部４１２が収集した応答時間の平均値の１．５倍の値といったように、収集部４１２が収集した応答時間に応じて動的に変更される態様であっても良い。
〔原因特定処理〕
本実施例において、管理サーバ４００が実行する、遅延原因を特定する処理について図１０、図１１とともに説明する。
【００３７】
図１０は、管理サーバ４００が、応答時間の遅延を検出（Ｓ０１）してから、遅延の原因を特定するために構成情報を参照する（Ｓ１０）までの手順を示すフローチャートである。
【００３８】
まず、検出部４１３が、性能情報記憶部４２２に記憶された応答時間１１０２、および閾値情報記憶部４２１に記憶された閾値情報１２００に基づいて応答時間の遅延を検知する（Ｓ０１）。具体的には、収集部４１２が収集し、性能情報記憶部４２２に記憶された応答時間１１０２の値が、閾値情報１２００に記憶された値（閾値）を超えた場合に、検出部４１３は応答時間に遅延が発生していることを検知する。例えば、図８の性能情報１１１０に示すように、採取時刻「２０１２/２/１０  １０：１１」の応答時間１１０２の値は、閾値情報１２００に示される３０００ミリ秒を超える、４９５７ミリ秒である。したがって、検出部４１３は、応答時間に遅延が発生していることを検知する。
【００３９】
応答時間の遅延の検出においては、応答時間が突発的に大きくなることが考えられる。このため、検出部４１３が実行する応答時間の遅延の検出は、例えば、閾値情報１２００に示される値を超えたことを所定回数（例えば５回）検知した場合に、応答時間に遅延が発生していることとしても良い。
【００４０】
応答時間の遅延を検出部４１３が検知すると、判定部４１５は、性能情報記憶部４２２に記憶された応答時間１１０２を参照する（Ｓ０２）。また、判定部４１５は、性能情報記憶部４２２に記憶された外部リソースの性能情報を参照する（Ｓ０３）。例えば本実施例の場合は、図７に示すように、要素Ｅ１００５が外部リソースに該当するので、判定部４１５は、性能情報記憶部４２２に記憶された要素Ｅの処理時間１１０７を参照する。
【００４１】
次に、判定部４１５は、性能情報記憶部４２２に記憶された、応答時間１１０２と要素Ｅの処理時間１１０７との間に相関関係があるかを判定する（Ｓ０４）。相関関係があるかの判定の具体的な手法については詳細を後述する。
【００４２】
ステップＳ０４において、応答時間１１０２と、要素Ｅの処理時間１１０７との間に相関関係があると判定部４１５が判定した場合、判定部４１５は、応答時間の遅延の原因が要素Ｅ１００５であることを特定する（Ｓ０５）。つまり、判定部４１５は、アプリケーションサーバ２００のクライアント装置５００に対する応答の遅延が、外部リソースである要素Ｅ１００５の処理の遅延に起因するものであると判定する。応答時間の遅延の原因を特定後、管理サーバ４００は図１０に示す遅延原因を特定する処理を終了する。
【００４３】
一方、ステップＳ０４において、応答時間１１０２と、要素Ｅの処理時間０７との間に相関関係がないと判定部４１５が判定した場合、判定部４１５は、外部リソースである要素Ｅ１００５以外の要素の処理時間を参照する（Ｓ０６）。本実施例の場合、具体的には、判定部４１５は、性能情報記憶部４２２から、要素Ａの処理時間１１０３、要素Ｂの処理時間１１０４、要素Ｃの処理時間１１０５、要素Ｄの処理時間１１０６を参照する。
【００４４】
判定部４１５は、ステップＳ０６で参照した要素の処理時間それぞれについて、応答時間１１０２との間に相関関係があるかを判定し、処理時間が応答時間１１０２との間に相関関係がある要素を抽出する（Ｓ０７）。相関関係があるかの判定の具体的な手法については、ステップＳ０４における処理と同様の手法を用いることとし、詳細を後述する。
【００４５】
判定部４１５は、ステップＳ０７の処理の結果、処理時間が応答時間１１０２との間に相関関係がある要素を抽出したかを判定する（Ｓ０８）。処理時間が応答時間１１０２との間に相関関係がある要素を抽出しなかった場合、判定部４１５は、アプリケーションの応答時間の遅延の原因が特定できないと判定し（Ｓ０９）、図１０に示す処理を終了する。
【００４６】
一方、ステップＳ０７の処理の結果、判定部４１５が、応答時間１１０２との間に相関関係がある要素の処理時間に対応する要素を抽出した場合、判定部４１５は、構成情報記憶部４２３に記憶された構成情報８００を参照する（Ｓ１０）。ステップＳ１０の処理を実行後、処理は、図１０の端子Ａから図１１の端子Ａに移行する。
【００４７】
図１１は、管理サーバ４００の判定部４１５が、ステップＳ０７で抽出した要素のすべてに関連する関連要素があるかを判定（Ｓ１１）してから、応答時間の遅延の原因を特定するまでの手順を示すフローチャートである。
【００４８】
判定部４１５は、ステップＳ０７で抽出した要素のすべてに関連する要素（関連要素）があるかを判定する（Ｓ１１）。例えば、本実施例の態様では、図７に示すように、要素Ｂ１００２、要素Ｃ１００３、要素Ｄ１００４の関連要素が、要素Ｚ１００６である。したがって、例えば、ステップＳ０７で抽出した要素が要素Ｂ１００２と要素Ｃ１００３であった場合、判定部４１５は、関連要素として要素Ｚ１００６があると判定する。
【００４９】
ステップＳ１１の判定の結果、関連要素があると判定部４１５が判定した場合、判定部４１５は、性能情報記憶部４２２に記憶された性能情報から、関連要素の処理時間を参照する（Ｓ１２）。そして、判定部４１５は、応答時間１１０２と、関連要素の処理時間との間に相関関係があるかを判定する（Ｓ１３）。相関関係があるかの判定の具体的な手法については、ステップＳ０４、Ｓ０７における処理と同様の手法を用いることとし、詳細を後述する。
【００５０】
ステップＳ１３の判定の結果、応答時間１１０２と、関連要素の処理時間との間に相関関係があると判定部４１５が判定した場合、判定部４１５は、応答時間の遅延の原因が関連要素であることを特定する（Ｓ１４）。つまり、判定部４１５は、アプリケーションサーバ２００のクライアント装置１００に対する応答の遅延が、ステップＳ０７で抽出された要素の処理の遅延によるものであり、さらに、それらの要素の処理の遅延は関連要素の処理の遅延に起因するものであると判定する。特定後、判定部４１５は処理を終了する。
【００５１】
以上のように、本実施例によれば、アプリケーションの応答に遅延が発生した場合、応答時間と、アプリケーションの各要素の処理時間との相関関係に基づいて、アプリケーションの応答遅延の原因を特定することができる。
〔相関有無の判定の詳細〕
前述したステップＳ０４、Ｓ０７およびＳ１３における、相関関係の有無を判定する手法について、詳細を説明する。
【００５２】
解析部４１４は、応答時間と、各要素の処理時間の相関係数を算出する。判定部４１５は、解析部４１４によって算出された相関係数に基づいて、応答時間と要素の相関があるか否かを判定する。ここで、相関係数とは、比較を行う２つのデータ（群）がどの程度類似しているかを示す指標である。比較する相関関数は、例えば、図１２に示す式によって算出する。
【００５３】
例えば、応答時間１１０２と、要素Ａの処理時間の相関係数を算出する場合、図１２に示す式のｘに、応答時間１１０２の値を代入する。また上記の式のｙに、ｘに代入した応答時間１１０２と同日時に収集した要素Ａの応答時間の値を代入する。代入する応答時間および処理時間の範囲は、例えば、図１１および図１２に示す処理の開始時点を基準として２０分前までの応答時間および処理時間のように、性能情報記憶部４２２に記憶された性能情報から、所定の条件で特定の範囲を選択することとしても良い。尚、選択する範囲は一態様に定められる必要はなく、情報処理システム１００の態様に応じて適宜変更されることとして良い。本実施例では、図１１および図１２に示す処理の開始時点を基準として２０分前までの応答時間および処理時間を図１２の式に代入する性能情報の対象とする。
【００５４】
尚、上記の式で算出される相関係数は−１以上１以下の値をとる。算出された相関係数が１に近いほど、正の相関があることを示す。また、算出された相関係数が−１に近いほど、負の相関があることを示す。
【００５５】
以上の手順で算出された相関係数に基づいて、判定部４１５は、応答時間と各要素の処理時間との間に相関関係があるか否かを判定する。例えば、判定部４１５によって算出された相関係数が０．７以上である場合、判定部４１５は、応答時間と各要素の処理時間との間に正の相関関係があると判定する。また、算出された相関係数が−０．７以下である場合、判定部４１５は、応答時間と各要素の処理時間との間に負の相関関係があると判定する。また、算出された相関係数が−０．７より大きく、０．７未満である場合、判定部４１５は、応答時間と各要素の処理時間との間に相関関係がないと判定する。
【００５６】
具体例を挙げて説明すると、図８の性能情報に基づいて、応答時間１１０２と要素Ａの処理時間１１０３との相関係数を算出した場合、相関係数は−０．４９（小数第３位以下は四捨五入）である。したがって、判定部４１５は、応答時間１１０２と要素Ａの処理時間１１０３との間に相関関係がないと判定する。一方、図８に示される性能情報に基づいて、応答時間１１０２と要素Ｂの処理時間１１０４との相関係数を算出した場合、相関係数は０．８４（小数第３位以下は四捨五入）である。したがって、判定部４１５は、応答時間１１０２と要素Ｂの処理時間１１０４との間に正の相関関係があると判定する。
〔応用例〕
上記の説明においては、ステップＳ１３において、応答時間１１０２と、関連要素の処理時間との間に相関関係がある場合に、アプリケーションの応答の遅延の原因を特定することができる。一方で、ステップＳ１３において、応答時間１１０２と、関連要素の処理時間との間に相関関係がない場合であっても、アプリケーションの応答の遅延の原因を特定する手法が考えられる。以降は、この手法について説明する。尚、以降の説明は、図１１におけるステップＳ１５〜Ｓ１８の処理に相当する。
【００５７】
前述したステップＳ１３の判定の結果、判定部４１５が、応答時間１１０２と関連要素の処理時間との間に相関関係がないと判定した場合、判定部４１５は、性能情報記憶部４２２に記憶された、処理時間以外の性能情報を参照する（Ｓ１５）。ここで、処理時間以外の性能情報とは、例えば、前述したスレッドプールというコンポーネントのキューに格納された作業項目の数（キュー格納数）や、ＪＤＢＣプールの接続待ちの数（接続待ち数）などである。
【００５８】
判定部４１５は、応答時間１１０２と、処理時間以外の性能情報との間に相関関係があるかを判定する（Ｓ１６）。
【００５９】
ステップＳ１３の判定の結果、応答時間１１０２と、処理時間以外の性能情報との間に相関関係があると判定部４１５が判定した場合、判定部４１５は、応答時間の遅延の原因が関連要素であることを特定する（Ｓ１７）。つまり、判定部４１５は、アプリケーションサーバ２００のクライアント装置１００に対する応答の遅延が、応答時間の遅延は、ステップＳ１６の判定に用いられた性能情報に示される性能項目に起因するものであると判定する。特定後、判定部４１５は、図１０、図１１に示す遅延原因を特定する処理を終了する。
【００６０】
一方、ステップＳ１３の判定の結果、応答時間１１０２と、処理時間以外の性能情報との間に相関関係がないと判定部４１５が判定した場合、判定部４１５は、応答時間の遅延の原因が関連要素であることを特定する（Ｓ１８）。つまり、判定部４１５は、アプリケーションサーバ２００のクライアント装置１００に対する応答の遅延が、ステップＳ０７で抽出された要素のいずれかに起因するものであると判定する。特定後、判定部４１５は、図１０、図１１に示す遅延原因を特定する処理を終了する。
【００６１】
応答時間と、処理時間以外の性能情報との相関を判定する場合も、相関係数を算出し、算出された相関係数の値に基づいて相関の有無を判定することができる。ここで、処理時間以外の性能情報とは、例えば、前述したスレッドプールというコンポーネントのキューに格納された作業項目の数（キュー格納数）や、ＪＤＢＣプールの接続待ちの数（接続待ち数）などである。
【００６２】
以降に記載する例においては、他の性能情報の一例として、スレッドプールのキュー格納数を用いる場合について説明する。尚、以降に説明する処理は、図１１のステップＳ１６に相当する処理である。
【００６３】
図１３は、収集部４１２が収集し、性能情報記憶部４２２に記憶する、アプリケーション実行時のスレッドプールのキュー格納数の推移を示す情報の一例である。例えば、図１３に示す情報の一部１３１０は、日時「２０１２／２／１０ １０：００」において、スレッドプールに格納されたキューの数が３であったことを示している。
【００６４】
応答時間と、キュー格納数との相関があるかを判定する処理について説明する。前述の処理と異なり、応答時間とキュー格納数とでは単位は収集される値の単位が異なる。本実施例では、単位の違いを吸収するため、解析部４１４が、性能情報記憶部４２２に記憶された性能情報の正規化を実行する。
【００６５】
具体的な正規化の手法は、例えば、解析部４１４が、相関係数の算出にあたり、応答時間とキュー格納数それぞれについて、計測値の中での最小値と最大値を特定する。より詳細には、正規化後の値＝（正規化前の値−正規化前の最小値）÷（正規化前の最大値−正規化後の最大値）とする。この式を用いて正規化を行うことで、最大値が１、最小値が０となるように、性能情報が正規化され、例えば、時間（ミリ秒）とキュー格納数のように、単位の異なる性能情報同士を比較することが可能となる。解析部４１４は、応答時間とキュー格納数との相関があるかを判定する場合に、上記の手法を用いてそれぞれの値を正規化する。
【００６６】
図１４に、解析部４１４により正規化が実行された後の、応答時間とキュー格納数を示す。
解析部４１４は、図１４に示す性能情報に基づいて、応答時間（正規化後）１４０２とキュー格納数（正規化後）１４０３の相関係数を算出する。そして、判定部４１５は、算出された相関係数に基づいて、応答時間（正規化後）１４０２とキュー格納数（正規化後）１４０３との相関があるかを判定する。ここで、図１０の式を用いて相関係数を算出すると、応答時間（正規化後）１４０２とキュー格納数（正規化後）１４０３の相関係数は０．８７（小数第３位以下を切り捨て）である。したがって、このとき、判定部４１５は、応答時間（正規化後）１４０２とキュー格納数（正規化後）１４０３との間に正の相関関係があると判定する。
【００６７】
以上説明したステップＳ１６の処理のように、本実施例では、性能情報記憶部４２２に記憶された応答時間の情報とキュー格納数の情報とに基づいて、判定部４１５が応答時間とキュー格納数に相関があるかと判定することもできる。ここで例えば、判定部４１５が、応答時間とキュー格納数に相関があると判定した場合、応答時間の遅延の原因は、スレッドプールのキュー格納数が増加したことであると特定することができる。
【００６８】
本実施例にて管理サーバ４００が実行する処理によって、遅延の原因と特定された要素、つまりコンポーネントや外部リソースの情報は、例えば図１に示す管理端末６００に出力される。そして、管理端末６００を用いて、システム管理者は、アプリケーションの応答時間の遅延の原因を、容易かつ迅速に把握することができる。
〔総括〕
以上のように、本実施例によれば、アプリケーションサーバ２００が実行するアプリケーションの、クライアント装置１００に対する応答時間に遅延が発生した場合、遅延の原因である要素を特定することができる。したがって、アプリケーションの応答時間の遅延の原因を、従来技術と比較して迅速に特定することができ、アプリケーションを実行する情報処理システム１００の運用管理の効率を向上させることが可能である。
【００６９】
また、本実施例によれば、アプリケーションの応答時間の推移と処理時間の推移に相関がある要素が複数抽出された場合、抽出された複数の要素が共通して依存する要素（関連要素）を特定することで、遅延の要因となる要素を絞り込むことが可能である。
【００７０】
また、本実施例によれば、応答時間と処理時間を用いて、応答時間の遅延の原因が特定できない場合であっても、処理時間以外の性能情報を用いて、応答時間の遅延の原因を特定することができる。
【００７１】
本実施例は、本発明を実現する一態様であり、本実施例における具体的な処理や、処理の手順は、本発明を適用するシステムの態様を考慮して適宜変更することが可能である。
【００７２】
例えば、性能情報を収集するタイミングや、収集する具体的な性能情報の種別は、システムの態様等にあわせて適宜変更することが可能である。また例えば、遅延を検出する閾値は、システムの態様等にあわせて適宜変更することが可能である。また例えば、相関があるか否かの判定に用いられる性能情報の範囲も、適宜変更して良い。
【００７３】
また、本実施例では、図１１のステップＳ１１において、判定部４１５は、ステップＳ０７で抽出した要素のすべてに関連する要素（関連要素）があるかを判定するかを判定することとしたが、ステップＳ１１の処理に対しても適宜変更が行われても良い。例えば、ステップＳ０７で抽出した要素の内、２つ以上の要素に関連する要素を関連要素として抽出し、判定部４１５が、応答時間と関連要素の処理時間に相関があると判定した場合には、応答時間の遅延の原因が関連要素の処理の遅延であると特定することとしても良い。
【００７４】
上述した事項以外にも、本発明の実施にあたり、実施例における具体的な処理や、処理の手順は適宜変更することが可能である。
【符号の説明】
【００７５】
１００  情報処理システム
２００  アプリケーションサーバ
３００  データベース
４００  管理サーバ
４０１  ＣＰＵ
４０２  ＲＡＭ
４０３  ＨＤＤ
４０４  ＲＯＭドライブ
４０５  ディスクＲＯＭ
４０６  アダプタ
４１１  通信部
４１２  収集部
４１３  検出部
４１４  解析部
４１５  判定部
４２１  閾値情報記憶部
４２２  性能情報記憶部
４２３  構成情報記憶部
５００  クライアント装置
６００  管理端末
７００  ネットワーク
【図１】
2014115826.tif 000003
【図２】
2014115826.tif 000004
【図３】
2014115826.tif 000005
【図４】
2014115826.tif 000006
【図５】
2014115826.tif 000007
【図６】
2014115826.tif 000008
【図７】
2014115826.tif 000009
【図８】
2014115826.tif 000010
【図９】
2014115826.tif 000011
【図１０】
2014115826.tif 000012
【図１１】
2014115826.tif 000013
【図１２】
2014115826.tif 000014
【図１３】
2014115826.tif 000015
【図１４】
2014115826.tif 000016