(57)【要約】【課題】特定のアクセスについて処理経路上の各サーバや内部ネットワークでの応答時間をリアルタイムで把握可能とする性能監視システムおよび性能監視方法を提供する。【解決手段】複数のサーバによりサービスを提供するサーバシステム１００と性能監視サーバ２００からなり、前記各サーバは、アクセスに対してリクエストＩＤを付与する手段と、前記サーバの間で前記リクエストＩＤを引き継ぐ手段と、処理の開始時と終了時に前記リクエストＩＤと時刻を含む個別ログ１２１を出力する手段とを有し、性能監視サーバ２００は、個別ログ１２１を収集した収集ログ２１０と、収集ログ２１０のデータからログを前記リクエストＩＤによって関連付けて特定し、前記各サーバでの処理の開始時刻の情報および終了時刻の情報に基づいて、前記各サーバ、前記各サーバ間のネットワーク、および前記処理経路全体での応答時間を算出するログ集計部２２０とを有する。【選択図】図１
2010117757.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバの連携によりネットワークを介してクライアント端末にサービスを提供するサーバシステムと、
前記サーバシステムの性能を監視する性能監視サーバからなる性能監視システムであって、
前記各サーバは、前記サーバが前記クライアント端末からのアクセスを最初に受けた前記サーバである場合に、前記アクセスに対して他の前記アクセスから識別可能となるようなリクエストＩＤを付与する第１の手段と、
前記サーバシステムにおいて前記アクセスに係る処理経路上の前記サーバの間で前記リクエストＩＤを引き継ぐ第２の手段と、
前記アクセスに係る処理の開始時と終了時に、前記リクエストＩＤと時刻を含むログを個別ログとして出力する第３の手段とを有し、
前記性能監視サーバは、前記各サーバにより出力された前記個別ログを収集した収集ログと、
前記収集ログのデータから、前記各サーバでの前記アクセスに係る処理の際に出力された前記ログを、前記リクエストＩＤによって関連付けて特定し、特定された前記ログにおける前記各サーバでの処理の開始時刻の情報および終了時刻の情報に基づいて、前記アクセスに係る前記サーバシステムでの処理における前記各サーバ、前記各サーバ間のネットワーク、および前記処理経路全体での応答時間を算出するログ集計部とを有することを特徴とする性能監視システム。
【請求項２】
請求項１に記載の性能監視システムにおいて、
前記アクセスは、前記サーバシステムにおける所定の処理経路上の前記各サーバによって処理されるスタンダードリクエストに係るアクセスであることを特徴とする性能監視システム。
【請求項３】
請求項２に記載の性能監視システムにおいて、
前記サーバは、前記スタンダードリクエストに係るアクセスに対して前記リクエストＩＤを付与する場合に、当該アクセスが前記スタンダードリクエストに係るものであることが識別可能となるような前記リクエストＩＤを付与することを特徴とする性能監視システム。
【請求項４】
請求項１〜３のいずれか１項に記載の性能監視システムにおいて、
前記各サーバにおける前記第１の手段、前記第２の手段および前記第３の手段は、前記各サーバ上で動作するアプリケーションプログラムの下位層で動作することを特徴とする性能監視システム。
【請求項５】
請求項１〜４のいずれか１項に記載の性能監視システムにおいて、
前記性能監視サーバは、前記ログ集計部によって算出された前記アクセスに係る前記サーバシステムでの処理における前記各サーバ、前記各サーバ間のネットワーク、および前記処理経路全体での応答時間が、それぞれあらかじめ定義された応答時間の閾値を超えているか否かを判定する評価部を有することを特徴とする性能監視システム。
【請求項６】
複数のサーバの連携によりネットワークを介してクライアント端末にサービスを提供するサーバシステムと、
前記サーバシステムの性能を監視する性能監視サーバからなるシステムにおける性能監視方法であって、
前記各サーバは、前記サーバが前記クライアント端末からのアクセスを最初に受けた前記サーバである場合に、前記アクセスに対して他の前記アクセスから識別可能となるようなリクエストＩＤを付与するステップと、
前記アクセスに係る処理の開始時に、前記リクエストＩＤと時刻を含むログを個別ログとして出力し、アプリケーションプログラムに処理を受け渡すステップと、
前記アプリケーションプログラムから処理を受け渡された後の、前記アクセスに係る処理の終了時に、前記リクエストＩＤと時刻を含むログを前記個別ログとして出力するステップと、
前記サーバシステムにおける前記アクセスに係る処理経路上の他の前記サーバに前記リクエストＩＤを引き継ぐステップとを実行し、
前記性能監視サーバは、前記各サーバにより出力された前記個別ログを収集ログに収集するステップと、
前記収集ログのデータから、前記各サーバでの前記アクセスに係る処理の際に出力された前記ログを、前記リクエストＩＤによって関連付けて特定し、特定された前記ログにおける前記各サーバでの処理の開始時刻の情報および終了時刻の情報に基づいて、前記アクセスに係る前記サーバシステムでの処理における前記各サーバ、前記各サーバ間のネットワーク、および前記処理経路全体での応答時間を算出するステップとを実行することを特徴とする性能監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバの連携によりネットワークを介してクライアント端末にサービスを提供するサーバシステムの性能を監視する性能監視システムおよび性能監視方法に関し、特に、各サーバおよび各サーバ間のネットワークにおける応答時間に基づいて性能を監視する性能監視システムおよび性能監視方法に適用して有効な技術に関するものである。
【背景技術】
【０００２】
現在では、例えばＷｅｂサーバをフロントエンドとし、業務サーバ、ＤＢサーバ、外部サーバなどが連携するシステムによって、金融取引等を含む種々のサービスがインターネット等のネットワークを介してユーザに提供されている。
【０００３】
このようなシステムにおいては、ユーザからの膨大な数のサービス要求に対して所定の応答時間等を維持しつつサービスの提供を継続する必要があり、そのためにシステムの性能監視が行われるのが一般的である。応答時間をはじめとするシステムの性能指標や障害率などのサービスレベルは、サービスの提供主体（金融機関等）とシステム運用者との間で契約等で取り決められている場合がある。
【０００４】
各サーバや内部ネットワーク等のシステムの性能監視を行う手段としては、従来から種々のものが提案されているが、一般的には、各サーバや内部ネットワークについてのＣＰＵ使用率や帯域使用状況などのリソースベースでの監視である。各サーバや内部ネットワークでの応答時間といった直接のサービスレベルの観点での監視を行うものとしては、例えば、特開２００７−２６３０３号公報（特許文献１）に開示されたシステム性能監視方法がある。
【０００５】
特許文献１に開示されたシステム性能監視方法では、各サーバや内部ネットワークのスイッチ等から、ＣＰＵ使用率や個々のアクセスに関する情報、サービス種別、応答時間などの動作状態に関する観測情報を収集し、性能の測定に必要な観測情報に不足があればアクセス発生手段により所定のアクセスを発生させて不足する観測情報を生成し、観測情報が揃うと観測情報を分析して性能を測定し評価する。
【特許文献１】特開２００７−２６３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１のような性能監視方法では、各サーバ単位で、サービス種別（ＵＲＬ：Uniform Resource Locator）毎にＣＰＵ使用率などのリソースベースでの性能監視や、応答時間によるレスポンスベースの性能監視を行うことができる。
【０００７】
しかし、性能測定の対象となるアクセスは当該サービスにおけるユーザの実取引であり、ユーザの指定内容等によってサーバでの処理内容は様々である。すなわち、同じサービス種別であってもアクセス毎にサーバでの処理内容やシステム内での処理経路（アクセスするサーバや通過する内部ネットワーク）は異なる。従って、このようにして得られた応答時間の情報は取得タイミングによって変動が大きくなる場合があり、サービスレベルを満足しているか否かの判断基準として用いるには不適格な場合がある。有効な値を得るには多数もしくは長時間のアクセスの平均を算出するなど負荷が高くなり、またリアルタイム性も乏しくなる。
【０００８】
ここで、特許文献１の性能監視方法におけるアクセス発生手段により発生された擬似アクセスを基準のアクセスとして、当該アクセスに対する応答時間を取得することによって性能測定を行うことが考えられる。しかし、特許文献１のような性能監視方法では、当該アクセスについてのクライアント端末ベースでの応答時間は測定可能であるが、収集された観測情報から当該アクセスのデータを特定することができないため、当該アクセスについての各サーバにおける応答時間などは取得することができない。
【０００９】
従って、特定のアクセスについて、クライアント端末ベースでの応答時間が処理経路の各サーバや内部ネットワークでどのような内訳となっているかというようなきめ細かい情報をリアルタイムで把握することは難しい。
【００１０】
そこで本発明の目的は、特定のアクセスについて処理経路上の各サーバや内部ネットワークでの応答時間をリアルタイムで把握可能とする性能監視システムおよび性能監視方法を提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１２】
本発明の代表的な実施の形態による性能監視システムは、複数のサーバの連携によりネットワークを介してクライアント端末にサービスを提供するサーバシステムと、前記サーバシステムの性能を監視する性能監視サーバからなり、前記各サーバは、前記サーバが前記クライアント端末からのアクセスを最初に受けた前記サーバである場合に、前記アクセスに対して他の前記アクセスから識別可能となるようなリクエストＩＤを付与する手段と、前記サーバシステムにおいて前記アクセスに係る処理経路上の前記サーバの間で前記リクエストＩＤを引き継ぐ手段と、前記アクセスに係る処理の開始時と終了時に、前記リクエストＩＤと時刻を含むログを個別ログとして出力する手段とを有し、前記性能監視サーバは、前記各サーバにより出力された前記個別ログを収集した収集ログと、前記収集ログのデータから、前記各サーバでの前記アクセスに係る処理の際に出力された前記ログを、前記リクエストＩＤによって関連付けて特定し、特定された前記ログにおける前記各サーバでの処理の開始時刻の情報および終了時刻の情報に基づいて、前記アクセスに係る前記サーバシステムでの処理における前記各サーバ、前記各サーバ間のネットワーク、および前記処理経路全体での応答時間を算出するログ集計部とを有することを特徴とするものである。
【発明の効果】
【００１３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１４】
本発明の代表的な実施の形態によれば、特定のアクセスについて処理経路上の各サーバや内部ネットワークでの個別の応答時間をリアルタイムで把握することが可能となり、処理経路上でのボトルネック等をより精度良く評価することができるレスポンスベースの性能監視システムが実現可能となる。
【００１５】
また、本発明の代表的な実施の形態によれば、所定の処理経路を通るアクセスを基準のアクセスとして用いることができ、当該アクセスについての処理経路にわたっての応答時間を把握することにより、システムの現状のサービスレベルを偏りなく評価し、また、性能予測等における基準としての適格性の高い指標を提供することができる性能監視システムの実現が可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１７】
図１は、本発明の一実施の形態である性能監視システムの構成例の概要を示した図である。性能監視システムは、例えば、Ｗｅｂサーバ、アプリケーションサーバ、ＤＢサーバや、外部システムへのゲートウェイサーバ等の複数のサーバの連携により、インターネット等のネットワーク５００を介してクライアント端末４００にサービスを提供するサーバシステム１００と、サーバシステム１００の性能を監視する性能監視サーバ２００から構成される。サーバシステム１００は、提供するサービスの種類に応じて複数存在していてもよい。
【００１８】
サーバシステム１００には、さらに、後述するスタンダードリクエストを送信する端末として、スタンダードリクエスト送信端末３００が接続されている。スタンダードリクエスト送信端末３００は、外部のネットワークであるネットワーク５００経由ではなく、内部ネットワークを介してサーバシステム１００に接続されているが、クライアント端末４００と同様に、ネットワーク５００を介して接続されていてもよい。
【００１９】
サーバシステム１００は、図１の例ではサーバＡ１１０、サーバＢ１２０、ＤＢサーバＣ１３０、サーバＤ１４０の４つのサーバがそれぞれネットワークを介して接続された構成となっているが、サーバの数や接続等の構成はこれに限るものではない。これらの各サーバが連携して、ミドルウェアやアプリケーションプログラム等による処理、ＤＢ１３２に対するデータの読み書きなどにより、サーバシステム１００として、クライアント端末４００からの要求に対してサービスを提供する。サーバシステム１００によって提供されるサービスは１種類に限らず複数種類あってもよく、その場合サービス毎に処理を行うサーバの経路が異なっていてもよい。
【００２０】
サービスを提供する際に、最初にクライアント端末４００からのアクセスを受けたサーバＡ１１０において、アクセス毎に当該アクセスに対して他のアクセスから識別可能となるようなユニークなリクエストＩＤを付与する。リクエストＩＤは各サーバ間で当該アクセスについての処理要求／応答を送受信する際に引き継ぐ。
【００２１】
各サーバは、当該アクセスについての処理要求／応答を受信して処理を実行する際に、その開始時と終了時に個別ログ１１１にログを出力する。この個別ログ１１１にはリクエストＩＤも出力する。これにより、各サーバによって書き出された個別ログ１１１において当該アクセスについてのログのエントリを特定できるようにする。なお、個別ログ１１１にはデータベースやファイルなどを用いることができる。
【００２２】
リクエストＩＤの付与や個別ログ１１１へのログの出力の機能は、各サーバにおいて、例えば、アプリケーションプログラムの下位層である基盤層で動作するモジュールに共通で組み込むなどの実装方法をとることができる。
【００２３】
このとき、各サーバの基盤層は、サーバがクライアント端末４００からのアクセスを最初に受けたサーバである場合に、当該アクセスに対してリクエストＩＤを付与する手段と、サーバシステム１００において当該アクセスに係る処理経路上のサーバの間でリクエストＩＤを引き継ぐ手段と、当該アクセスに係る処理の開始時と終了時に、リクエストＩＤと時刻を含むログを個別ログ１１１として出力する手段とを有する。
【００２４】
図２は、サーバの構成と処理の概要の例を示した図である。ここでは、例としてサーバＡ１１０について図示している。サーバＡ１１０は、例えばソフトウェアとして最下層においてＯＳ／ミドルウェア１１２が動作し、その上位層でサーバシステム１００におけるサーバとして動作するための基本機能および上述した各手段を有する基盤層１１３が動作する。さらにその上位層で各サーバ固有の業務処理等を行うアプリケーションプログラム１１４が動作する。
【００２５】
このとき、例えばサーバＡ１１０では、クライアント端末４００からの処理要求を受信した際に、ＯＳ／ミドルウェア１１２から処理を受け渡された基盤層１１３では、リクエストＩＤを付与し、リクエストＩＤと時刻を含む開始時のログを個別ログ１１１に出力してアプリケーションプログラム１１４に処理を受け渡す。アプリケーションプログラム１１４では、業務処理やＤＢアクセスなど所定の処理を行ったうえで基盤層１１３に処理を受け渡す。
【００２６】
基盤層１１３では、リクエストＩＤと時刻を含む終了時のログを個別ログ１１１に出力して他のサーバ（図２の例ではサーバＢ１２０）に処理要求を送信する。このとき、リクエストＩＤも送信することで引き継ぐ。これにより、アプリケーションプログラム１１４は、リクエストＩＤおよび個別ログ１１１への出力に関する処理に関知することなく業務処理等を行うことができる。
【００２７】
なお、図２の例ではクライアント端末４００からのアクセスを最初に受けるサーバＡ１１０での処理要求を受信した場合の処理を示しているが、処理応答を受信した場合、および他のサーバにおいても同様である。ただし、これらの場合はリクエストＩＤがすでに付与されて引き継がれているため、リクエストＩＤを付与する処理は行われない。
【００２８】
図１の構成例において、性能監視サーバ２００は、コンピュータシステムからなり、例えば、ログ集計部２２０、評価部２３０、ユーザインタフェース（Ｉ／Ｆ）部２４０を有する構成となっている。また、収集ログ２１０、およびログ実績情報２５０、応答時間閾値情報２６０、サービス経路情報２７０の各データを有する。ログ集計部２２０、評価部２３０、ユーザＩ／Ｆ部２４０は１つ以上のプログラムにより実装される。また収集ログ２１０、ログ実績情報２５０、応答時間閾値情報２６０、サービス経路情報２７０にはそれぞれデータベースやファイルなどを用いることができる。
【００２９】
収集ログ２１０は、サーバシステム１００の各サーバの個別ログ１１１を収集してマージしたものである。ログを収集する手段については種々のものが利用可能である。例えば、ＮＡＳ（Network Attached Storage）などの各サーバから共通にアクセスが可能なストレージに収集ログ２１０を配置しておき、各サーバが、個別ログ１１１に出力された内容を、収集ログ２１０に対して非同期に書き込むなどの手段をとることができる。この場合、個別ログ１１１に書き込まれるのとほぼ同時に収集ログ２１０にもデータが書き込まれるようにすることが可能である。
【００３０】
ここで、上述したように、個別ログ１１１にはリクエストＩＤの情報が出力される。従って、収集ログ２１０では、クライアント端末４００からのアクセス毎に、それぞれの個別ログ１１１で出力されたログをリクエストＩＤによって関連付けて、任意のアクセスについて処理経路にわたってログを特定することが可能である。
【００３１】
各サーバでは、処理の開始時と終了時にその時刻を含むログを出力しているため、これらのログから各サーバでの処理の応答時間を算出することができる。また、処理経路上の隣接するサーバ間における、前段のサーバの終了時のログと後段のサーバの開始時のログとから、当該サーバ間のネットワークでの応答時間を算出することができる。
【００３２】
ログ集計部２２０は、定期的に、収集ログ２１０のデータから、各サーバでの後述する所定のアクセスに係る処理の際に出力されたログをリクエストＩＤによって関連付けて特定し、特定されたログにおける各サーバでの処理の開始時刻の情報および終了時刻の情報に基づいて、当該所定のアクセスに係るサーバシステム１００での処理における各サーバ、各サーバ間のネットワーク、および処理経路全体での応答時間を算出し、その結果をログ実績情報２５０に出力する。
【００３３】
評価部２３０は、ログ実績情報２５０のデータと、サービス経路情報２７０および応答時間閾値情報２６０の内容に基づいて、当該アクセスに係るサーバシステム１００での処理における各サーバ、サーバ間のネットワーク、および処理経路全体での応答時間が、それぞれあらかじめ定義された応答時間の閾値を超えているか否かを判定し、サーバシステム１００が所定のサービスレベルを満たしているか否かを評価する。
【００３４】
なお、詳細は後述するが、サービス経路情報２７０は、サーバシステム１００が提供するサービス毎にその処理経路の情報をあらかじめ保持している。また、応答時間閾値情報２６０は、サービスの処理経路上の各サーバやサーバ間のネットワークについてあらかじめ定義された応答時間の閾値の情報を保持している。
【００３５】
ユーザＩ／Ｆ部２４０は、ディスプレイ等にサーバシステム１００の性能監視の画面を表示する手段である。例えば、各サービスの処理経路の情報を描画して、処理経路上のサーバやサーバ間ネットワーク毎に応答時間の情報を表示し、閾値を超えている場合には警告表示するような監視画面を表示する。また、他の性能測定手段によって取得したＣＰＵ使用率やネットワークの使用帯域などリソースベースでの性能監視の情報を合わせて表示したり切り替えて表示するようにしてもよい。また、応答時間が閾値を超えるサーバやネットワークがある場合には、警告表示に加えてシステム管理者などの関係者にメールを自動発信するような手段を有していてもよい。
【００３６】
このように、本実施の形態の性能監視サーバ２００では、クライアント端末４００からのアクセス毎に処理経路にわたって各サーバやサーバ間ネットワークでの応答時間の情報を取得し、閾値と比較することで性能監視を行うことができる。しかし、クライアント端末４００からのアクセスには種々のパターンがあり、その処理経路もそれぞれ異なる。従って、あるアクセスについて処理経路にわたって応答時間を算出した場合に、例えば処理経路が途中のサーバで終わっており、サーバシステム１００全体の性能指標としては不十分であったりする可能性がある。
【００３７】
そこで、本実施の形態の性能監視サーバ２００では、スタンダードリクエスト送信端末３００により、定期的にスタンダードリクエストをサーバシステム１００に対して送信する。このスタンダードリクエストは、例えば株式注文などの実際のサービスの要求であるが、あらかじめサービス提供主体と合意しておき、現実のサービスの提供（株の実際の売買など）は行われないようにしているダミー取引のリクエストである。
【００３８】
このスタンダードリクエストは、サーバシステム１００内で最も影響の大きい（応答時間の大きい）処理経路となるようにパラメータなどが設定されているのが望ましい。また、毎回必ず同じ処理経路を通って処理される。このスタンダードリクエストを基準となるアクセスとし、スタンダードリクエストに係る処理に対して各サーバで個別ログ１１１に出力されたログを収集ログ２１０から特定して応答時間を算出する。これにより、性能評価や性能予測を行う際に、基準としての適格性の高い応答時間の情報を取得することができる。なお、スタンダードリクエストは複数種類設定しておいてもよい。
【００３９】
収集ログ２１０からスタンダードリクエストについてのログを特定できるようにするため、サーバＡ１１０では、アクセス毎にリクエストＩＤを付与する際に、スタンダードリクエストに係るアクセスについては、当該アクセスがスタンダードリクエストに係るものであることが識別可能となるような特殊なリクエストＩＤを付与する。対象のアクセスがスタンダードリクエストに係るアクセスであるか否かについては、種々の方法にて判定することが可能であるが、例えば、特定のユーザＩＤからのアクセスについてはスタンダードリクエストに係るアクセスであると判定するようにしてもよい。
【００４０】
図３は、個別ログ１１１のデータ構成と具体的なデータの例を示した図である。個別ログ１１１は、リクエストＩＤフィールド３０１、サービス名フィールド３０２、サーバフィールド３０３、アプリフィールド３０４、種別フィールド３０５、Ｉ／Ｏフィールド３０６、タイムスタンプフィールド３０７、ログデータフィールド３０８の各フィールドを有する。これ以外に他のフィールドを有していてもよい。個別ログ１１１には、各サーバにおいて処理要求／応答を受信して処理を行う際に、その開始時と終了時にエントリが追加される。
【００４１】
リクエストＩＤフィールド３０１は、サーバＡ１１０によってアクセス毎に付与されたリクエストＩＤを示す。例えば、図３の例において、「Ａ００１」や「Ａ００２」は通常のアクセスに付与されたリクエストＩＤであり、「ＺＡ０１」はスタンダードリクエストに係るアクセスについて付与されたリクエストＩＤを示している。本実施の形態では、スタンダードリクエストに係るアクセスについてはリクエストＩＤの先頭を通常用いられない「Ｚ」として、スタンダードリクエストであることが識別可能なようにしているが、これに限るものではない。
【００４２】
サービス名フィールド３０２は、対象のアクセスに係るサービスの名称を示す。同一のサーバで複数のサービス（図３の例では「国内株式注文」と「国内株式照会」）を処理可能な場合もあり、これを判別するために保持する。サーバフィールド３０３およびアプリフィールド３０４は、それぞれ対象の個別ログ１１１を出力したサーバおよびアプリケーションプログラム１１４を識別する情報を示す。なお、これらの情報の命名規則等については図３の例に示すものに限らない。
【００４３】
種別フィールド３０５は、対象のアクセスについての処理要求を受信した場合のログであるか（図３の例では「Ｒｅｑ」）、処理応答を受信した場合のログであるか（図３の例では「Ｒｓｐ」）の処理方向を識別する情報を示す。また、Ｉ／Ｏフィールド３０６は、対象のアクセスについての処理の開始時のログであるか（図３の例では「ＩＮ」）、終了時のログであるか（図３の例では「ＯＵＴ」）を識別する情報を示す。これらの情報により、対象のログがどのタイミングで出力されたものかを特定することができる。
【００４４】
タイムスタンプフィールド３０７は、対象のログのエントリを出力した時刻を示す。ログデータ３０８は、各サーバにおけるアプリケーションプログラム１１４が個別にパラメータデータや処理結果などをアプリケーション的なログデータとして出力したものを示す。従って、ログデータ３０８の値のフォーマットは各サーバによって異なる場合がある。
【００４５】
なお、収集ログ２１０は各サーバの個別ログ１１１を収集してマージしたものに相当するため、データ構成は図３に示した個別ログ１１１のデータ構成と同様であり説明は省略する。
【００４６】
図４は、ログ実績情報２５０のデータ構成と具体的なデータの例を示した図である。ログ実績情報２５０は、リクエストＩＤフィールド４０１、サービス名フィールド４０２、サーバフィールド４０３、アプリフィールド４０４、種別フィールド４０５、応答時間フィールド４０６の各フィールドを有する。これ以外に他のフィールドを有していてもよい。ログ実績情報２５０は、スタンダードリクエストに係るアクセスについて、処理経路上の各サーバおよびサーバ間ネットワーク毎に応答時間の実績情報を保持する。
【００４７】
リクエストＩＤフィールド４０１およびサービス名フィールド４０２は、図３に示すリクエストＩＤフィールド３０１およびサービス名フィールド３０２と同様である。ただし、ログ実績情報２５０には、ログ集計部２２０が収集ログ２１０からスタンダードリクエストに係るアクセスについてのログのみを特定して集計した結果が含まれる。従って、リクエストＩＤフィールド４０１には、スタンダードリクエストに係るアクセスを示す値（本実施の形態では先頭が「Ｚ」）のみが含まれる。
【００４８】
サーバフィールド４０３は、スタンダードリクエストに係るアクセスの処理経路上のサーバ（図４の例では「Ａ１」「Ｂ１」）およびサーバ間ネットワーク（図４の例では「Ａ１−Ｂ１」「Ｂ１−Ａ１」）、すなわち応答時間の算出対象であるサーバ等を識別する情報を示す。
【００４９】
アプリフィールド４０４は、応答時間の算出対象であるアプリケーションプログラム１１４を識別する情報を示す。サーバフィールド４０３の値がサーバ間ネットワークを示す場合は、アプリケーションプログラム１１４が存在しないため、アプリフィールド４０４の値を例えば「−」とする。種別フィールド４０５は、対象のエントリの応答時間が処理要求を受信した場合のものであるか、処理応答を受信した場合のものであるかの処理方向を識別する情報を示す。なお、図４の例において、「Ｒｅｑ／Ｒｓｐ」の値は、処理要求を受信してアプリケーションプログラム１１４による処理を行った後、折り返して処理応答を送信するような場合（例えば図１におけるＤＢサーバＣ１３０やサーバＤ１４０など）を示している。
【００５０】
応答時間フィールド４０６は、対象のサーバもしくはサーバ間ネットワークについて、処理方向の種別毎に図３の収集ログ２１０のデータから算出された応答時間をミリ秒で示す。
【００５１】
図５は、応答時間閾値情報２６０のデータ構成と具体的なデータの例を示した図である。応答時間閾値情報２６０は、サービス名フィールド５０１、サーバフィールド５０２、アプリフィールド５０３、種別フィールド５０４、閾値フィールド５０５の各フィールドを有する。これ以外に他のフィールドを有していてもよい。応答時間閾値情報２６０は、スタンダードリクエストに係るアクセスについて、処理経路上の各サーバおよびサーバ間ネットワーク毎にあらかじめ定められた応答時間の閾値を保持する。
【００５２】
サービス名フィールド５０１、サーバフィールド５０２、アプリフィールド５０３、種別フィールド５０４は、図４で示したサービス名フィールド４０２、サーバフィールド４０３、アプリフィールド４０４、種別フィールド４０５とほぼ同様である。ただし、図５の例において、種別フィールド５０４の「Ｐａｔｈ」の値は、サーバ間ネットワークではなく当該サービスの処理経路全体を示しているものとする。閾値フィールド５０５は、対象のサーバ、サーバ間ネットワーク、もしくは処理経路全体における応答時間の閾値をミリ秒で示す。
【００５３】
図６は、サービス経路情報２７０のデータ構成と具体的なデータの例を示した図である。サービス経路情報２７０は、サービス名フィールド６０１、順序番号フィールド６０２、サーバフィールド６０３、アプリフィールド６０４、サーバ名称フィールド６０５の各フィールドを有する。これ以外に他のフィールドを有していてもよい。サービス経路情報２７０は、スタンダードリクエストに係るアクセスについての処理経路上の各サーバおよびサーバ間ネットワークに関する情報を保持する。
【００５４】
サービス名フィールド６０１、サーバフィールド６０３、アプリフィールド６０４は、図４で示したサービス名フィールド４０２、サーバフィールド４０３、アプリフィールド４０４と同様である。順序番号フィールド６０２は、対象のエントリのサーバもしくはサーバ間ネットワークが処理経路上で何番目に処理されるかを識別する情報を示す。この順にサーバもしくはサーバ間ネットワークを辿ることにより、対象のサービスについての処理経路を特定することができる。サーバ名称フィールド６０５は、対象のサーバの名称を示す。
【００５５】
図７は、本実施の形態の性能監視サーバ２００での処理の概要の例を示すフローチャートである。スタンダードリクエスト送信端末３００から定期的にスタンダードリクエストを送信して処理を行った後、性能監視サーバ２００は、処理を開始すると、各サーバの個別ログ１１１のデータを収集ログ２１０に収集してマージする（Ｓ７０１）。この処理については、上述したように、例えば、ＮＡＳなどの各サーバから共通にアクセスが可能なストレージに収集ログ２１０を配置しておき、各サーバが、個別ログ１１１に出力された内容を、収集ログ２１０に対して非同期に書き込むなどの手段をとることができる。
【００５６】
次に、ログ集計部２２０により、収集ログ２１０のデータから、スタンダードリクエストの種別毎に、各サーバでのスタンダードリクエストに係る処理の際に出力されたログをリクエストＩＤによって関連付けて特定し、特定されたログにおける各サーバでの処理の開始時刻の情報および終了時刻の情報に基づいて、当該スタンダードリクエストに係るサーバシステム１００での処理における各サーバ、サーバ間のネットワーク、および処理経路全体での応答時間を算出し、ログ実績情報２５０に格納する（Ｓ７０２）。スタンダードリクエストの送信と応答時間の算出は、例えば１時間に１回などの頻度で行うことができる。
【００５７】
次に、全てのスタンダードリクエストの種別についてのループ処理を開始する（Ｓ７０３）。このループ処理では、さらに対象のスタンダードリクエストに係るアクセスについての処理経路上の全てのサーバおよびサーバ間ネットワークについてのループ処理を開始する（Ｓ７０４）。処理経路上のサーバおよびサーバ間ネットワークについては、例えば、サービス経路情報２７０から知ることが可能である。
【００５８】
サーバおよびサーバ間ネットワークについてのループ処理では、対象のサーバもしくはサーバ間ネットワークについて、ログ実績情報２５０に保持された応答時間をユーザＩ／Ｆ部２４０により監視画面上の該当箇所に表示する（Ｓ７０５）。次に、評価部２３０により、応答時間が応答時間閾値情報２６０にあらかじめ設定された閾値を超えているか否かを判定する（Ｓ７０６）。閾値を超えている場合は、ユーザＩ／Ｆ部２４０により監視画面上の該当箇所に警告表示をし、システム管理者等にメール等で通知を行う（Ｓ７０７）。
【００５９】
以上のステップＳ７０５〜Ｓ７０７の処理を処理経路上の全てのサーバおよびサーバ間ネットワークについて繰り返し（Ｓ７０８）、さらにステップＳ７０４〜Ｓ７０８の処理を全てのスタンダードリクエストの種別について繰り返して（Ｓ７０９）、１サイクルの処理を終了する。
【００６０】
図８は、ユーザＩ／Ｆ部２４０が表示する監視画面の例を示した図である。監視画面には、例えば、各サービスの種類および各サービスの処理経路と処理経路上のサーバ、サーバ間ネットワークの論理的配置が視覚的に容易に把握可能なように表示され、さらに、各サーバ、サーバ間ネットワークでの応答時間が表示されている。また、応答時間が閾値を超える部分については強調表示するなどして警告表示を行っている。
【００６１】
また、各サービス毎に、処理経路全体での目標応答時間とそれに対する各測定タイミングでの応答時間の実績情報が表形式で表示されている。ここでも、応答時間が閾値を超えるサービスについては強調表示するなどして警告表示を行っている。
【００６２】
なお、図８の監視画面はあくまでも一例であり、他の表示形式であってもよい。また、例えば、ＣＰＵ使用率などの他のリソースベースでの性能測定の手段による測定結果と組み合わせて、リソース使用量が所定の閾値を超えた場合に該当のサーバについて警告表示したり、当該サーバを選択すると性能測定結果の詳細表示を行ったりしてもよい。また、サービス毎の応答時間を表示するサービスビューからネットワーク構成に基づくネットワークビューに監視画面を切り替えて、ネットワーク構成に基づいて各回線についての帯域利用率や応答時間についての性能測定値を表示・監視可能なようにしてもよい。
【００６３】
以上に説明したように、本実施の形態の性能監視サーバ２００によれば、スタンダードリクエストに係るアクセスについて、リクエストＩＤに基づいて各サーバで出力されたログを関連付けて、一連の処理について、各サーバにおける処理開始時と終了時のログから応答時間を算出する。これにより、処理経路上の各サーバおよびサーバ間ネットワークでの応答時間をリアルタイムで把握することが可能となり、処理経路上でのボトルネック等をより精度良く評価することができる。また、ハブなどのログ出力機能を有さないネットワーク機器によって構成されるサーバ間ネットワークの応答時間も把握することが可能となる。
【００６４】
また、所定の処理経路上のサーバによって常に処理されるスタンダードリクエストを用いて、スタンダードリクエストに係るアクセスについての処理経路にわたっての応答時間を把握することにより、システムの現状のサービスレベルを偏りなく評価し、また、性能評価や性能予測等における基準としての適格性の高い指標を提供することができる。
【００６５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６６】
本発明は、複数のサーバの連携によりネットワークを介してクライアント端末にサービスを提供するサーバシステムの性能を監視する性能監視システムおよび性能監視方法に利用可能である。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施の形態である性能監視システムの構成例の概要を示した図である。
【図２】本発明の一実施の形態におけるサーバの構成と処理の概要の例を示した図である。
【図３】本発明の一実施の形態における個別ログのデータ構成と具体的なデータの例を示した図である。
【図４】本発明の一実施の形態におけるログ実績情報のデータ構成と具体的なデータの例を示した図である。
【図５】本発明の一実施の形態における応答時間閾値情報のデータ構成と具体的なデータの例を示した図である。
【図６】本発明の一実施の形態におけるサービス経路情報のデータ構成と具体的なデータの例を示した図である。
【図７】本発明の一実施の形態における性能監視システムでの処理の概要の例を示すフローチャートである。
【図８】本発明の一実施の形態におけるユーザＩ／Ｆ部が表示する監視画面の例を示した図である。
【符号の説明】
【００６８】
１００…サーバシステム、１１０…サーバＡ，１１１…個別ログ、１１２…ＯＳ／ミドルウェア、１１３…基盤層、１１４…アプリケーションプログラム、１２０…サーバＢ、１２１…個別ログ、１３０…ＤＢサーバＣ、１３１…個別ログ、１４０…サーバＤ、１４１…個別ログ、２００…性能監視サーバ、２１０…収集ログ、２２０…ログ集計部、２３０…評価部、２４０…ユーザＩ／Ｆ部、２５０…ログ実績情報、２６０…応答時間閾値情報、２７０…サービス経路情報、３００…スタンダードリクエスト送信端末、４００…クライアント端末、５００…ネットワーク、
３０１…リクエストＩＤフィールド、３０２…サービス名フィールド、３０３…サーバフィールド、３０４…アプリフィールド、３０５…種別フィールド、３０６…Ｉ／Ｏフィールド、３０７…タイムスタンプフィールド、３０８…ログデータフィールド、
４０１…リクエストＩＤフィールド、４０２…サービス名フィールド、４０３…サーバフィールド、４０４…アプリフィールド、４０５…種別フィールド、４０６…応答時間フィールド、
５０１…サービス名フィールド、５０２…サーバフィールド、５０３…アプリフィールド、５０４…種別フィールド、５０５…閾値フィールド、
６０１…サービス名フィールド、６０２…順序番号フィールド、６０３…サーバフィールド、６０４…アプリフィールド、６０５…サーバ名称フィールド。
【図１】
2010117757.tif 000003
【図２】
2010117757.tif 000004
【図３】
2010117757.tif 000005
【図４】
2010117757.tif 000006
【図５】
2010117757.tif 000007
【図６】
2010117757.tif 000008
【図７】
2010117757.tif 000009
【図８】
2010117757.tif 000010