(57)【要約】  【課題】  コンピュータシステムの実稼働の状態に基づいて、資源の使用状態の推移を解析し、将来の傾向を機械的に予測する。  【解決手段】  コンピュータから資源の使用に関するログとトランザクションログとを取得し、これらのログに含まれるコンピュータ全体による資源の使用率の情報とトランザクションごとの処理数の情報とに基づいて、トランザクションごとの資源使用率を推定するＣＰＵ使用率推定部２０と、トランザクションログに含まれるトランザクションごとの処理数の時系列データに基づいて統計的時系列分析を行い、トランザクションの種類ごとに、将来の処理量を予測する処理量予測部３０と、得られたトランザクションごとの資源使用率と将来の処理量とに基づいて、将来におけるサーバ資源の使用率の推移を予測するＣＰＵ使用率予測部４０とを備える。  【選択図】  図２
2006024017.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ資源のキャパシティを予測するシステムにおいて、
コンピュータから、前記資源の使用に関する第１のログとトランザクションに関する第２のログとを取得し、当該第１のログに含まれる当該コンピュータの資源使用率の情報と、当該第２のログに含まれるトランザクションごとの処理数の情報とに基づいて、当該トランザクションごとの資源使用率を推定する第１の手段と、
前記コンピュータから前記第２のログを取得し、当該第２のログに含まれるトランザクションごとの処理数の時系列データに基づいて統計的時系列分析を行うことにより、トランザクションの種類ごとに将来の処理量を予測する第２の手段と、
前記第１の手段により推定されたトランザクションごとの資源使用率と前記第２の手段により予測されたトランザクションごとの将来の処理量とに基づいて、将来における前記コンピュータの資源使用率の推移を予測する第３の手段と
を備えることを特徴とするシステム。
【請求項２】
前記第１の手段は、前記第１のログおよび前記第２のログから、複数の時刻における資源使用率と、対応する当該時刻におけるトランザクションごとの処理数とを求め、重回帰分析によりトランザクションごとの資源使用率を推定することを特徴とする請求項１に記載のシステム。
【請求項３】
前記第２の手段は、統計的時系列分析により時系列モデルを同定し、当該時系列モデルを用いて、前記トランザクションごとの処理量を予測することを特徴とする請求項１に記載のシステム。
【請求項４】
前記第２の手段は、前記時系列データの一部を除外し、残りのデータに基づいて前記時系列モデルを同定し、同定された当該時系列モデルにより前記時系列データの除外された部分に該当する前記処理数を予測し、予測結果と当該除外された部分の実際のデータとを比較して当該時系列モデルを検証することを特徴とする請求項３に記載のシステム。
【請求項５】
前記第２の手段は、前記時系列データの最後の一定期間分のデータを除外して、当該一定期間分のデータを前記時系列モデルの検証に用いることを特徴とする請求項４に記載のシステム。
【請求項６】
前記時系列データに基づいて同定される前記時系列モデルが、ＡＲＩＭＡモデルであることを特徴とする請求項３に記載のシステム。
【請求項７】
前記第３の手段が、前記第１の手段により推定されたトランザクションごとの資源使用率と前記第２の手段により予測されたトランザクションごとの将来の処理量とに基づいて、前記コンピュータにおけるソフトウェアおよび／またはハードウェアの構成および／または設定を決定するサーバサイジング手段であることを特徴とする請求項１に記載のシステム。
【請求項８】
前記第３の手段が、前記第１の手段により推定されたトランザクションごとの資源使用率と前記第２の手段により予測されたトランザクションごとの将来の処理量とに基づいて、前記コンピュータに対する監視動作を制御するサーバ監視手段であることを特徴とする請求項１に記載のシステム。
【請求項９】
前記サーバ監視手段は、さらに警報を発するか否かを判断することを特徴とする請求項８に記載のシステム。
【請求項１０】
コンピュータによりサーバを制御する方法であって、
前記コンピュータが、前記サーバから、資源の使用に関する第１のログとトランザクションに関する第２のログとを取得して記憶装置に格納するステップと、
前記コンピュータが、前記第１のログに含まれるサーバ全体の資源使用率の情報と、前記第２のログに含まれる前記トランザクションごとの処理数の情報とに基づいて、当該トランザクションごとの資源使用率を推定するステップと、
前記コンピュータが、前記第２のログに含まれるトランザクションごとの処理数の時系列データに基づいて統計的時系列分析を行うことにより、前記トランザクションごとに、将来の処理量を予測するステップと、
前記コンピュータが、前記推定ステップで推定されたトランザクションごとの資源使用率と前記予測ステップで予測されたトランザクションごとにおける将来の処理量とに基づいて、将来における前記サーバの資源使用率を予測するステップと
を含むことを特徴とする方法。
【請求項１１】
前記推定ステップでは、前記第１のログおよび前記第２のログから、複数の時刻における資源使用率と、対応する当該時刻におけるトランザクションごとの処理数とを求め、重回帰分析により当該トランザクションごとの資源使用率を推定することを特徴とする請求項１０に記載の方法。
【請求項１２】
前記トランザクションごとの処理量の予測ステップは、
統計的時系列分析を行うことにより時系列モデルを同定するステップと、
同定された前記時系列モデルを用いて、前記トランザクションごとの将来の処理量を予測するステップと
を含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記時系列モデルを同定するステップは、
前記時系列データの一部を除外し、残りのデータに基づいて当該時系列モデルを同定するステップと、
同定された前記時系列モデルにより前記時系列データの除外された部分に該当する前記トランザクションごとの処理数を予測するステップと、
予測結果と前記除外された部分の実際のデータとを比較して前記時系列モデルを検証するステップと
を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
コンピュータに、
サーバから、資源の使用に関する第１のログとトランザクションに関する第２のログとを取得して記憶装置に格納する第１の処理と、
前記第１のログに含まれるサーバ全体の資源使用率の情報と、前記第２のログに含まれる前記トランザクションごとの処理数の情報とに基づいて、当該トランザクションごとの資源使用率を推定する第２の処理と、
前記第２のログに含まれるトランザクションごとの処理数の時系列データに基づいて統計的時系列分析を行うことにより、前記トランザクションごとに、将来の処理量を予測する第３の処理と、
前記第２の処理で推定されたトランザクションごとの資源使用率と前記第３の処理で予測されたトランザクションごとにおける将来の処理量とに基づいて、将来における前記サーバの資源使用率を予測する第４の処理と
を実行させることを特徴とするプログラム。
【請求項１５】
前記第２の処理では、前記第１のログおよび前記第２のログから、複数の時刻における資源使用率と、対応する当該時刻におけるトランザクションごとの処理数とを求め、重回帰分析により当該トランザクションごとの資源使用率を推定することを特徴とする請求項１４に記載のプログラム。
【請求項１６】
前記第３の処理は、
統計的時系列分析を行うことにより時系列モデルを同定する処理と、
同定された前記時系列モデルを用いて、前記トランザクションごとの将来の処理量を予測する処理と
を含むことを特徴とする請求項１４に記載のプログラム。
【請求項１７】
前記時系列モデルを同定する処理は、
前記時系列データの一部を除外し、残りのデータに基づいて当該時系列モデルを同定する処理と、
同定された前記時系列モデルにより前記時系列データの除外された部分に該当する前記トランザクションごとの処理数を予測する処理と、
予測結果と前記除外された部分の実際のデータとを比較して前記時系列モデルを検証する処理と
を含むことを特徴とする請求項１６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの構成や設定の更新のために、コンピュータ資源のキャパシティの推移を解析し、将来の傾向を予測するシステムおよびその方法に関する。
【背景技術】
【０００２】
コンピュータシステムは、ＣＰＵの処理能力や記憶装置の記憶容量などのコンピュータ資源（以下、単に資源と称す）が、システムのトランザクションに相応しいキャパシティを持つことが好ましい。したがって、ネットワークを介して種々のサービスを提供するコンピュータでは、アクセス量やその頻度の変化に応じて適切なキャパシティを用意することが必要である。
【０００３】
従来、コンピュータシステムの資源のキャパシティを調整する手法としては、例えば、システムの実稼働状況を監視し、いつ頃どの資源のキャパシティが不足するかを人が予測し、必要な資源を追加することが行われていた。
【０００４】
また、システムの稼働前にテスト環境でアプリケーションによるトランザクションの種類ごとにシステムの負荷を測定し、必要なキャパシティを見積もって（キャパシティプランニング）、アプリケーションのニーズを十分に満たすために必要な、サーバにおけるソフトウェアおよびハードウェアの構成や設定を決定すること（サイジング）も行われていた（例えば、非特許文献１参照）。この手法では、テストにおけるパラメータとして、システムの実稼働時のトランザクション処理数を、人が予測して入力していた。
【０００５】
さらに近年、コンピュータに自分自身を「構成」、「修復」、「最適化」、「防御」する機能を持たせ、自律的に動作させるオートノミックコンピューティングが研究されており（例えば、非特許文献２参照）、この技術を用いてシステムのキャパシティを調整することができる。すなわち、予め追加用の資源を用意しておき、実稼働において不足した資源を、この追加用の資源を用いてコンピュータ自身に補完させる。
【０００６】
【非特許文献１】「キャパシティ プランニング用ツール」、［online］、２００３年６月６日、Ｍｉｃｒｏｓｏｆｔ、［平成１６年４月２８日検索］、インターネット＜URL : http://www.microsoft.com/japan/msdn/net/bda/bdadotnetarch081.asp＞
【非特許文献２】「オートノミック・コンピューティング・アーキテクチャーに関するブループリント」、［online］、２００３年４月、日本ＩＢＭ、［平成１５年８月２２日検索］、インターネット＜URL : http://www-6.ibm.com/jp/autonomic/pdf/acwp_j.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、コンピュータシステムの資源は、システムのトランザクションに相応しいキャパシティを持つことが好ましい。特に、トランザクションが変化するような場合には、動的にキャパシティを調整してトランザクションに相応しいものとなるようにする必要がある。
しかし、システムのキャパシティを調整するために、システムの実稼働状況を監視し、いつ頃どの資源のキャパシティが不足するかを人が予測し、必要な資源を追加する手法では、キャパシティの不足に関する予測を人が行うため、予測の正確さが各人の経験やスキルに大きく左右されていた。また、将来のトランザクションの変化に対応するために、資源をどの程度増強すればよいかを見積もることは困難であった。
【０００８】
システムの稼働前に必要なキャパシティを見積もってサーバの構成や設定を決定するサイジングは、本来、システムの規模や構成を決定するために行われるものである。サイジングは、テスト環境という特殊な動作環境でシステムの負荷を測定しているため、実稼働におけるトランザクションの変化に動的に対応する目的での行使には適さない。また、テスト時に入力されるトランザクション処理数等のパラメータは、人が経験に基づいて予測しており、実稼働時の実際のトランザクションとは一致しない場合があった。
【０００９】
さらに、オートノミックコンピューティングの技術を用いたキャパシティの調整方法は、実際に資源が不足してきてから短期的な予測の下に予備の資源を投入することができるが、長期的な予測に立って、予めどれだけの予備資源を用意しておけば良いかについては人が判断していた。そのため、予め用意しておく資源の種類や量を各人の経験やスキルに頼らなければならず、最適な量の予備資源を用意することは困難であった。
【００１０】
そこで本発明は、コンピュータシステムの実稼働の状態に基づいて、資源の使用状態の推移を解析し、将来の傾向を予測するシステムおよびその方法を提供することを目的とする。
また本発明は、上記の予測に基づき、どの資源がいつ不足するかを機械的に判断し、さらには予めどれだけの予備資源を用意しておけば良いかを決定するシステムおよびその方法を提供することを他の目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するため、本発明は、コンピュータ資源のキャパシティの推移を予測するシステムとして実現される。特に、本発明は、トランザクションの種類に着目する。このシステムは、コンピュータから資源の使用に関するログ（第１のログ）とトランザクションログ（第２のログ）とを取得し、これらのログに含まれるコンピュータ全体による資源の使用率（ここでは、ＣＰＵ使用率、メモリ使用量、記憶装置の記憶容量、ネットワーク使用量等の資源データを含む）の情報とトランザクションごとの処理数の情報とに基づいて、トランザクションごとの資源使用率を推定する資源使用率推定部と、コンピュータからトランザクションログを取得し、このログに含まれるトランザクションごとの処理数の時系列データに基づいて統計的時系列分析を行い（これにより同定された時系列モデルを用いて）、トランザクションの種類ごとに、将来の処理量を予測する処理量予測部と、推定されたトランザクションごとの資源使用率と予測されたトランザクションごとの将来の処理量とに基づいて、将来におけるコンピュータ資源の使用率を予測する資源使用率予測部とを備えることを特徴とする。
【００１２】
ここで、より詳細には、資源使用率推定部は、各ログから、複数の時刻における資源使用率と対応する複数の時刻におけるトランザクションごとの処理数とを求め、重回帰分析によりトランザクションごとの資源使用率を推定する。
また、処理量予測部は、時系列データのうち最後の一定期間分のデータを除外し、残りのデータに基づいて時系列モデルを同定する。そして、同定された時系列モデルにより先に除外された部分に該当する処理数を予測し、予測結果と除外された部分の実際のデータとを比較して時系列モデルを検証する。
【００１３】
さらに本発明は、ＣＰＵ使用率推定部および処理量予測部から取得されるトランザクションごとのＣＰＵ使用率および将来の推定処理量をパラメータとして入力し、サーバサイジングを行うシステム、あるいは、サーバの動作状態や環境を監視する際の監視制御を行う監視システムとしても実現される。
【００１４】
また、上記の目的を達成する他の本発明は、コンピュータによる次のようなサーバ制御方法としても実現される。すなわち、このサーバ制御方法は、コンピュータが、サーバからトランザクションログを取得するステップと、取得されたトランザクションログに含まれるトランザクションごとの処理数の時系列データに基づいて統計的時系列分析により時系列モデルを同定するステップと、同定された時系列モデルを用いて、トランザクションの種類ごとに、将来の処理量を予測するステップとを含む。
【００１５】
そして、より好ましくは、コンピュータが、取得された資源の使用に関するログに含まれるサーバ全体の資源使用率の情報と、トランザクションログに含まれるトランザクションごとの処理数の情報とに基づいて、トランザクションごとの資源使用率を推定するステップとをさらに含み、加えて、推定されたトランザクションごとの資源使用率と予測されたトランザクションごとにおける将来の処理量とに基づいて、将来におけるサーバ資源の使用率の推移を予測するステップをさらに含む。この予測ステップは、推定されたトランザクションごとの資源使用率と予測されたトランザクションごとの将来の処理量とに基づいて、サーバにおけるソフトウェアおよび／またはハードウェアの構成および／または設定を決定するサーバサイジングステップ、またはサーバに対する監視動作を制御するサーバ監視ステップであっても良い。
【００１６】
さらにまた、本発明は、コンピュータを制御して上述したシステムの各機能を実現するプログラム、またはコンピュータに上記のサーバ制御方法の各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【発明の効果】
【００１７】
以上のように構成された本発明によれば、コンピュータシステムの実稼働の状態に基づいて、統計的処理によりコンピュータ資源の使用状態の推移を解析し、将来の傾向を予測することができる。
そして、この予測に基づき、どの資源がいつ不足するかを機械的に判断し、さらには予めどれだけの予備資源を用意しておけば良いかを決定することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明する。
本実施形態は、コンピュータシステムの実稼働におけるトランザクションのログを解析して、システムにおける資源の使用状態の推移を解析し、どの資源がいつ頃不足するかを予測（キャパシティ予測）して、適切に資源を増強できるようにする。本実施形態のキャパシティ予測は、ＣＰＵ使用率、メモリ使用量、記憶装置の記憶容量、ネットワーク使用量等の種々の資源に対して適用可能であるが、以下の説明では、主としてＣＰＵ使用率に対して適用した場合を例として説明する。
【００１９】
図１は、本実施形態におけるキャパシティ予測システムを実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図１に示すコンピュータ装置は、演算手段であるＣＰＵ（Central Processing Unit：中央処理装置）１０１と、Ｍ／Ｂ（マザーボード）チップセット１０２およびＣＰＵバスを介してＣＰＵ１０１に接続されたメインメモリ１０３と、同じくＭ／Ｂチップセット１０２およびＡＧＰ（Accelerated Graphics Port）を介してＣＰＵ１０１に接続されたビデオカード１０４と、ＰＣＩ（Peripheral Component Interconnect）バスを介してＭ／Ｂチップセット１０２に接続された磁気ディスク装置（ＨＤＤ）１０５、ネットワークインタフェース１０６と、さらにこのＰＣＩバスからブリッジ回路１０７およびＩＳＡ（Industry Standard Architecture）バスなどの低速なバスを介してＭ／Ｂチップセット１０２に接続されたフレキシブルディスクドライブ１０８およびキーボード／マウス１０９とを備える。
【００２０】
なお、図１は本実施形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード１０４を設ける代わりに、ビデオメモリのみを搭載し、ＣＰＵ１０１にてイメージデータを処理する構成としても良いし、外部記憶装置として、ＡＴＡ（AT Attachment）やＳＣＳＩ（Small Computer System Interface）などのインタフェースを介してＣＤ−Ｒ（Compact Disc Recordable）やＤＶＤ−ＲＡＭ（Digital Versatile Disc Random Access Memory）のドライブを設けても良い。
【００２１】
図２は、本実施形態によるキャパシティ予測システムの機能構成を示す図である。
本実施形態では、キャパシティ予測の対象となるコンピュータシステムとしてウェブアプリケーションサーバを想定する。ウェブアプリケーションサーバにおけるトランザクションは、次に挙げる特徴を有している。
・クライアントからの要求に対する処理がシステムにおける処理の大半を占める。
・トランザクションの種類ごとにサーバに与える負荷はほぼ一定である。
・トランザクションの種類ごとの処理数の割合（トランザクション・ミックス）は、動的に変化する。
・トランザクションの種類はアプリケーションの修正によって増減する。
また上述したように、本実施形態では、キャパシティ予測を行う資源をＣＰＵ使用率とする。すなわち、図２に示すキャパシティ予測システムでは、ウェブアプリケーションサーバから得られるトランザクションログの解析により、トランザクションごとにＣＰＵ使用率および将来の予想処理量が求められ、これらのパラメータに基づいて将来のＣＰＵ使用率が予測される。
【００２２】
図２に示すように、本実施形態のキャパシティ予測システムは、キャパシティ予測の対象であるウェブアプリケーションサーバからログを取得するログ取得部１０と、取得されたログに基づいてトランザクションごとのＣＰＵ使用率を推定するＣＰＵ使用率推定部２０と、トランザクションごとの将来の処理量を予測する処理量予測部３０と、ＣＰＵ使用率推定部２０および処理量予測部３０の処理結果に基づいて当該ウェブアプリケーションサーバの将来のＣＰＵ使用率を予測するＣＰＵ使用率予測部４０とを備える。これらの構成は、本実施形態のシステムを図１に示したコンピュータシステムにて実現した場合、プログラム制御されたＣＰＵ１０１と、メインメモリ１０３や磁気ディスク装置１０５等の記憶装置とで実現される。また、ウェブアプリケーションサーバからネットワークを介してログを取得する場合には、ログ取得部１０の機能はＣＰＵ１０１および記憶装置に加えてネットワークインタフェース１０６によって実現される。
【００２３】
ログ取得部１０は、キャパシティ予測の対象であるウェブアプリケーションサーバからＣＰＵ使用率のログおよびトランザクションログを取得し、図１に示したメインメモリ１０３やＣＰＵ１０１のキャッシュメモリ等の記憶手段に格納する。そして、取得したこれらのログをＣＰＵ使用率推定部２０に送り、またトランザクションログを処理量予測部３０に送る。ＣＰＵ使用率のログには、システム自身の監視機構によって定期的に測定されたＣＰＵ使用率とその測定時刻とが記録されている。トランザクションログには、システムが実行したトランザクションごとに、その実行時刻と実行されたトランザクションを特定するトランザクションＩＤとが記録されている。これらのログは、通常のコンピュータシステムにおいて、実稼働時に一般的に取得されている情報なので、本実施形態のために特別な機能の作り込みを行うことなく、既存のコンピュータシステムから取得することができる。なお本実施形態では、上述したようにウェブアプリケーションサーバにおける処理の大半がクライアントからのアクセスに対する処理であるため、トランザクションログとしてアクセスログを取得しても良い。以下の説明では、ログ取得部１０がウェブアプリケーションサーバからアクセスログを取得したものとして説明する。
【００２４】
ＣＰＵ使用率推定部２０は、ログ取得部１０からＣＰＵ使用率のログおよびアクセスログを取得し、これらのログに含まれるＣＰＵ使用率およびトランザクションごとの処理数の情報に基づいてトランザクションごとのＣＰＵ使用率を推定する。
図３は、本実施形態のＣＰＵ使用率推定部２０による処理を説明するフローチャートである。
図３に示すように、ＣＰＵ使用率推定部２０は、まず取得したＣＰＵ使用率のログから一定時間ごと（例えば１時間ごと）のＣＰＵ使用率の平均値を計算し、得られた値を各時刻ｔ（当該一定時間内の時刻）における全トランザクションによるＣＰＵ使用率Ｃ(ｔ)とする（ステップ３０１）。得られたＣＰＵ使用率Ｃ(ｔ)は、図１に示したメインメモリ１０３やＣＰＵ１０１のキャッシュメモリに保持される。
また、ＣＰＵ使用率推定部２０は、取得したアクセスログからトランザクションＩＤごとに一定時間ごと（例えば１時間ごと）の処理数を集計する。そして、各トランザクション（トランザクションＩＤi）に関して、各時刻ｔ（当該一定時間内の時刻）における処理量Ｔi(ｔ)を求める（ステップ３０２）。得られた処理量Ｔi(ｔ)は、図１に示したメインメモリ１０３やＣＰＵ１０１のキャッシュメモリに保持される。
なお、このＣＰＵ使用率Ｃ(ｔ)を求めるステップと、トランザクションごとの処理量Ｔi(ｔ)を求めるステップとは、独立した処理であり、いずれを先に行っても良いし、並列に行っても良い。
【００２５】
次に、ＣＰＵ使用率推定部２０は、ステップ３０１で求めたＣＰＵ使用率Ｃ(ｔ)およびステップ３０２で求めたトランザクションごとの処理量Ｔi(ｔ)に基づいて、個々のトランザクションにおけるＣＰＵ使用率を計算する（ステップ３０３）。
このトランザクションごとのＣＰＵ使用率の計算方法を具体的に説明する。
まず、時刻ｔのＣＰＵ使用率に関して、次の式１を仮定する。
Ｃ'(ｔ)＝α1Ｔ1(ｔ)＋α2Ｔ2(ｔ)＋・・・＋αnＴn(ｔ)＋α0       （式１）
上記の式１において、αi（ｉ＝１〜ｎ）はトランザクションＩＤi（以下、単にＩＤiと表記）のトランザクションを１つ処理するのに必要となるＣＰＵ使用率、Ｔi(ｔ)は時刻ｔにおけるＩＤiのトランザクションの処理数、α0はトランザクションによって表されないＣＰＵ負荷を、それぞれ表す。なお、α0は、一定値か、もしくはトランザクションによって表されるＣＰＵ負荷α1Ｔ1(ｔ)＋α2Ｔ2(ｔ)＋・・・＋αnＴn(ｔ)に比べて十分小さいと仮定する。
【００２６】
そして、ＣＰＵ使用率推定部２０は、ステップ３０１、３０２で得られた相異なる時刻ｔのＣ(ｔ)およびＴi(ｔ)を用い、Ｔi(ｔ)に具体的な値が代入された式１を複数生成する。
次に、ＣＰＵ使用率推定部２０は、生成された複数の式１を用いて重回帰分析を行い、Σ(Ｃ(ｔ)−Ｃ'(ｔ))を最小とするα0、α1、α2、・・・、αnを求める。この際、例えば閾値ｆin＝ｆout＝２として変数増減法を適用し、寄与率の低い変数を削除したり寄与率の高い変数を追加したりすることができる。また、多重共線性を排除するといった操作を行うこともできる。さらに、キャパシティ予測の対象であるコンピュータシステム（本実施形態ではウェブアプリケーションサーバ）が、夜間など一定の時間帯にはバッチ処理が主要な処理となるようなシステム（アプリケーション）の場合、推定に用いるログの時間帯を絞ることによって、推定の精度を向上させるといった工夫を加えることもできる。なお、所定のトランザクションＴiが全く実行されなかった場合は、このトランザクションを処理するのに要するＣＰＵ使用率αiは、αi＝０とされる。以上のようにして得られたトランザクションの種類ごとのＣＰＵ使用率は、図１に示したメインメモリ１０３やＣＰＵ１０１のキャッシュメモリに保持される。
【００２７】
処理量予測部３０は、ログ取得部１０からアクセスログを取得し、このログに含まれるトランザクションごとの処理数の情報に基づいて、トランザクションの種類ごとに、将来の一定時間ごとの処理量を推定する。
図４は、本実施形態の処理量予測部３０による処理を説明するフローチャートである。
図４に示すように、処理量予測部３０は、まず取得したアクセスログからトランザクションＩＤごとに一定時間ごと（例えば１時間ごと）の処理数を集計する。そして、各トランザクション（トランザクションＩＤi）に関して、各時刻ｔ（当該一定時間内の時刻）における処理量Ｔi(ｔ)を求める（ステップ４０１）。
【００２８】
次に、処理量予測部３０は、統計的時系列分析の手法を用いて時系列モデルを同定し（ステップ４０２）、この時系列モデルを用いて、トランザクションの種類ごとにおける将来の一定時間ごとの推定処理量を求める（ステップ４０３）。
この時系列モデルの同定および推定処理量を求める処理について、詳細に説明する。なお、本実施形態では時系列モデルとしてＡＲＩＭＡ（Auto Regressive Integrated Moving Average：自己回帰和分移動平均）モデルを用いることとする。
図５は、処理量予測部３０による処理量の予測方法を説明する図である。
図５では、実際の処理量の時系列データに基づくグラフを薄太線で図示し、ＡＲＩＭＡモデルによるグラフ（予測分を含む）を濃細線で図示している。
【００２９】
まず、処理量予測部３０は、ステップ４０１で得られた処理量Ｔi(０) 〜Ｔi(ｔ−ｐ−ｑ)の時系列データから、Box-JenkinsアプローチによってＡＲＩＭＡモデルを同定する。この際、時系列データにおけるｑの値を０からｔ−ｐまで変化させながら、複数のＡＲＩＭＡモデルを同定する。ここで、ｐは、後述する結果検証に用いるデータを除外するためのパラメータであり、任意の期間が設定される。なお、ＡＲＩＭＡモデルの同定は、トランザクションＩＤごとに行われる。
次に、処理量予測部３０は、同定されたＡＲＩＭＡモデルによって処理量Ｔ'i(ｔ−ｐ)〜Ｔ'i(ｔ)を予測する。上記のようにＡＲＩＭＡモデルは、各トランザクションＩＤに対して複数存在するので、それらのＡＲＩＭＡモデルごとに予測結果が得られる。そして、得られた各ＡＲＩＭＡモデルによる予測結果とアクセスログから得られる実際の処理量Ｔi(ｔ−ｐ)〜Ｔi(ｔ)とを比較して誤差が最も小さい予測を行うことができたモデルを選択し、選択されたモデルによって将来の推定処理量Ｔ'i(ｔ＋ｈ)を求める。
【００３０】
本実施の形態では、上記のように、アクセスログから得られた処理量のデータの全てを時系列モデル（ＡＲＩＭＡモデル）を同定するために用いるのではなく、一部を時系列モデルによる予測結果の検証用として用いている。この操作についてさらに説明する。
時系列モデルを同定する場合、時系列データにおける最後（最新）のデータ付近での値の推移状態に応じて、得られるモデルの傾向が異なってしまう。したがって、アクセスログから得られた処理量のデータの全てを用いて時系列モデルを同定した場合、そのモデルは、最新のデータであるＴi(ｔ)付近の値の推移状態に影響を受けることとなる。
そこで上述したように、本実施形態は、トランザクションの処理量の時系列データから一部（一定期間分）を予め除いておき、残った時系列データを用いて時系列モデルを同定する。そして、得られたモデルで除かれた部分に対応する処理量を予測し、予測結果と予め除かれた実際の処理量のデータとを比較することによってモデルの信頼度を検証することとした。
【００３１】
具体的には、アクセスログに数十日〜数ヶ月分の処理量の時系列データが記述されている場合、例えば最新のデータから一週間（７日）分のデータを検証用とする。すなわち、上述した処理量Ｔi(ｔ−ｐ−ｑ)で、ｐ＝７である。そして、ｑを１日単位で適宜変更させて複数のＡＲＩＭＡモデルを同定する。ｑ＝０とすれば、アクセスログの時系列データから７日分のデータを除外した残りのデータを全て用いてＡＲＩＭＡモデルが同定され、ｑ＝１とすれば、７日分のデータを除外した残りのデータからさらに最後の１日分のデータを除いたデータでＡＲＩＭＡモデルが同定されることとなる。
このようにして得られた複数のＡＲＩＭＡモデルで、検証用に除外された７日分に該当する処理量をそれぞれ予測し、予測結果と実際の当該７日分のデータとを比較する。これにより、誤差が最も小さい予測を行うことができたＡＲＩＭＡモデルを信頼性の高いモデルとすることができる。
【００３２】
ＣＰＵ使用率予測部４０は、ＣＰＵ使用率推定部２０によって推定されたトランザクションごとのＣＰＵ使用率と、処理量予測部３０によって予測されたトランザクションごとの将来の推定処理量Ｔ'i(ｔ＋ｈ)とを、上述した式１に代入して、時刻ｔ＋ｈにおけるシステム全体のＣＰＵ使用率Ｃ'(ｔ＋ｈ)を予測する。
時刻ｔ＋ｈのｈを適宜設定してＣＰＵ使用率Ｃ'(ｔ＋ｈ)を予測することにより、キャパシティ予測の対象であるウェブアプリケーションサーバにおけるＣＰＵ使用率の将来にわたる推移を推定でき、当該ウェブサーバアプリケーションの処理能力（ＣＰＵリソース）がいつ頃不足するかを予測することができる。
【００３３】
上述したように、本実施形態では、キャパシティ予測を行う資源をＣＰＵ使用率として、キャパシティ予測における機能について具体的かつ詳細に説明した。しかし、本実施形態は、ＣＰＵ使用率に関してのみ適用されるものではなく、メモリ使用量、記憶装置の記憶容量、ネットワーク使用量等の種々の資源に対して適用可能であることは言うまでもない。
例えば、メモリ使用量に対して適用した場合、図２に示したシステム構成において、ＣＰＵ使用率推定部２０およびＣＰＵ使用率予測部４０の代わりに、トランザクションごとのメモリ使用量を推定する機能と、システム全体における将来のメモリ使用量を予測する機能とが設けられることとなる。そして、ＣＰＵ使用率に関してＣＰＵ使用率推定部２０が実行したのと同様の、重回帰分析を用いた処理により、トランザクションごとのメモリ使用量が推定され、この推定結果と処理量予測部３０の予測結果とに基づいて、システムのメモリ使用量の将来にわたる推移を推定する。
このように、本実施形態は、種々の資源に対してそのまま適用することができ、各資源の使用状態の推移を解析し、どの資源がいつ頃不足するかを予測することが可能である。
【００３４】
なお、本実施形態では、処理量の予測を行うために処理量の推移の傾向を示す時系列モデルとしてＡＲＩＭＡモデルを用いたが、この他、移動平均を用いたり処理量の時系列データを回帰直線や回帰曲線に当てはめたりすることで適当なモデルを同定しても良い。基本的に、Ｚ1，Ｚ2，・・・，Ｚtという１変量の時系列データを元にＺt+1，Ｚt+2，・・・，Ｚt+nを予測できる時系列モデルであれば、どのようなモデルでも用いることができる。
【００３５】
さて、図２に示したキャパシティ予測システムは、上記のようにＣＰＵ使用率予測部４０を備え、最終的にシステムにおける将来のＣＰＵ使用率を予測した。しかし、将来のＣＰＵ使用率を予測する以外にも、ＣＰＵ使用率推定部２０によって推定されたトランザクションごとのＣＰＵ使用率と、処理量予測部３０によって予測されたトランザクションごとの将来の推定処理量Ｔ'i(ｔ＋ｈ)とに基づいて、種々のサーバコントロールを行うことが可能である。以下、そのようなシステムの例を説明する。
【００３６】
図６は、本実施形態をサーバサイジングシステムに適用した場合の構成例を示す図である。
図６に示すシステムは、ログ取得部１０と、ＣＰＵ使用率推定部２０と、処理量予測部３０と、ＣＰＵ使用率推定部２０および処理量予測部３０の処理結果に基づいてサーバのサイジングを実行するサーバサイジング実行部５０とを備える。これらの構成は、本実施形態のシステムを図１に示したコンピュータシステムにて実現した場合、プログラム制御されたＣＰＵ１０１と、メインメモリ１０３や磁気ディスク装置１０５等の記憶装置とで実現される。また、ウェブアプリケーションサーバからネットワークを介してログを取得する場合には、ログ取得部１０の機能はＣＰＵ１０１および記憶装置に加えてネットワークインタフェース１０６によって実現される。なお、ログ取得部１０、ＣＰＵ使用率推定部２０および処理量予測部３０の機能は、図２に示したキャパシティ予測システムにおける対応する機能ブロックと同様であるため、同一の符号を付して説明を省略する。
【００３７】
サーバサイジング実行部５０は、ＣＰＵ使用率推定部２０および処理量予測部３０から取得されるトランザクションごとのＣＰＵ使用率および将来の推定処理量をパラメータとして入力し、トランザクションの種類や処理量の変化の時間特性等に基づいて、サーバにおけるアプリケーションのニーズを十分に満たすために必要なソフトウェアおよびハードウェアの構成や設定を決定する。
【００３８】
なお、このサーバサイジング実行部５０におけるプロセス自体は、システムの設計時等に当該システムの規模や構成を決定するために用いられる既存のサイジングツールと同様である。すなわち、本実施形態によれば、通常はシステムのテスト環境で人が予測したパラメータに基づいて行われるサーバサイジングを、ＣＰＵ使用率推定部２０および処理量予測部３０から得られる情報をパラメータとして実行する。これにより、テスト環境ではない実稼働時の実データに基づいて、システムの構成や設定の更新等を計画することができる。
【００３９】
図７は、本実施形態をサーバ監視システムに適用した場合の構成例を示す図である。
図７に示すシステムは、ログ取得部１０と、ＣＰＵ使用率推定部２０と、処理量予測部３０と、ウェブアプリケーションサーバの動作状態や環境を監視するサーバ監視部６０とを備える。これらの構成は、本実施形態のシステムを図１に示したコンピュータシステムにて実現した場合、プログラム制御されたＣＰＵ１０１と、メインメモリ１０３や磁気ディスク装置１０５等の記憶装置とで実現される。また、ウェブアプリケーションサーバからネットワークを介してログを取得する場合には、ログ取得部１０の機能はＣＰＵ１０１および記憶装置に加えてネットワークインタフェース１０６によって実現される。なお、ログ取得部１０、ＣＰＵ使用率推定部２０および処理量予測部３０の機能は、図２に示したキャパシティ予測システムにおける対応する機能ブロックと同様であるため、同一の符号を付して説明を省略する。
【００４０】
サーバ監視部６０は、ウェブアプリケーションサーバの動作状態や環境を監視し、ＣＰＵの使用率や、使用傾向等を判断し、必要に応じて警報を発する。本実施形態のサーバ監視部６０は、この監視動作の制御や監視項目における判断を行うために、ＣＰＵ使用率推定部２０および処理量予測部３０から取得されるトランザクションごとのＣＰＵ使用率および将来の推定処理量を参酌する。
例えば、ＣＰＵ使用率が一定以上になった場合に警報を発するという設定がなされている場合、トランザクションごとのＣＰＵ使用率および将来の推定処理量から将来のＣＰＵ使用率を予測する。そして、予測されたＣＰＵ使用率の推移の傾向に基づいて、警報を発するか否かを判断するためのＣＰＵ使用率の閾値を決定することができる。
また、ＣＰＵ使用率が８０％に達したならば警報を発するという設定がなされており、ある時点でＣＰＵ使用率が８０％に達したとする。この場合、ＣＰＵ使用率の予測結果を参酌し、今後さらにＣＰＵ使用率が上昇すると予測されるのであれば警報を発し、このままＣＰＵ使用率が上昇を続けるのではなく瞬間的にＣＰＵ使用率が８０％に達したに過ぎないのであれば警報を発しないといった監視動作の制御を行うことができる。
【００４１】
なお、図６に示したサーバサイジングシステムおよび図７に示したサーバ監視システムは、ＣＰＵ使用率の推移に基づいてサーバサイジングや監視制御を行うこととしたが、これらのシステムにおいても上述したように、メモリ使用量、記憶装置の記憶容量、ネットワーク使用量等の種々の資源の使用状態の推移に基づいてサーバサイジングや監視制御を行うことができるのは言うまでもない。
【００４２】
さらに、以上の説明では、いずれもウェブアプリケーションサーバを対象としてキャパシティ予測やサーバサイジング、監視を行うシステムについて説明したが、本実施形態はウェブアプリケーションサーバに対してのみ適用可能なものではない。サーバにおいて実行される処理（資源を使用する処理）の多くがクライアントからの要求によって実行されること、トランザクションの種類によって負荷（資源の使用率や使用量）がほぼ一定であり、かつ長期的に安定していること、といった条件を満足するならば、認証サーバや負荷分散サーバ、データベースサーバ等の種々のサーバに対してもそのまま適用可能である。
【図面の簡単な説明】
【００４３】
【図１】本実施形態におけるキャパシティ予測システムを実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図２】本実施形態によるキャパシティ予測システムの機能構成を示す図である。
【図３】本実施形態のＣＰＵ使用率推定部による処理を説明するフローチャートである。
【図４】本実施形態の処理量予測部による処理を説明するフローチャートである。
【図５】本実施形態の処理量予測部による処理量の予測方法を説明する図である。
【図６】本実施形態をサーバサイジングシステムに適用した場合の構成例を示す図である。
【図７】本実施形態をサーバ監視システムに適用した場合の構成例を示す図である。
【符号の説明】
【００４４】
１０…ログ取得部、２０…ＣＰＵ使用率推定部、３０…処理量予測部、４０…ＣＰＵ使用率予測部、５０…サーバサイジング実行部、６０…サーバ監視部、１０１…ＣＰＵ（Central Processing Unit：中央処理装置）、１０３…メインメモリ、１０５…磁気ディスク装置（ＨＤＤ）、１０６…ネットワークインタフェース
【図１】
2006024017.tif 000003
【図２】
2006024017.tif 000004
【図３】
2006024017.tif 000005
【図４】
2006024017.tif 000006
【図５】
2006024017.tif 000007
【図６】
2006024017.tif 000008
【図７】
2006024017.tif 000009