(57)【特許請求の範囲】
【請求項１】
端末から受信したトランザクションに応じてアプリケーションプログラムをそれぞれ実行する複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれの要求に基づきデータベースをアクセスするデータベースサーバとを備える情報システムであって、
前記複数のアプリケーションサーバのそれぞれについて、当該アプリケーションサーバが受信した前記トランザクションを前記アプリケーションプログラムが処理する処理時間を監視する処理時間監視部と、
前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記処理時間が予め定められた許容範囲内でない前記アプリケーションサーバにボトルネックがあると特定するボトルネック特定部と、
ボトルネックがあると特定された前記アプリケーションサーバ上で前記アプリケーションプログラムを実行する多重度を低下させる負荷制御部と
を備える情報システム。
【請求項２】
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記アプリケーションサーバ数未満のしきい値以下の数の前記アプリケーションサーバについて前記処理時間が予め定められた許容範囲内でないことを条件として、当該アプリケーションサーバにボトルネックがあると特定する手段と、
前記しきい値を超える数の前記アプリケーションサーバについて前記処理時間が予め定められた許容範囲内でない場合に、前記データベースサーバにボトルネックがあると特定する手段を備え、
前記負荷制御部は、当該アプリケーションサーバにボトルネックがあると特定された場合に、当該アプリケーションサーバ上で前記アプリケーションプログラムを実行する多重度を低下させ、
前記データベースサーバにボトルネックがあると特定された場合に、前記複数のアプリケーションサーバのそれぞれについて前記アプリケーションプログラムを実行する多重度を低下させる
請求項１記載の情報システム。
【請求項３】
前記複数のアプリケーションサーバのそれぞれは、当該アプリケーションサーバ上で実行されるべき優先度が設定された複数種類の前記アプリケーションプログラムのうち、前記端末から受信した前記トランザクションの種類に対応する前記アプリケーションプログラムを実行し、
前記処理時間監視部は、前記複数のアプリケーションサーバのそれぞれについて、前記アプリケーションプログラム毎の前記トランザクションの処理時間を監視し、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記アプリケーションプログラム毎の前記処理時間の監視結果に基づいて、一の前記アプリケーションプログラムの前記処理時間が予め定められた許容範囲内でないことを条件として、当該アプリケーションサーバにボトルネックがあると特定し、
前記負荷制御部は、ボトルネックがあると特定された前記アプリケーションサーバ上で前記一のアプリケーションプログラムより優先度が低い前記アプリケーションプログラムを実行する多重度を低下させる
請求項１記載の情報システム。
【請求項４】
前記複数のアプリケーションサーバのそれぞれは、当該アプリケーションサーバ上で実行されるべき優先度が設定された複数種類の前記アプリケーションプログラムのうち、前記端末から受信した前記トランザクションの種類に対応する前記アプリケーションプログラムを実行し、
前記処理時間監視部は、前記複数のアプリケーションサーバのそれぞれについて、前記アプリケーションプログラム毎の前記トランザクションの処理時間を監視し、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記アプリケーションプログラム毎の前記処理時間の監視結果に基づいて、予め定められたしきい値を超える数の前記アプリケーションサーバについて、一の前記アプリケーションプログラムの前記処理時間が予め定められた許容範囲内でない場合に、前記データベースサーバにボトルネックがあると特定し、
前記負荷制御部は、ボトルネックがあると特定された前記データベースサーバにおける、前記一のアプリケーションプログラムより優先度が低い前記アプリケーションプログラムの要求に基づき前記データベースをアクセスする処理の優先度を低下させる
請求項１記載の情報システム。
【請求項５】
前記複数のアプリケーションサーバのそれぞれは、当該アプリケーションサーバ上で実行されるべき優先度が設定された複数種類の前記アプリケーションプログラムのうち、前記端末から受信した前記トランザクションの種類に対応する前記アプリケーションプログラムを実行し、
前記処理時間監視部は、前記複数のアプリケーションサーバのそれぞれについて、前記アプリケーションプログラム毎の前記トランザクションの処理時間を監視し、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記アプリケーションプログラム毎の前記処理時間の監視結果に基づいて、予め定められたしきい値を超える数の前記アプリケーションサーバについて、一の前記アプリケーションプログラムの前記処理時間が予め定められた許容範囲内でない場合に、前記データベースサーバにボトルネックがあると特定し、
前記負荷制御部は、ボトルネックがあると特定された前記データベースサーバにおける、前記一のアプリケーションプログラムからの要求に基づき前記データベースをアクセスする処理の優先度を低下させる
請求項１記載の情報システム。
【請求項６】
前記複数のアプリケーションサーバのそれぞれについて、当該アプリケーションサーバが有する、前記アプリケーションプログラムにより使用される資源であるアプリケーションサーバ資源の使用量を監視する処理負荷監視部を更に備え、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記アプリケーションサーバ数未満のしきい値以下の数の前記アプリケーションサーバについて前記処理時間が予め定められた許容範囲内でない場合に、当該アプリケーションサーバにボトルネックがあると特定し、
前記負荷制御部は、ボトルネックがあると特定された前記アプリケーションサーバにおける前記アプリケーションサーバ資源の使用量が予め定められた許容範囲内でないことを条件として、ボトルネックがあると特定された前記アプリケーションサーバ上で前記アプリケーションプログラムを実行する多重度を低下させる
請求項１記載の情報システム。
【請求項７】
前記処理負荷監視部は、前記データベースサーバが有する、前記アプリケーションプログラムが前記データベースをアクセスする場合に使用される資源であるデータベースサーバ資源の使用量を更に監視し、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記しきい値を超える数の前記アプリケーションサーバについて前記処理時間が予め定められた許容範囲内でないことを条件として、前記データベースサーバにボトルネックがあると特定し、
前記負荷制御部は、ボトルネックがあると特定された前記データベースサーバにおける前記データベースサーバ資源の使用量が予め定められた許容範囲内でない場合に、前記複数のアプリケーションサーバのそれぞれについて当該アプリケーションサーバ上で前記アプリケーションプログラムを実行する多重度を低下させる
請求項６記載の情報システム。
【請求項８】
前記複数のアプリケーションサーバのそれぞれについて、当該アプリケーションサーバが有する、前記アプリケーションプログラムにより使用される資源である複数のアプリケーションサーバ資源の使用量と、前記データベースサーバが有する、前記アプリケーションプログラムが前記データベースをアクセスする場合に使用される資源である複数のデータベースサーバ資源の使用量とを監視する処理負荷監視部を更に備え、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記複数のアプリケーションサーバ及び前記データベースサーバのうち少なくとも１つの前記アプリケーションサーバ又は前記データベースサーバにボトルネックがあると特定し、
前記負荷制御部は、
前記アプリケーションサーバにおける前記複数のアプリケーションサーバ資源、及び、前記データベースサーバにおける前記複数のデータベースサーバ資源のそれぞれに対応して、当該資源を有するサーバにボトルネックがあると特定され、かつ、当該資源の使用量が予め定められた許容範囲内でない場合に前記負荷制御部が行うべき負荷制御処理を指定する負荷制御情報を格納する負荷制御情報格納部と、
ボトルネックがあると特定されたサーバが有する資源の使用量が予め定められた許容範囲内でない場合に、当該資源がボトルネックであると特定し、前記アプリケーションサーバ資源がボトルネックであると特定された場合に、当該資源に対応して前記負荷制御情報格納部に格納された前記負荷制御情報を取得し、前記データベースサーバ資源がボトルネックであると特定された場合に、当該資源に対応して前記負荷制御情報格納部に格納された前記負荷制御情報を取得する負荷制御情報取得部と、
ボトルネックがあると特定されたサーバのボトルネックを解消するべく、前記負荷制御情報により指定される前記負荷制御処理を実行する負荷制御処理部と
を有する
請求項１記載の情報システム。
【請求項９】
前記複数のアプリケーションサーバのそれぞれは、複数種類の前記アプリケーションプログラムのうち、前記端末から受信した前記トランザクションの種類に対応する前記アプリケーションプログラムを実行し、
前記処理時間監視部は、前記複数のアプリケーションサーバのそれぞれについて、前記アプリケーションプログラム毎の前記トランザクションの処理時間を監視し、
前記処理負荷監視部は、前記データベースサーバについて、当該データベースサーバが有する前記データベースサーバ資源であるプロセッサ及びデータベースの格納されているディスクの使用量を監視し、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記アプリケーションプログラム毎の前記処理時間の監視結果に基づいて、前記しきい値を超える数の前記アプリケーションサーバについて、一の前記アプリケーションプログラムの前記処理時間が予め定められた許容範囲内でないことを条件として、前記データベースサーバにボトルネックがあると特定し、
前記負荷制御情報格納部は、前記データベースサーバにおける前記アプリケーション資源であるプロセッサに対応する第１の前記負荷制御情報と、データベースの格納されているディスクに対応する第２の前記負荷制御情報とを格納し、
前記負荷制御情報取得部は、ボトルネックがあると特定された前記データベースサーバが有するプロセッサの使用量が予め定められた使用量を超える場合に前記第１の負荷制御情報を取得し、ボトルネックがあると特定された前記データベースサーバが有するデータベースの格納されているディスクの使用量が予め定められた使用量を超える場合に前記第２の負荷制御情報を取得し、
前記負荷制御処理部は、前記負荷制御情報取得部から前記第１の負荷制御情報が取得された場合に、前記複数のアプリケーションサーバのそれぞれについて前記一のアプリケーションプログラムを実行する多重度を低下させ、前記負荷制御情報取得部から前記第２の負荷制御情報が取得された場合に、前記データベースサーバにおいて当該制御情報で指定された当該ディスクを使用するアプリケーションプログラムのグループの中で、前記一のアプリケーションプログラムより優先度が低い前記アプリケーションプログラムからの要求に基づき前記データベースをアクセスする処理の優先度を低下させる
請求項８記載の情報システム。
【請求項１０】
前記負荷制御情報格納部に格納された一の前記負荷制御情報は、複数の前記負荷制御処理と前記複数の負荷制御処理の優先順位とを指定する情報であり、
前記負荷制御処理部は、前記一の負荷制御情報により指定された一の前記負荷制御処理を実行した後、ボトルネックがあると特定されたサーバのボトルネックが予め設定された設定期間の間に解消しないことを検出した場合に、前記一の負荷制御情報より指定される前記一の負荷制御処理より優先順位が低い他の前記負荷制御処理を実行する
請求項８記載の情報システム。
【請求項１１】
前記複数のアプリケーションサーバのそれぞれは、複数種類の前記アプリケーションプログラムのうち、前記端末から受信した前記トランザクションの種類に対応する前記アプリケーションプログラムを実行し、
前記処理時間監視部は、前記複数のアプリケーションサーバのそれぞれについて、前記アプリケーションプログラム毎の前記トランザクションの処理時間を監視し、
前記ボトルネック特定部は、前記複数のアプリケーションサーバのそれぞれについての前記アプリケーションプログラム毎の前記処理時間の監視結果に基づいて、前記アプリケーションサーバ数未満のしきい値以下の前記アプリケーションサーバについて一の前記アプリケーションプログラムの前記処理時間が予め定められた許容範囲内でない場合に、当該アプリケーションサーバにボトルネックがあると特定し、
前記負荷制御部は、ボトルネックがあると特定された前記アプリケーションサーバ上で前記一のアプリケーションプログラムより低い優先度に設定された前記アプリケーションプログラムを実行する多重度を低下させ、当該アプリケーションサーバのボトルネックが前記設定期間の間に解消しないことを検出した場合に、当該アプリケーションサーバ上で前記一のアプリケーションプログラムを実行する多重度を更に低下させる
請求項８記載の情報システム。
【請求項１２】
端末から受信したトランザクションに応じてアプリケーションプログラムをそれぞれ実行する複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれの要求に基づきデータベースをアクセスするデータベースサーバとを備える情報システムをコンピュータにより制御する負荷制御方法であって、
前記複数のアプリケーションサーバのそれぞれについて、当該アプリケーションサーバが受信した前記トランザクションを前記アプリケーションプログラムが処理する処理時間をコンピュータにより監視するステップと、
前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記処理時間が予め定められた許容範囲内でない前記アプリケーションサーバにボトルネックがあるとコンピュータにより特定するステップと、
ボトルネックがあると特定された前記アプリケーションサーバ上で前記アプリケーションプログラムを実行する多重度をコンピュータにより低下させるステップと
を含む方法。
【請求項１３】
端末から受信したトランザクションに応じてアプリケーションプログラムをそれぞれ実行する複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれの要求に基づきデータベースをアクセスするデータベースサーバとを備える情報システムをコンピュータにより制御させる負荷制御プログラムであって、
前記コンピュータを、
前記複数のアプリケーションサーバのそれぞれについて、当該アプリケーションサーバが受信した前記トランザクションを前記アプリケーションプログラムが処理する処理時間を監視する処理時間監視部と、
前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記処理時間が予め定められた許容範囲内でない前記アプリケーションサーバにボトルネックがあると特定するボトルネック特定部と、
ボトルネックがあると特定された前記アプリケーションサーバ上で前記アプリケーションプログラムを実行する多重度を低下させる負荷制御部と
して機能させる負荷制御プログラム。
【請求項１４】
請求項１３に記載の負荷制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報システム、負荷制御方法、負荷制御プログラム及び記録媒体に関する。特に本発明は、複数のアプリケーションサーバ及びデータベースサーバを備え、負荷制御を行う情報システムと、その負荷制御方法、負荷制御プログラム及び記録媒体とに関する。
【背景技術】
【０００２】
近年、Ｗｅｂページの表示と連携してサーバサイドでアプリケーションを実行可能とする各種の基盤技術が提供されていることから、利用者に良好なユーザインターフェイスを提供するＷｅｂ機能を用いて情報システムを実現することが主流となっている。
このような情報システムの負荷を制御する技術として、特開２００１−１６００４０号公報に、１台のコンピュータ上でサーバプログラムを実行させ、サーバプログラムが当該コンピュータのＣＰＵを使用する使用率が高い場合にサーバプログラムの多重度を増加させる技術が開示されている。
また、特開２０００−２６８０１２号公報に、ＬＡＮ接続された負荷分散装置とサーバコンピュータとを備えるクライアントサーバシステムにおいて、サーバコンピュータの負荷がしきい値を超える場合に、負荷分散装置が端末からのトランザクションの受け入れを中断する技術が開示されている。
【特許文献１】特開２００１−１６００４０号公報
【特許文献２】特開２０００−２６８０１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
大規模な情報システムは、複数のアプリケーションサーバと、１台又は多重化されたデータベースサーバとを備えて構成される。アプリケーションサーバは、利用者によりＷｅｂページがアクセスされた場合に当該Ｗｅｂページに対応付けられたアプリケーションを実行し、実行結果を含めたＷｅｂページのデータを当該端末へ返信する。データベースサーバは、アプリケーションサーバからデータベースのアクセス要求を受けてデータベースをアクセスする。このような情報システムにおいては、利用者の端末から受信したトランザクションに対するレスポンス時間を許容範囲内に抑え、利用者の作業に遅延を生じさせないことが重要である。しかしながら、上記の技術においては、サーバプログラムやサーバコンピュータの負荷を一定以下に保つことを目的としており、トランザクションのレスポンス時間に基づいた制御を行うことができず、また、アプリケーションサーバ及びデータベースサーバのそれぞれに適した負荷制御処理を行うことができなかった。【０００４】
そこで本発明は、上記の課題を解決することのできる情報システム、負荷制御方法、負荷制御プログラム及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００５】
本発明の第１の形態によれば、端末から受信したトランザクションに応じてアプリケーションプログラムをそれぞれ実行する複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれの要求に基づきデータベースをアクセスするデータベースサーバとを備える情報システムであって、前記複数のアプリケーションサーバのそれぞれについて、当該アプリケーションサーバが受信した前記トランザクションを前記アプリケーションプログラムが処理する処理時間を監視する処理時間監視部と、前記複数のアプリケーションサーバのそれぞれについての前記処理時間の監視結果に基づいて、前記処理時間が予め定められた許容範囲内でない前記アプリケーションサーバにボトルネックがあると特定するボトルネック特定部と、ボトルネックがあると特定された前記アプリケーションサーバ上で前記アプリケーションプログラムを実行する多重度を低下させる負荷制御部とを備える情報システムと、当該情報システムに関する負荷制御方法、負荷制御プログラム、及び記録媒体を提供する。【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【０００７】
本発明によれば、複数のアプリケーションサーバ及びデータベースサーバを備える情報システムにおいて、各アプリケーションサーバにおけるトランザクションの処理時間に応じて適切な負荷制御を行うことができる。
【発明を実施するための最良の形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【０００９】
図１は、本実施形態に係る情報システム１０の構成を示す。本実施形態に係る情報システム１０は、複数のアプリケーションサーバ１２０のそれぞれにおけるトランザクションの処理時間と、複数のアプリケーションサーバ１２０及びデータベースサーバ１５０の処理負荷とを監視し、監視結果に基づいてアプリケーションサーバ１２０又はデータベースサーバ１５０のボトルネックを解消することができる適切な負荷制御を行う。また、本実施形態に係る情報システム１０は、複数種類の業務等に対応する複数種類のアプリケーションプログラムを統合して稼動させた場合において、あるアプリケーションプログラムに生じた性能低下要因が他のアプリケーションプログラムの処理性能に影響を与えないように適切に負荷制御を行うことができる。【００１０】
情報システム１０は、当該情報システム１０を利用する利用者がそれぞれ使用する複数の端末１００にインターネットやイントラネット等のネットワーク１１０を介して接続されるサーバコンピュータシステムであり、複数のアプリケーションサーバ（ＷＡＳ：Web Application Server）１２０、データベースサーバ（ＤＢＳ：Database Server）１５０、及び負荷制御サーバ１６０を備える。
複数のＷＡＳ１２０のそれぞれは、端末１００から受信したＨＴＴＰリクエスト等のトランザクションに応じて、Ｊａｖａ（登録商標）サーブレットやＪＳＰ（Java Server Pages）等によるアプリケーションプログラムを実行するサーバコンピュータである。また、ＷＡＳ１２０は、実行結果を含めたＷｅｂページを端末１００へ返信する。このアプリケーションプログラムの実行中に、ＷＡＳ１２０は、アプリケーションプログラムによる指示に基づきデータ−ベース（ＤＢ）１５２のアクセスをＤＢＳ１５０に要求する。
ＤＢＳ１５０は、複数のＷＡＳ１２０のそれぞれの要求に基づきＤＢ１５２をアクセスし、アクセス結果を要求元のＷＡＳ１２０に返信するサーバコンピュータである。負荷制御サーバ１６０は、複数のＷＡＳ１２０のそれぞれにおけるトランザクションの処理時間と、複数のＷＡＳ１２０及びＤＢＳ１５０の処理負荷とを監視し、監視結果に基づいて情報システム１０の負荷制御を行う。【００１１】
次に、ＷＡＳ１２０、ＤＢＳ１５０、及び負荷制御サーバ１６０の構成を示す。  複数のＷＡＳ１２０のそれぞれは、ＨＴＴＰサーバ部１２５と、ＷＥＢアプリケーションサーバ部１３０と、処理時間取得部１４０と、処理負荷取得部１４２と、サーバ内負荷制御部１４４とを有する。ＨＴＴＰサーバ部１２５は、端末１００からトランザクションを受信し、当該トランザクションに対応するＷｅｂページを端末１００へ返信する。なお、当構成においてＨＴＴＰサーバ部１２５は、物理的に別の筐体であるサーバ上で稼働していてもよい。
ＷＥＢアプリケーションサーバ部１３０は、端末１００から受信したトランザクションに応じてアプリケーションプログラム１３４を実行する。本実施形態において、複数のＷＡＳ１２０のそれぞれにおけるＷＥＢアプリケーションサーバ部１３０は、複数種類のアプリケーションプログラム１３４を混載し、複数種類のアプリケーションプログラム１３４のうち、端末１００から受信したトランザクションの種類に対応するアプリケーションプログラム１３４を実行する。ここで複数種類のアプリケーションプログラム１３４は、当該ＷＡＳ１２０上で実行されるべき優先度がそれぞれ設定される。より具体的には、複数種類のアプリケーションプログラム１３４は、優先度に応じて複数のグループに分類され、各アプリケーションプログラム１３４が属するグループに指定された優先度で実行される。【００１２】
ＷＥＢアプリケーションサーバ部１３０は、多重度制御部１３２、ＤＢアクセス制御部１３６、及びＤＢコネクションプール１３８を含む。多重度制御部１３２は、複数種類のアプリケーションプログラム１３４のそれぞれを実行すべき多重度を制御する。ここでアプリケーションプログラム１３４を実行する多重度とは、同一種類のトランザクションを複数受信した場合に、それぞれのトランザクションに対応してアプリケーションプログラム１３４の並行して動作させる数の最大値である。
ＤＢアクセス制御部１３６は、複数種類のアプリケーションプログラム１３４のそれぞれによるＤＢ１５２のアクセス要求を併せて処理する。そしてＤＢアクセス制御部１３６は、ＤＢＳ１５０に対するアクセス要求の発行数をアプリケーションプログラム１３４毎に制限すると共に、ＤＢＳ１５０内部で複数種類のアプリケーションプログラム１３４のそれぞれの優先度を特定可能とするようにＤＢコネクション１３９を割り当てる。より具体的には、ＤＢアクセス制御部１３６は、優先度毎に異なるユーザＩＤを用いてＤＢＳ１５０に接続することにより、ＤＢＳ１５０内部でアクセス要求の優先度を特定可能とする。
ＤＢコネクションプール１３８は、複数のＤＢコネクション１３９を含む。それぞれのＤＢコネクション１３９は、ＤＢ１５２のアクセス要求を発行するためにＤＢＳ１５０と接続する接続点となる。
以上に示した多重度制御部１３２及びＤＢアクセス制御部１３６は、１台のＷＡＳ１２０上で複数種類のアプリケーションプログラム１３４を統合して効率良く稼動させるためのフレームワークを実現するクラス関数等を、ＷＡＳ１２０上で実行することにより実現されてよい。【００１３】
処理時間取得部１４０は、個々のトランザクションの処理時間やデータベース処理時間等を多重度制御部１３２およびＤＢアクセス制御部１３６から取得し、アプリケーションプログラム１３４毎の処理時間及びデータベース処理時間等の統計を取る。ここで、端末１００から受信したトランザクションをアプリケーションプログラム１３４が処理する処理時間は、トランザクションのレスポンス時間とも呼ばれる。そして、処理時間取得部１４０は、一のアプリケーションプログラム１３４の処理時間が許容範囲内でない場合に、当該アプリケーションプログラム１３４についてサービスレベルが低下していることを示すサービスレベル低下イベントを負荷制御サーバ１６０へ通知する。ここで処理時間取得部１４０は、このサービスレベル低下イベントにデータベース処理時間等の情報を含めて負荷制御サーバ１６０へ通知してよい。【００１４】
処理負荷取得部１４２は、当該ＷＡＳ１２０が有する、アプリケーションプログラム１３４によりそれぞれ使用される資源である１又は複数のアプリケーションサーバ資源の使用量を、例えばＷＡＳ１２０上で動作するオペレーティングシステムのパフォーマンスモニタ機能等から取得し、当該アプリケーションサーバ資源の使用量の統計を取る。そして、処理負荷取得部１４２は、一のアプリケーションサーバ資源の使用量が許容範囲内で無い場合に、当該アプリケーションサーバ資源の処理負荷が高負荷であることを示すシステム資源高負荷イベントを負荷制御サーバ１６０へ通知する。以上において処理負荷取得部１４２は、アプリケーションサーバ資源の使用量をアプリケーションプログラム１３４毎に取得し、当該アプリケーションプログラム１３４による使用量が許容範囲で無い場合にシステム資源高負荷イベントを負荷制御サーバ１６０へ通知してもよく、これに代えて処理負荷取得部１４２は、全てのアプリケーションプログラム１３４によるアプリケーションサーバ資源の使用量の合計を取得し、当該使用量が許容範囲内で無い場合にシステム資源高負荷イベントを負荷制御サーバ１６０へ通知してもよい。【００１５】
サーバ内負荷制御部１４４は、負荷制御サーバ１６０により実行される負荷制御処理に応じて、当該ＷＡＳ１２０内における負荷制御を行う。本実施形態に係るサーバ内負荷制御部１４４は、ＷＡＳ１２０内における負荷制御として、各アプリケーションプログラム１３４のそれぞれを実行する多重度を変更する。【００１６】
ＤＢＳ１５０は、ＤＢ１５２と、ＤＢ処理要求Ｉ／Ｆ部１５３と、ＤＢエンジン１５４と、処理負荷取得部１５６と、サーバ内負荷制御部１５８とを有する。ＤＢ１５２は、複数のアプリケーションプログラム１３４のそれぞれによりアクセスされるデータを格納する。複数のＤＢ処理要求Ｉ／Ｆ部１５３のそれぞれは、複数のＤＢコネクション１３９のそれぞれに対応して設けられ、ＷＡＳ１２０がＤＢ１５２に対するアクセス要求を発行するための接続点となる。本実施形態において、ＷＡＳ１２０は、複数のアプリケーションプログラム１３４のそれぞれの優先度に応じて異なるユーザＩＤに対応するＤＢ処理要求Ｉ／Ｆ部１５３に接続する。このためＤＢＳ１５０は、ユーザＩＤに基づいてアクセス要求を発行したアプリケーションプログラム１３４の優先度を識別することができる。【００１７】
ＤＢエンジン１５４は、複数のＷＡＳ１２０のそれぞれが複数のアプリケーションプログラム１３４のそれぞれの指示に基づき発行するＳＱＬコマンド等のアクセス要求に基づき、ＤＢ１５２をアクセスする。処理負荷取得部１５６は、ＤＢＳ１５０が有する、アプリケーションプログラム１３４がＤＢ１５２をアクセスする場合に使用される資源である１又は複数のデータベースサーバ資源の使用量を、例えばＤＢＳ１５０上で動作するオペレーティングシステムのパフォーマンスモニタ機能から取得し、当該データベースサーバ資源の使用量の統計を取る。そして、処理負荷取得部１５６は、一のデータベースサーバ資源の使用量が許容範囲内でない場合に、当該データベースサーバ資源の処理負荷が高負荷であることを示すシステム資源高負荷イベントを負荷制御サーバ１６０へ通知する。以上において処理負荷取得部１５６は、データベースサーバ資源の使用量をＤＢ処理要求Ｉ／Ｆ部１５３毎に取得し、対応するアプリケーションプログラム１３４による使用量が許容範囲内でない場合にシステム資源高負荷イベントを負荷制御サーバ１６０へ通知してもよく、これに代えて処理負荷取得部１５６は、全てのＤＢ処理要求Ｉ／Ｆ部１５３によるデータベースサーバ資源の使用量の合計を取得し、当該使用量が許容範囲内でない場合にシステム資源高負荷イベントを負荷制御サーバ１６０へ通知してもよい。【００１８】
サーバ内負荷制御部１５８は、負荷制御サーバ１６０により実行される負荷制御処理に応じて、ＤＢＳ１５０内における負荷制御を行う。本実施形態に係るサーバ内負荷制御部１５８は、サーバ内負荷制御部１５８内における負荷制御として、ＤＢ処理要求Ｉ／Ｆ部１５３がＤＢ１５２をアクセスする処理の優先度を変更する。【００１９】
負荷制御サーバ１６０は、処理時間監視部１６５と、ボトルネック特定部１７０と、処理負荷監視部１９０と、負荷制御部１７５とを有する。処理時間監視部１６５は、複数のＷＡＳ１２０のそれぞれについて、当該ＷＡＳ１２０が受信したトランザクションをアプリケーションプログラム１３４が処理する処理時間を監視する。本実施形態において、処理時間監視部１６５は、複数のＷＡＳ１２０のそれぞれについて、アプリケーションプログラム１３４毎のトランザクションの処理時間を監視する。ここで処理時間監視部１６５は、複数のＷＡＳ１２０のそれぞれから通知されるサービスレベル低下イベントに基づいて、アプリケーションプログラム１３４毎のトランザクションの処理時間が許容範囲外となったことを検出する。【００２０】
ボトルネック特定部１７０は、複数のＷＡＳ１２０のそれぞれについての処理時間の監視結果に基づいて、複数のＷＡＳ１２０及びＤＢＳ１５０のうち少なくとも１つのＷＡＳ１２０又はＤＢＳ１５０にボトルネックがあると特定する。処理負荷監視部１９０は、複数のＷＡＳ１２０のそれぞれについての１又は複数のアプリケーションサーバ資源の使用量と、１又は複数のデータベースサーバ資源の使用量とを監視する。本実施形態において、処理負荷監視部１９０は、複数のＷＡＳ１２０及びＤＢＳ１５０のそれぞれから通知されるシステム資源高負荷イベントに基づいて、当該システム資源高負荷イベントにより特定されるアプリケーションサーバ資源又はデータベースサーバ資源の使用量が許容範囲外となったことを検出する。【００２１】
負荷制御部１７５は、複数のＷＡＳ１２０又はＤＢＳ１５０の少なくとも１つのサーバにボトルネックがあると特定された場合に、ボトルネックがあると特定されたサーバのボトルネックを解消するための負荷制御処理を実行する。
負荷制御部１７５は、負荷制御情報格納部１７７と、負荷制御情報取得部１７９と、負荷制御処理部１８１とを含む。負荷制御情報格納部１７７は、ボトルネックと特定されたサーバと、当該サーバにおいて高負荷であることを検出された資源とに対応して、負荷制御部１７５内の負荷制御処理部１８１が行うべき負荷制御処理を指定する負荷制御情報を格納する。さらに、負荷制御情報格納部１７７は、アプリケーションプログラム１３４のそれぞれのグループ、グループの優先度、及び、当該アプリケーションプログラム１３４に設定可能な多重度を示す多重度情報を格納する。負荷制御情報取得部１７９は、ボトルネック特定部１７０によりボトルネックと特定されたサーバにおける、処理負荷監視部１９０により高負荷であることが検出された資源に対応する負荷制御情報を負荷制御情報格納部１７７から取得し、負荷制御処理部１８１へ出力する。負荷制御処理部１８１は、ボトルネックがあると特定されたサーバのボトルネックを解消するべく、負荷制御情報により指定される負荷制御処理を実行する。負荷制御処理において、負荷制御処理部１８１は、負荷制御の対象となるＷＡＳ１２０内のサーバ内負荷制御部１４４又はＤＢＳ１５０内のサーバ内負荷制御部１５８に対して、当該サーバ内の負荷制御を指示する。【００２２】
以上に示した情報システム１０によれば、複数のアプリケーションサーバ１２０のそれぞれにおけるトランザクションの処理時間と、複数のアプリケーションサーバ１２０及びデータベースサーバ１５０の処理負荷とを監視し、監視結果に基づいてボトルネックを解消する負荷制御処理を適切に選択し実行することができる。【００２３】
図２は、本実施形態に係る情報システム１０のボトルネック特定フローを示す。
まず、処理時間監視部１６５は、１又は複数のＷＡＳ１２０から１又は複数のサービスレベル低下イベントを通知されることにより、トランザクションの処理時間が許容範囲外となったことを検出する。ボトルネック特定部１７０は、複数のＷＡＳ１２０のそれぞれについての処理時間の監視結果に基づいて、ボトルネックの存在箇所を特定する。より具体的にはボトルネック特定部１７０は、複数のＷＡＳ１２０のそれぞれについてのアプリケーションプログラム１３４毎の処理時間の監視結果に基づいて、ボトルネックの存在箇所を特定する。【００２４】
まず、ボトルネック特定部１７０は、１以上しきい値以下の数のＷＡＳ１２０について処理時間が許容範囲内でないことを条件として（ステップＳ２００：Ｙｅｓ）、処理時間が許容範囲内でないＷＡＳ１２０にボトルネックがあると特定する（Ｓ２２０）。ここでボトルネック特定部１７０は、１以上しきい値以下の数のＷＡＳ１２０について一のアプリケーションプログラム１３４の処理時間が許容範囲内でない場合（Ｓ２００：Ｙｅｓ）に、処理時間が許容範囲内でないＷＡＳ１２０における、他のアプリケーションプログラム１３４の処理時間も許容範囲内でないことを更に条件として（Ｓ２１０：Ｙｅｓ）当該ＷＡＳ１２０にボトルネックがあると特定し（Ｓ２２０）、他のアプリケーションプログラム１３４の処理時間が許容範囲内であれば（Ｓ２１０：Ｎｏ）、当該アプリケーションプログラム１３４に対するトランザクションの特定の入力に関連する資源がボトルネックであると特定してもよい（Ｓ２３０）。ここでＷＡＳ１２０の数のしきい値は、ＷＡＳ１２０の数未満の数であり、情報システム１０の管理者等により予め設定されてよい。【００２５】
また、しきい値を超える数のＷＡＳ１２０について処理時間が許容範囲内でない場合に（Ｓ２００：Ｎｏ、Ｓ２４０：Ｙｅｓ）、情報システム１０全体の共通資源であるＤＢＳ１５０にボトルネックがあると特定する。ここでボトルネック特定部１７０は、しきい値を超える数のＷＡＳ１２０について一のアプリケーションプログラム１３４の処理時間が許容範囲内でない場合（Ｓ２００：Ｎｏ、Ｓ２４０：Ｙｅｓ）に、処理時間が許容範囲内でないＷＡＳ１２０における、他のアプリケーションプログラム１３４の処理時間も許容範囲内でないことを更に条件として（Ｓ２５０：Ｙｅｓ）ＤＢＳ１５０にボトルネックがあると特定し（Ｓ２６０）、他のアプリケーションプログラム１３４の処理時間が許容範囲内であれば（Ｓ２５０：Ｎｏ）、当該アプリケーションプログラム１３４に対応するトランザクションに関連する資源がボトルネックであると特定してもよい（Ｓ２７０）。【００２６】
なお、本実施形態に係るボトルネック特定部１７０は、以上に示した処理をアプリケーションプログラム１３４毎又はアプリケーションプログラム１３４のグループ毎に行う。すなわち、ボトルネック特定部１７０は、一のアプリケーションプログラム１３４又は一のグループに属するアプリケーションプログラム１３４の処理時間が許容範囲内でないことを条件として、当該アプリケーションプログラム１３４又は当該グループに属するアプリケーションプログラム１３４に関してＷＡＳ１２０にボトルネックがあると特定する。より具体的には、ボトルネック特定部１７０は、しきい値以下のＷＡＳ１２０について一のアプリケーションプログラム１３４又は一のグループに属するアプリケーションプログラム１３４の処理時間が許容範囲内でない場合に、これらのＷＡＳ１２０にボトルネックがあると特定し、しきい値を超えるＷＡＳ１２０について一のアプリケーションプログラム１３４又は一のグループに属するアプリケーションプログラム１３４の処理時間が予め定められた許容範囲内でない場合に、ＤＢＳ１５０にボトルネックがあると特定する。【００２７】
以上に示したボトルネック特定部１７０によれば、処理時間が予め定められた許容範囲内でないＷＡＳ１２０にボトルネックがあると特定することができる。より具体的には、ボトルネック特定部１７０は、処理時間が許容範囲内でないＷＡＳ１２０の数がしきい値以下であることを条件としてこれらのＷＡＳ１２０にボトルネックがあると特定し、処理時間が許容範囲内でないＷＡＳ１２０の数がしきい値を超える場合にはＤＢＳ１５０にボトルネックがあると特定することができる。すなわち例えばしきい値を１とした場合、ボトルネック特定部１７０は、処理時間が許容範囲内でないＷＡＳ１２０が１台である場合に当該ＷＡＳ１２０にボトルネックがあると特定し、２台以上の場合にＤＢＳ１５０にボトルネックがあると特定することができる。また、例えばしきい値を（ＷＡＳ１２０の台数―１）とした場合、全てのＷＡＳ１２０について処理時間が許容範囲内でない場合にＤＢＳ１５０にボトルネックがあると特定し、ＷＡＳ１２０の台数未満のＷＡＳ１２０について処理時間が許容範囲内でない場合にこれらのＷＡＳ１２０にボトルネックがあると特定することができる。【００２８】
これにより情報システム１０は、ある特定のＷＡＳ１２０のサービスレベルが低下しているのか、それとも情報システム１０全体に共通するＤＢＳ１５０がボトルネックとなって多数のＷＡＳ１２０のサービスレベルが低下しているのかを区別し、適切にボトルネックの存在箇所を特定することができる。ここで、ボトルネック特定部１７０は、例えばＳ２１０又はＳ２５０等以外の条件に更に基づいて、より詳細にボトルネックの存在箇所を特定してもよい。【００２９】
以上において、処理時間の許容範囲は、例えば以下に示す予め定められた基準に基づき判断されてよい。すなわち処理時間監視部１６５は、例えば６０秒等の予め定められた期間内にあるアプリケーションプログラム１３４に対してトランザクションの入力が予め定められた数以上ある場合において、例えば５０％等の予め定められた割合以上のトランザクションについて当該アプリケーションプログラム１３４の処理時間が許容処理時間を超える場合に、当該アプリケーションプログラム１３４の処理時間が許容範囲を超えると判断する。この場合において、許容処理時間は、例えば過去の１ヶ月間等の期間内におけるピーク時の処理時間の平均値に、標準偏差に基づき定めたオフセット時間を加えて定められる。【００３０】
図３は、本実施形態に係る情報システム１０の高負荷判定方法を示す。処理負荷取得部１４２及び処理負荷取得部１５６は、監視対象となる複数の資源のそれぞれに対応する「検出条件」により指定された条件が成立した場合に当該資源が高負荷であることを検出する。そして、当該資源の高負荷の検出が「判定条件」により指定された回数等の条件を満たして行われた場合に、当該資源の使用量が許容範囲外となり高負荷な状態であると判定し、当該資源についてのシステム資源高負荷イベントを処理負荷監視部１９０へ通知する。また、当該資源の高負荷の通知後、当該資源の高負荷の検出が「解除条件」により指定された回数等の条件を満たす間行われなかった場合に、当該資源が高負荷でなくなったことを示すシステム資源高負荷解除イベントを処理負荷監視部１９０に通知する。これを受けて処理負荷監視部１９０は、当該データベース資源が高負荷でなくなったことを検出する。【００３１】
処理負荷取得部１５６は、「ボトルネック箇所の分類」欄が「全体共通資源（ＤＢＳ）」と示されている複数のデータベースサーバ資源のそれぞれについて、「検出条件」、「判定条件」及び「解除条件」に示した条件を用いて当該資源が高負荷であるか否かを判定する。ここで、本実施形態に係る処理負荷取得部１５６は、複数のデータベースサーバ資源として、プロセッサ、ディスク、メモリ、データベースバッファ等を含む複数のデータベースサーバ資源のそれぞれについて、条件を用いて高負荷であるか否かを判定する。【００３２】
プロセッサ、データベースを格納するディスク、ＤＢ１５２のアクセスログを格納するディスク、データベースとアクセスログ以外のファイルを格納するディスクに関して、処理負荷取得部１５６は、当該データベース資源の使用率が「ｎ秒間の間平均ｘ％以上」である場合に高負荷であることを検出する。そして処理負荷取得部１５６は、この高負荷の状態がモニタリングするタイミングにおいてｍ回連続して検出された場合に、当該データベース資源が高負荷であると判定し、システム資源高負荷イベントを処理負荷監視部１９０に通知する。また処理負荷取得部１５６は、システム資源高負荷イベントを処理負荷監視部１９０に通知した後、高負荷の状態をｆ回連続して検出しなかった場合にシステム資源高負荷解除イベントを処理負荷監視部１９０に通知する。【００３３】
また、処理負荷取得部１５６は、ＤＢＳ１５０が搭載する実メモリに関して、ページングが「ｎ秒間の間平均ｘ回以上」発生している場合に、当該メモリの使用量が多くスワップが頻発しているとして高負荷であることを検出する。また、ＤＢエンジン１５４が使用するデータベースバッファに関して、当該バッファのミス率が「ｎ秒間の間平均ｘ％以上」の場合に、当該バッファが不足しているとして高負荷であることを検出する。処理負荷取得部１５６は、これらのデータベースサーバ資源についてのシステム資源高負荷イベント及びシステム資源高負荷解除イベントの通知を、プロセッサ等のシステム資源高負荷イベント及びシステム資源高負荷解除イベントの通知と同様にして行う。【００３４】
複数のＷＡＳ１２０のそれぞれの処理負荷取得部１４２は、「ボトルネック箇所の分類」欄が「ＷＡＳ」と示されている複数のアプリケーションサーバ資源のそれぞれについて、「検出条件」、「判定条件」及び「解除条件」に示した条件を用いて当該資源が高負荷であるか否かを判定する。ここで、本実施形態に係る処理負荷取得部１４２は、複数のデータベースサーバ資源として、プロセッサ、ディスク、メモリ、ＪＶＭ（Java Virtual Machine）メモリ、及びＤＢコネクション等を含む複数のアプリケーションサーバ資源のそれぞれについて、「検出条件」、「判定条件」及び「解除条件」に示した条件を用いて高負荷であるか否かを判定する。【００３５】
プロセッサ、ディスク、及びメモリに関して、処理負荷取得部１４２は、処理負荷取得部１５６と同様にして高負荷の検出及びイベントの通知を行う。また処理負荷取得部１４２は、ＷＥＢアプリケーションサーバ部１３０を構成する各種のプログラム又はモジュールを実行するＪＶＭが「ガベージコレクションをｎ秒間の間にｘ回以上」実行した場合に、ＪＶＭに割り当てたメモリが不足しているとして高負荷であることを検出する。そして処理負荷取得部１４２は、ＪＶＭメモリについてのシステム資源高負荷イベント及びシステム資源高負荷解除イベントの通知を、プロセッサ等のシステム資源高負荷イベント及びシステム資源高負荷解除イベントの通知と同様にして行う。【００３６】
また、処理負荷取得部１４２は、ＤＢコネクションに関して、ＤＢコネクション１３９を使用する多重度が上限に達した場合に、ＤＢコネクションが不足しているとして高負荷であることを検出する。処理負荷取得部１４２は、一旦ＤＢコネクションが高負荷であることを検出すると、システム資源高負荷イベントを処理負荷監視部１９０に通知し、当該ＷＡＳ１２０を停止するまで高負荷でなくなったことを処理負荷監視部１９０に通知しない。【００３７】
また、処理負荷取得部１４２は、「ボトルネック箇所の分類」欄が「トランザクションに関連する資源」と示されているＷＡＳ１２０のプロセッサ、ＤＢＳ１５０のプロセッサ、及びＤＢＳ１５０のディスク等の各資源について、「検出条件」、「判定条件」及び「解除条件」に示した条件を用いて当該資源がアプリケーションプログラム１３４の処理内容の影響により高負荷となっているか否かを判定する。【００３８】
処理負荷取得部１４２は、ＷＡＳ１２０のプロセッサに関して、トランザクションに対応してアプリケーションプログラム１３４を実行する処理時間全体のうち、ＤＢＳ１５０によるＤＢ１５２のアクセスに要する処理時間の比率がｘ％以下である場合に、ＷＡＳ１２０のプロセッサによる処理時間の割合が高いとして高負荷を検出する。そして処理負荷取得部１４２は、高負荷を検出するとシステム資源高負荷イベントを処理負荷監視部１９０に通知し、検出条件に示された状態がｎ秒間発生しない場合にシステム資源高負荷解除イベントを処理負荷監視部１９０に通知する。【００３９】
また、処理負荷取得部１４２は、ＤＢＳ１５０のプロセッサに関して、トランザクションに対応してアプリケーションプログラム１３４を実行する処理時間全体のうちＤＢＳ１５０によるＤＢ１５２のアクセスに要する処理時間の比率がｘ％以上である場合に、ＤＢＳ１５０のプロセッサによる処理時間の割合が高いとして高負荷を検出する。そして処理負荷取得部１４２は、高負荷を検出するとシステム資源高負荷イベントを処理負荷監視部１９０に通知し、高負荷の検出がｎ秒間発生しない場合にシステム資源高負荷解除イベントを処理負荷監視部１９０に通知する。これを受けて処理負荷監視部１９０は、当該システム資源高負荷イベントの通知を受け、かつ、ｎ秒以内にＤＢＳ１５０のプロセッサがボトルネックであるとＤＢＳ１５０により判定されていた場合に、トランザクションに対応してＤＢＳ１５０のプロセッサが高負荷であると判定する。また、処理負荷取得部１４２は、ＤＢＳ１５０のディスクについても、ＤＢＳ１５０のプロセッサと同様にして、トランザクションに対応してＤＢＳ１５０のディスクが高負荷であると判定する。【００４０】
処理負荷監視部１９０は、複数のＷＡＳ１２０及びＤＢＳ１５０のそれぞれについて、当該サーバが有する複数の資源のそれぞれが高負荷であるか否かを、以上に例示したシステム資源高負荷イベント及びシステム資源高負荷解除イベントに基づいて検出する。ここで処理負荷監視部１９０は、複数の資源のそれぞれに対応する「検出条件」、「判定条件」及び「解除条件」を、例えば負荷制御サーバ１６０が有する記憶装置に格納したファイルとして保持し、情報システム１０の管理者等の指示に基づき変更可能としてもよい。【００４１】
また、ボトルネック特定部では、処理負荷取得部１４２により、アプリケーションプログラム１３４単位にシステム資源高負荷イベントが通知されている場合、および、処理負荷取得部１５６により、ＤＢ処理要求Ｉ／Ｆ部１５３単位にシステム資源高負荷イベントが通知されている場合には、より詳細にボトルネックの原因となるアプリケーションプログラム１３４を特定してもよい。【００４２】
図４は、本実施形態に係る負荷制御情報格納部１７７に格納される負荷制御情報の一例を示す。負荷制御情報格納部１７７は、ＷＡＳ１２０における複数のアプリケーションサーバ資源、及び、ＤＢＳ１５０における複数のデータベースサーバ資源のそれぞれに対応して、当該資源を有するサーバにボトルネックがあると特定され、かつ、当該資源の使用量が予め定められた許容範囲内でない場合に負荷制御部１７５が行うべき負荷制御処理を指定する負荷制御情報を格納する。ここで負荷制御情報格納部１７７は、少なくとも１つの負荷制御情報として、複数の負荷制御処理と複数の負荷制御処理の優先順位とを指定する情報を格納してもよい。【００４３】
負荷制御情報取得部１７９は、ボトルネックがあると特定されたサーバが有する資源の使用量が予め定められた許容範囲内でない場合に、当該資源がボトルネックであると特定する。そして、負荷制御情報取得部１７９は、当該資源がボトルネックであると特定された場合に、当該資源に対応して負荷制御情報格納部１７７に格納された負荷制御情報を取得する。より具体的には、負荷制御情報取得部１７９は、ＷＡＳ１２０にボトルネックがあると特定された場合に、当該ＷＡＳ１２０が有する複数のアプリケーションサーバ資源のうち、使用量が許容範囲内でないと処理負荷監視部１９０により判定されたアプリケーションサーバ資源に対応して、負荷制御情報格納部１７７に格納された負荷制御情報を取得する。また、負荷制御情報取得部１７９は、ＤＢＳ１５０にボトルネックがあると特定された場合に、複数のデータベースサーバ資源のうち、使用量が許容範囲内でないと処理負荷監視部１９０により判定されたデータベースサーバ資源に対応して負荷制御情報格納部１７７に格納された負荷制御情報を取得する。【００４４】
そして、負荷制御処理部１８１は、ボトルネック特定部１７０によりボトルネックがあると特定されたサーバのボトルネックを解消するべく、負荷制御情報取得部１７９により取得された負荷制御情報により指定される負荷制御処理を行う。ここで負荷制御処理部１８１は、ある負荷制御情報により指定された一の負荷制御処理を実行した後、ボトルネックがあると特定されたサーバのボトルネックが予め設定された設定期間の間に解消しないことを検出した場合に、当該負荷制御情報より指定される一の負荷制御処理より優先順位が低い他の負荷制御処理を実行する。これにより、負荷制御処理部１８１は、１種類の負荷制御処理のみではボトルネックが解消されない場合においても、他の負荷制御処理を更に行うことによってより効果的にボトルネックを解消することができる。【００４５】
本実施形態に係る負荷制御処理部１８１は、以下に示す負荷制御処理を行う。
（１）負荷制御処理１
負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４より優先度が低いグループのアプリケーションプログラム１３４を実行する多重度を低下させる。より具体的には、負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４より低い優先度の複数のグループ識別子を、ボトルネック特定部１７０から負荷制御情報取得部１７９を介して取得する。そして、負荷制御処理部１８１は、取得した複数のグループ識別子を指定して、当該アプリケーションプログラム１３４より優先度が低い他のアプリケーションプログラム１３４の多重度を低下させるようにサーバ内負荷制御部１４４に指示する。この指示を受けてサーバ内負荷制御部１４４は、多重度制御部１３２が他のアプリケーションプログラム１３４を並行して動作させる数の最大値を低下させることにより、当該他のアプリケーションプログラム１３４を実行する多重度を低下させる。
ＤＢＳ１５０にボトルネックがあると特定された場合において負荷制御処理１を実行する場合、負荷制御処理部１８１は、情報システム１０が有する複数のＷＡＳ１２０のそれぞれについて上記の負荷制御処理１を実行する。これにより負荷制御処理部１８１は、全てのＷＡＳ１２０がトランザクションを受け入れる多重度を低減させて情報システム１０におけるトランザクションの総処理量を低減させることができ、ＤＢ１５２のアクセス量を低減させることができる。【００４６】
（２）負荷制御処理２
負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４より優先度が低いグループのアプリケーションプログラム１３４の要求に基づきＤＢ１５２をアクセスする処理の優先度を更に低下させる。より具体的には、負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４より低い優先度の複数のグループ識別子を、ボトルネック特定部１７０から負荷制御情報取得部１７９を介して取得する。そして、負荷制御処理部１８１は、取得した複数のグループ識別子を指定して、当該アプリケーションプログラム１３４より優先度が低い他のアプリケーションプログラム１３４の要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させるようにサーバ内負荷制御部１５８に指示する。この指示を受けてサーバ内負荷制御部１５８は、対応するＤＢ処理要求Ｉ／Ｆ部１５３のプロセス実行優先度を低下させる。【００４７】
（３）負荷制御処理３
ボトルネック特定部により、ボトルネックが存在するサーバにおけるボトルネックとなっている資源の処理負荷を高くしているアプリケーションプログラム１３４がシステム資源高負荷イベントにより特定できている場合、負荷制御処理部１８１は、当該アプリケーションプログラム１３４のグループを実行する多重度を低下させる。より具体的には、負荷制御処理部１８１は、ボトルネックの原因となるアプリケーションプログラム１３４のグループ識別子を、ボトルネック特定部１７０から負荷制御情報取得部１７９を介して取得する。そして、負荷制御処理部１８１は、取得したグループ識別子を指定して、当該アプリケーションプログラム１３４の多重度を低下させるようにサーバ内負荷制御部１４４に指示する。この指示を受けてサーバ内負荷制御部１４４は、多重度制御部１３２がアプリケーションプログラム１３４を並行して動作させる数の最大値を低下させることにより、当該他のアプリケーションプログラム１３４を実行する多重度を低下させる。
ＤＢＳ１５０にボトルネックがあると特定された場合において負荷制御処理３を実行する場合、負荷制御処理部１８１は、情報システム１０が有する複数のＷＡＳ１２０のそれぞれについて上記の負荷制御処理３を実行する。これにより負荷制御処理部１８１は、全てのＷＡＳ１２０がトランザクションを受け入れる多重度を低減させて情報システム１０におけるトランザクションの総処理量を低減させることができ、ＤＢ１５２のアクセス量を低減させることができる。【００４８】
（４）負荷制御処理４
負荷制御処理部１８１は、ボトルネック特定部１７０により、ボトルネックが存在するサーバにおけるボトルネックとなっている資源の処理負荷を高くしているアプリケーションプログラム１３４がシステム資源高負荷イベントにより特定できている場合、当該アプリケーションプログラム１３４を実行するグループのアプリケーションプログラム１３４の要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させる。より具体的には、負荷制御処理部１８１は、ボトルネックの原因となるアプリケーションプログラム１３４のグループ識別子を、ボトルネック特定部１７０から負荷制御情報取得部１７９を介して取得する。そして、負荷制御処理部１８１は、取得したグループ識別子を指定して、当該アプリケーションプログラム１３４のグループのアプリケーションプログラム１３４の要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させるようにサーバ内負荷制御部１５８に指示する。この指示を受けてサーバ内負荷制御部１５８は、対応するＤＢ処理要求Ｉ／Ｆ部のプロセス実行優先度を低下させる。【００４９】
（５）負荷制御処理５
負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４を実行する多重度を低下させる。より具体的には、負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４のグループ識別子を、ボトルネック特定部１７０から負荷制御情報取得部１７９を介して取得する。そして、負荷制御処理部１８１は、当該アプリケーションプログラム１３４のグループ識別子を指定して、当該アプリケーションプログラム１３４の多重度を低下させるようにサーバ内負荷制御部１４４に指示する。この指示を受けてサーバ内負荷制御部１４４は、多重度制御部１３２が当該アプリケーションプログラム１３４を並行して動作させる数の最大値を低下させることにより、当該アプリケーションプログラム１３４を実行する多重度を低下させる。
ＤＢＳ１５０にボトルネックがあると特定された場合において負荷制御処理３を実行する場合、負荷制御処理部１８１は、負荷制御処理１の場合と同様にして、情報システム１０が有する複数のＷＡＳ１２０のそれぞれについて上記の負荷制御処理３を実行する。【００５０】
（６）負荷制御処理６
負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４の要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させる。より具体的には、負荷制御処理部１８１は、処理時間が許容範囲内でないと判断されたアプリケーションプログラム１３４のグループ識別子を、ボトルネック特定部１７０から負荷制御情報取得部１７９を介して取得する。そして、負荷制御処理部１８１は、当該アプリケーションプログラム１３４のグループ識別子を指定して、当該アプリケーションプログラム１３４の要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させるようにサーバ内負荷制御部１５８に指示する。この指示を受けてサーバ内負荷制御部１５８は、対応するＤＢ処理要求Ｉ／Ｆ部１５３のプロセス実行優先度を低下させる。【００５１】
本実施形態に係る負荷制御情報格納部１７７は、ＤＢＳ１５０のボトルネックに関して、複数のデータベースサーバ資源のいずれの使用量が許容範囲外となったかに応じて、図４に示した負荷制御情報を格納する。
より具体的には、プロセッサの使用量が許容範囲外となった場合に対応して、負荷制御情報格納部１７７は、負荷制御処理３、１、４、２、５及び６をこの優先順位で行うべきことを示す負荷制御情報を格納する。また、データベースを格納しているディスクの使用量が許容範囲外となった場合に対応して、負荷制御情報格納部１７７は、負荷制御処理２、１、６、及び５をこの優先順位で行うべきことを示す負荷制御情報を格納する。また、アクセスログを格納するディスクを格納するディスクの使用量が許容範囲外となった場合に対応して、負荷制御情報格納部１７７は、負荷制御処理１、２、５、及び６をこの優先順位で行うべきことを示す負荷制御情報を格納する。また、データベースおよびアクセスログ以外を格納するディスク、メモリ、又はデータベースバッファの使用量が許容範囲外となった場合に対応して、負荷制御情報格納部１７７は、負荷制御処理１及び５をこの優先順位で行うべきことを示す負荷制御情報を格納する。【００５２】
これらの負荷制御情報を用いて、負荷制御部１７５は、例えば、ＤＢＳ１５０にボトルネックがあると特定され、さらにプロセッサの使用量が許容範囲の使用量を超えておりプロセッサがボトルネックであると特定された場合において、ＤＢＳ１５０のプロセッサ資源の使用量が許容範囲内でないアプリケーションプログラム１３４が特定できている場合は、負荷制御処理３を実行し、当該アプリケーションプログラム１３４及び当該アプリケーションプログラム１３４と同一のグループに属するアプリケーションプログラム１３４をＷＡＳ１２０により実行する多重度を低下させる。そして、この負荷制御処理によってもＤＢＳ１５０のボトルネックが解消しない場合に、負荷制御部１７５は、前記負荷制御処理１を実行することにより、更に当該アプリケーションプログラム１３４より優先度が低いグループに属する他のアプリケーションプログラム１３４をＷＡＳ１２０により実行する多重度を低下させることができる。これにより負荷制御部１７５は、まず、プロセッサを大量に消費しているアプリケーションプログラム１３４の処理量を減らしてＤＢＳ１５０の負荷低減を試み、これによって解決しない場合に当該アプリケーションプログラム１３４より優先度が低いアプリケーションプログラム１３４の処理量を減らしていくことにより、段階的にＤＢＳ１５０の負荷を減らすことができる。【００５３】
そしてこれらの負荷制御処理によってもボトルネックが解消しない場合には、負荷制御部１７５は、負荷制御処理４、２を更に順に実行することにより、ＤＢＳ１５０上で処理している要求への他の処理からの影響を軽減し、サービスレベルの改善を試みる。当初処理時間が許容範囲内でないと判定されたアプリケーションプログラム１３４自身の問題、又は、より優先度の高いアプリケーションプログラム１３４の問題でなければ、ここまでの負荷制御でボトルネックが解消されると考えられる。しかし、それでもレスポンスが改善しない場合には、負荷制御処理５により、サービスレベルが低下したアプリケーションプログラム１３４自体をＷＡＳ１２０により実行する多重度を減らして、ＤＢＳ１５０の負荷をさらに減らすことができる。また、負荷制御処理５によってもレスポンスが改善しない場合には、負荷制御部１７５は、負荷制御処理６を実行することにより、アプリケーションプログラム１３４の要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させ、ＤＢＳ１５０上で処理している要求が他の処理へ与える影響を軽減できる。【００５４】
一方、負荷制御部１７５は、例えばＤＢＳ１５０にボトルネックがあると特定され、さらにデータベースを格納するディスクがボトルネックであると特定された場合において、ＤＢＳ１５０の当該ディスク資源の使用量が許容範囲内でないアプリケーションプログラム１３４が特定できている場合は、負荷制御処理２を実行し、当該アプリケーションプログラム１３４より優先度が低いグループに属するアプリケーションプログラム１３４からの要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させる。ここでデータベースを格納するディスクが複数存在する場合、負荷制御部１７５は、負荷制御処理２において、当該アプリケーションプログラム１３４より優先度が低いグループに属し、当該アプリケーションプログラム１３４が使用するデータベースが格納されたディスクを使用するアプリケーションプログラム１３４からの要求に基づきＤＢ１５２をアクセスする処理の優先度を低下させることが望ましい。そして、負荷制御処理２によってもＤＢＳ１５０のボトルネックが解消しない場合に、負荷制御部１７５は、負荷制御処理１、６、及び５をＤＢＳ１５０のボトルネックが解消されるまで順次実行する。【００５５】
また、本実施形態に係る負荷制御情報格納部１７７は、ＷＡＳ１２０のボトルネックに関して、複数のアプリケーションサーバ資源のいずれの使用量が許容範囲外となったかに応じて、図４に示した負荷制御情報を格納する。
より具体的には、プロセッサが許容範囲外となった場合に対応して、負荷制御情報格納部１７７は、負荷制御処理３、１、及び５をこの優先順位で行うべきことを示す負荷制御情報を格納する。また、メモリ、ディスク、ＪＶＭメモリ、及びＤＢコネクションの使用量の使用量が許容範囲外となった場合に対応して、負荷制御情報格納部１７７は、負荷制御処理１、及び５を行うべきことを示す負荷制御情報を格納する。【００５６】
これらの負荷制御情報を用いて、負荷制御部１７５は、例えばＷＡＳ１２０にボトルネックがあると特定され、さらにプロセッサの使用量が許容範囲の使用量を超えておりプロセッサがボトルネックであると特定された場合において、ＷＡＳ１２０のプロセッサ資源の使用量が許容範囲内でないアプリケーションプログラム１３４が特定できている場合は、負荷制御処理３を実行し、当該のアプリケーションプログラム１３４及び当該アプリケーションプログラム１３４と同一のグループに属するアプリケーションプログラム１３４をＷＡＳ１２０により実行する多重度を低下させる。そして、この負荷制御処理によってもＷＡＳ１２０のボトルネックが解消しない場合に、負荷制御部１７５は、負荷制御処理１を実行し、更に当該アプリケーションプログラム１３４より優先度が低いグループに属する他のアプリケーションプログラム１３４をＷＡＳ１２０により実行する多重度を低下させることができる。【００５７】
当初処理時間が許容範囲内でないと判定されたアプリケーションプログラム１３４自身の問題、又は、より優先度の高いアプリケーションプログラム１３４の問題でなければ、ここまでの負荷制御でボトルネックが解消されると考えられる。しかし、それでもレスポンスが改善しない場合には、負荷制御部１７５は、負荷制御処理５を実行することにより、サービスレベルが低下したアプリケーションプログラム１３４自体をＷＡＳ１２０が実行する多重度を減らして、ＤＢＳ１５０の負荷をさらに減らすことができる。【００５８】
また、本実施形態に係る負荷制御情報格納部１７７は、トランザクションの内容やアプリケーションプログラム１３４の処理内容に関連する資源のボトルネックに関して、ＷＡＳ１２０のプロセッサの使用量が許容範囲外になった場合に、負荷制御処理５を行うべきことを示す負荷制御情報を格納する。また、負荷制御情報格納部１７７は、トランザクションの内容やアプリケーションプログラム１３４の処理内容に関連する資源のボトルネックに関して、ＤＢＳ１５０のプロセッサ又はディスクの使用量が許容範囲外になった場合に、負荷制御処理５及び６をこの優先順位で行うべきことを示す負荷制御情報を格納する。【００５９】
図５は、本発明の実施形態に係るコンピュータ９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ９００は、負荷制御プログラムを実行することにより負荷制御サーバ１６０として機能する。コンピュータ９００は、ホスト・コントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、グラフィック・コントローラ１０７５、及び表示装置１０８０を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホスト・コントローラ１０８２に接続される通信インターフェイス１０３０、記憶装置１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスク・ドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。【００６０】
ホスト・コントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィック・コントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィック・コントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。【００６１】
入出力コントローラ１０８４は、ホスト・コントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、記憶装置１０４０、ＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して他の装置と通信する。記憶装置１０４０は、コンピュータ９００内のＣＰＵ１０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して記憶装置１０４０に提供する。【００６２】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスク・ドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ９００が起動時に実行するブート・プログラムや、コンピュータ９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して記憶装置１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク・ドライブ１０５０や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。【００６３】
ＲＡＭ１０２０を介して記憶装置１０４０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。ＷＡＳ１２０をＨＴＴＰサーバ部１２５、ＷＥＢアプリケーションサーバ部１３０、処理時間取得部１４０、処理負荷取得部１４２、及びサーバ内負荷制御部１４４として機能させるプログラムは、記録媒体から読み出され、通信インターフェイス１０３０を介してＷＡＳ１２０にインストールされ、ＷＡＳ１２０として用いられるサーバコンピュータにおいて実行される。また、ＤＢＳ１５０をＤＢ１５２、ＤＢ処理要求Ｉ／Ｆ部１５３、処理負荷取得部１５６及びサーバ内負荷制御部１５８として機能させるプログラムは、記録媒体から読み出され、通信インターフェイス１０３０及び負荷制御サーバ１６０を介してＤＢＳ１５０にインストールされ、ＤＢＳ１５０として用いられるサーバコンピュータにおいて実行される。また、コンピュータ９００を負荷制御サーバ１６０として機能させる負荷制御プログラムは、記録媒体から読み出され、ＲＡＭ１０２０を介してコンピュータ９００内の記憶装置１０４０にインストールされ、ＣＰＵ１０００において実行される。【００６４】
ＷＡＳ１２０にインストールされるプログラムは、ＨＴＴＰサーバプログラムと、多重度制御モジュール及びＤＢアクセス制御モジュールを有するＷＥＢアプリケーションサーバプログラムと、処理時間取得モジュールと、処理負荷取得モジュールと、サーバ内負荷制御モジュールとを備える。これらのプログラム及びモジュールは、ＷＡＳ１２０を、ＨＴＴＰサーバ部１２５と、多重度制御部１３２及びＤＢアクセス制御部１３６を有するＷＥＢアプリケーションサーバ部１３０と、処理時間取得部１４０と、処理負荷取得部１４２と、サーバ内負荷制御部１４４としてそれぞれ機能させる。【００６５】
ＤＢＳ１５０にインストールされるプログラムは、ＤＢエンジンプログラムと、処理負荷取得モジュールと、サーバ内負荷制御モジュールとを備える。これらのプログラム及びモジュールは、ＤＢＳ１５０を、ＤＢエンジン１５４と、処理負荷取得部１５６と、サーバ内負荷制御部１５８としてそれぞれ機能させる。【００６６】
コンピュータ９００にインストールされ、コンピュータ９００を負荷制御サーバ１６０として機能させる負荷制御プログラムは、処理時間監視モジュールと、ボトルネック特定モジュールと、処理負荷監視モジュールと、負荷制御情報取得モジュール及び負荷制御処理モジュールを有する負荷制御モジュールとを備える。これらのプログラム及びモジュールは、コンピュータ９００を、処理時間監視部１６５と、ボトルネック特定部１７０と、処理負荷監視部１９０と、負荷制御情報取得部１７９及び負荷制御処理部１８１を有する負荷制御部１７５としてそれぞれ機能させる。【００６７】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ９００に提供し、コンピュータ９００から負荷制御サーバ１６０を介してＷＡＳ１２０又はＷＥＢアプリケーションサーバ部１３０へ提供してもよい。【００６８】
以上に示した情報システム１０によれば、負荷制御情報格納部１７７は、ボトルネックの存在箇所及び高負荷と判定された資源に対応して、適切な負荷制御処理を格納することができる。そして負荷制御部１７５は、負荷制御情報格納部１７７に格納された負荷制御情報に基づいて、ＷＡＳ１２０上で実行されるアプリケーションプログラム１３４の多重度を変更したり、ＤＢ１５２をアクセスする処理の優先度を変更したりする等の負荷制御処理を適切に行うことができる。【００６９】
更に情報システム１０によれば、複数のアプリケーションプログラム１３４のそれぞれの処理時間に応じて、複数のアプリケーションプログラム１３４のそれぞれが実行される多重度及びＤＢＳ１５０におけるアクセスの優先順位を適切に変更することができる。これにより、多種多様な業務システム等を併せて情報システム１０で稼動させる場合においても、あるアプリケーションプログラム１３４が異常にシステム資源を消費した場合の影響で、他のアプリケーションプログラム１３４のサービスレベルが低下しても、自動的に検知し、短時間で自動的に復旧させることができ、それぞれのアプリケーションプログラム１３４を別個の情報システム１０で実行した場合と同等の頑強さを有する情報システム１０を実現することができる。【００７０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施形態に係る情報システム１０の構成を示す。
【図２】本発明の実施形態に係る情報システム１０のボトルネック特定フローを示す。
【図３】本発明の実施形態に係る情報システム１０の高負荷判定方法を示す。
【図４】本発明の実施形態に係る負荷制御情報格納部１７７に格納される負荷制御情報の一例を示す。
【図５】本発明の実施形態に係るコンピュータ９００のハードウェア構成の一例を示す。
【図１】
0004205103.tif 000002
【図２】
0004205103.tif 000003
【図３】
0004205103.tif 000004
【図４】
0004205103.tif 000005
【図５】
0004205103.tif 000006