制御プログラム、データアクセス制御装置およびデータ制御方法
【課題】データベースの応答時間の増加を抑制すること。
【解決手段】データアクセス制御装置100は、データベース101〜103の中から、データの読出要求に対する応答時間の長さを表す値が第1の閾値以上となる第1のデータベースを検出する。データアクセス制御装置100は、データベース101〜103の中から、第1のデータベースとは異なる第2のデータベースを検出する。データアクセス制御装置100は、ルーティングテーブル110に第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を第2のデータベースに変更する。
【解決手段】データアクセス制御装置100は、データベース101〜103の中から、データの読出要求に対する応答時間の長さを表す値が第1の閾値以上となる第1のデータベースを検出する。データアクセス制御装置100は、データベース101〜103の中から、第1のデータベースとは異なる第2のデータベースを検出する。データアクセス制御装置100は、ルーティングテーブル110に第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を第2のデータベースに変更する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データアクセスに関する制御を行う制御プログラム、データアクセス制御装置およびデータ制御方法に関する。
【背景技術】
【0002】
従来、ICT(Information and Communication Technology)システムが提供する業務のサービス品質を可視化し、システム内の監視対象となるサーバから収集した性能データを監視、分析する技術がある。
【0003】
各サーバの性能データは、例えば、各サーバに導入された各エージェントにより定期的に収集される。各エージェントにより収集された性能データは、例えば、性能データを一括管理する管理サーバのマネージャに送信され、性能DB(データベース)に蓄積される。また、監視対象となるサーバ数の増加などにより性能DBへの負荷が高くなると、性能DBの数を増やしたり、管理サーバの処理性能を向上させるなどのスケールアップやスケールアウトが行われる。
【0004】
関連する先行技術としては、例えば、監視対象のストレージネットワーク構成要素から収集した性能情報をもとに、以後の情報収集の対象範囲もしくは程度を必要に応じて自動調整するものがある。また、例えば、性能種目又は被管理装置を要素とし、第1の要素に関する性能情報の時系列変化と、第2の要素に関する性能情報の時系列変化との相関関数から相関モデルを生成し、第1の要素の性能情報から第2の要素の性能情報を予測する技術がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−157933号公報
【特許文献2】特開2009−199534号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、監視対象の性能データ等を格納するデータベース群のうち特定のデータベースに利用者からの参照要求が偏ってアクセスが集中すると、利用者からの参照要求に対するレスポンス時間の増大化を招くという問題がある。
【0007】
一側面では、本発明は、データベースの応答時間の増加を抑制することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一側面によれば、第1のデータ及び第2のデータを記憶する第1の記憶装置と、前記第1のデータを記憶する第2の記憶装置と、を含むシステム内のコンピュータに、前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御プログラムが提案される。
【0009】
本発明の一側面によれば、収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータが、前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する制御プログラム、データアクセス制御装置およびデータ制御方法が提案される。
【0010】
また、本発明の一側面によれば、各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータが、前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する制御プログラム、データアクセス制御装置およびデータ制御方法が提案される。
【発明の効果】
【0011】
本発明の一側面によれば、データベースの応答時間の増加を抑制することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】図1は、実施の形態1にかかるデータ制御方法の一実施例を示す説明図である。
【図2】図2は、実施の形態2にかかる性能管理システムのシステム構成例を示す説明図である。
【図3】図3は、実施の形態2にかかるデータアクセス制御装置のハードウェア構成例を示すブロック図である。
【図4】図4は、ルーティングテーブルの記憶内容の一例を示す説明図である。
【図5】図5は、実施の形態2にかかるデータアクセス制御装置の機能的構成例を示すブロック図である。
【図6】図6は、レスポンス管理テーブルの記憶内容の一例を示す説明図である。
【図7】図7は、ルーティングテーブルの記憶内容の更新例を示す説明図である。
【図8】図8は、同時参照回数管理テーブルの記憶内容の一例を示す説明図である。
【図9】図9は、同時参照率管理テーブルの記憶内容の一例を示す説明図である。
【図10】図10は、エージェントの格納先DBの変更例を示す説明図である。
【図11】図11は、実施の形態2にかかるデータアクセス制御装置のデータ制御処理手順の一例を示すフローチャートである。
【図12】図12は、アクセス状況更新処理の具体的処理手順の一例を示すフローチャートである。
【図13】図13は、同時参照率算出処理の具体的処理手順の一例を示すフローチャートである。
【図14】図14は、グループ選択処理の具体的処理手順の一例を示すフローチャートである。
【図15】図15は、ルーティング処理の具体的処理手順の一例を示すフローチャートである。
【図16】図16は、実施の形態3にかかる性能管理システムのシステム構成例を示す説明図である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、この発明にかかる制御プログラム、データアクセス制御装置およびデータ制御方法の実施の形態を詳細に説明する。
【0014】
(実施の形態1)
図1は、実施の形態1にかかるデータ制御方法の一実施例を示す説明図である。図1において、データアクセス制御装置100は、ルーティングテーブル110にアクセス可能であり、データベース群に格納するデータを分散する機能を有するコンピュータである。
【0015】
ルーティングテーブル110は、各々の監視対象の状態を特徴付けるデータの書込先となるデータベースを設定するテーブルである。監視対象としては、例えば、システム内のハードウェア、ソフトウェア、ドキュメントなどが挙げられる。
【0016】
より詳細に説明すると、例えば、監視対象は、Webサーバ、アプリケーションサーバ、データベースサーバ、仮想サーバ、ストレージ装置、ネットワーク機器などのシステムの構成要素である。また、監視対象は、各構成要素のCPU(Central Processing Unit)、メモリ、ディスクなどのリソースであってもよい。また、監視対象は、各構成要素にインストールされているOS(Operating System)、ミドルウェア、アプリケーションなどのソフトウェアであってもよい。
【0017】
監視対象の状態を特徴付けるデータとは、例えば、時間の経過に伴って変化する監視対象の使用状況、稼働状況、トラフィック状況などを表す情報である。各データは、例えば、システム全体の性能の監視、分析、診断、評価等に用いられる。
【0018】
監視対象の状態を特徴付けるデータは、定期的または不定期に収集されてルーティングテーブル110に設定されている書込先のデータベースに書き込まれる。また、データベース101〜103に格納されているデータは、利用者からの参照要求に応じて、ルーティングテーブル110に設定されている書込先のデータベースから読み出される。
【0019】
図1において、データベース101〜103は、周期的に収集される各々の監視対象の状態を特徴付けるデータを格納するデータベース群である。また、サーバ104〜108は、監視対象となるサーバ群である。また、データD1〜D5は、サーバ104〜108の各々の状態を特徴付けるデータである。
【0020】
ここで、利用者により頻繁に参照されるデータが特定のデータベースに偏って格納されていると、特定のデータベースに対するアクセスが集中する場合がある。この場合、利用者からの参照要求に対するデータベースの応答時間が増大して、利用者に対するサービス品質が低下してしまうことがある。
【0021】
そこで、実施の形態1では、周期的に収集される各々の監視対象のデータを格納するデータベース群のうち、利用者からの参照要求が偏ってアクセス集中しているデータベースが書込先となっている監視対象のデータの書込先を別のデータベースに変更する。これにより、利用者からの参照要求に対するデータベースの応答時間の増大化を抑制して、利用者に対するサービス品質の低下を防ぐ。
【0022】
以下、実施の形態1にかかるデータアクセス制御装置100のデータ制御処理手順の一実施例について説明する。ここでは、ルーティングテーブル110に、データD1,D2の書込先としてデータベース101が設定され、データD3,D4の書込先としてデータベース102が設定され、データD5の書込先としてデータベース103が設定されている。
【0023】
(1)データアクセス制御装置100は、データベース101〜103の中から、データの読出要求に対する応答時間の長さを表す値(以下、「指標値」という)が第1の閾値以上となる第1のデータベースを検出する。ここで、データの読出要求に対する応答時間の長さを表す指標値とは、データの読出要求に対するデータベースの応答性能を表すものである。
【0024】
各データベースの指標値は、例えば、データの読出要求に対する応答時間が長くなる、すなわち、データの読出要求に対する応答性能が悪いほど値が大きくなる。該指標値としては、例えば、各データベースに格納されているデータの読出要求に対する応答時間の実績値から得られる応答時間の平均値を用いることができる。
【0025】
また、第1の閾値は、例えば、該指標値が第1の閾値以上となると、利用者に対して要求されているサービス品質を維持できなくなる値に設定される。すなわち、データアクセス制御装置100は、該指標値が第1の閾値以上であり、データの読出要求に対する応答性能が悪い第1のデータベースを検出する。
【0026】
図1の例では、利用者からの参照要求(図1中、下向き点線矢印)がデータベース102に偏ってアクセスが集中しているため、データの参照要求に対するデータベース102の応答時間が増大している。このため、第1のデータベースとして、データベース101〜103の中からデータベース102が検出される。
【0027】
(2)データアクセス制御装置100は、データベース101〜103の中から、第1のデータベースとは異なる第2のデータベースを検出する。具体的には、例えば、データアクセス制御装置100が、データベース101〜104の中から、該指標値が第2の閾値未満となる第2のデータベースを検出することにしてよい。
【0028】
ここで、第2の閾値は、少なくとも第1の閾値よりも小さい値である。第2の閾値は、例えば、該指標値が第2の閾値未満となると、データの読出要求に対する応答時間が短く、データの読出要求に対する応答性能が良いと判断できる値に設定される。図1の例では、第2のデータベースとして、データベース101〜103の中からデータベース103が検出される。
【0029】
(3)データアクセス制御装置100は、ルーティングテーブル110に第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を第2のデータベースに変更する。
【0030】
すなわち、データアクセス制御装置100が、利用者からの参照要求が偏ってアクセス集中している第1のデータベースに書き込まれるデータの書込先を、第1のデータベースよりも応答性能が良い第2のデータベースに変更する。図1の例では、データベース102が書込先に設定されているデータD3,D4のうち、データD4の書込先がデータベース103に変更されている。
【0031】
以上説明したように、実施の形態1にかかるデータアクセス制御装置100によれば、第1のデータベースが書込先に設定されているデータの書込先を第2のデータベースに変更することができる。これにより、以降において、周期的に収集されて第1のデータベースに書き込まれていたデータが第2のデータベースに書き込まれることになり、利用者からの参照要求が偏ってアクセス集中している第1のデータベースの応答時間の増大化を抑制することができる。
【0032】
また、変更先のデータベースとして指標値が第2の閾値未満となる第2のデータベースを検出することにより、利用者からの参照要求がデータベース群で平準化されるように、各々の監視対象の状態を特徴付けるデータの書込先を分散することができる。これにより、1データベース当たりの参照要求数の偏りを抑えて、データベース資源を効率的に利用することができる。
【0033】
なお、上述した説明では、データベースの指標値として、データの読出要求に対する応答時間が長くなる、すなわち、データの読出要求に対する応答性能が悪いほど値が大きくなる指標値を用いることにしたが、これに限らない。具体的には、例えば、データベースの指標値として、例えば、データの読出要求に対する応答時間が短くなる、すなわち、データの読出要求に対する応答性能が良いほど値が大きくなる指標値を用いることにしてもよい。
【0034】
この場合、第1の閾値は、例えば、該指標値が第1の閾値未満となると、利用者に対して要求されているサービス品質を維持できなくなる値に設定される。そして、上記(1)において、データアクセス制御装置100は、データベース101〜103の中から、データの読出要求に対する応答時間の長さを表す指標値が第1の閾値未満となる第1のデータベースを検出することにしてもよい。
【0035】
(実施の形態2)
つぎに、実施の形態1にかかるデータアクセス制御装置100を性能管理システムに適用した場合について説明する。性能管理システムは、例えば、ICTシステム内の各構成要素のデータを収集、蓄積、提供することで、ICTシステムが提供する業務のサービス品質の最適化を支援するシステムである。なお、実施の形態1で説明した箇所と同様の箇所については説明を省略する。
【0036】
図2は、実施の形態2にかかる性能管理システムのシステム構成例を示す説明図である。図2において、性能管理システム200は、データアクセス制御装置100と、サーバSV1〜SVn(n:2以上の自然数)と、複数のクライアント端末201(図2の例では、3台)と、を含む構成である。性能管理システム200において、データアクセス制御装置100、サーバSV1〜SVnおよび複数のクライアント端末201は、有線または無線のネットワーク210を介して接続されている。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0037】
ここで、データアクセス制御装置100は、性能DB#1〜#m(m:2以上の自然数)にアクセス可能であり、各サーバSV1〜SVnの性能データを周期的に収集する機能を有する。性能DB#1〜#mは、サーバSV1〜SVnの性能データを格納するデータベースである。サーバSV1〜SVnは、監視対象となるサーバ群である。
【0038】
性能データは、各サーバSV1〜SVnの状態を特徴付ける情報である。例えば、性能データは、各サーバSV1〜SVnのCPU、メモリ、ディスクなどの使用率や、各サーバSV1〜SVnにインストールされているミドルウェア、アプリケーションなどの稼働率を表す情報である。
【0039】
具体的には、例えば、データアクセス制御装置100は、各サーバSV1〜SVnに導入された各エージェントにより定期的(例えば、1分間隔)に収集される性能データを各サーバSV1〜SVnから受信する。これにより、各サーバSV1〜SVnの性能データを周期的に収集することができる。
【0040】
また、データアクセス制御装置100は、各サーバSV1〜SVnから収集した性能データを性能DB#1〜#mに書き込む機能を有する。具体的には、例えば、データアクセス制御装置100は、各サーバSV1〜SVnから収集した性能データをルーティングテーブル110に設定されている書込先の性能DBに書き込む。なお、ルーティングテーブル110の記憶内容については、図4を用いて後述する。
【0041】
また、データアクセス制御装置100は、クライアント端末201から性能データの参照要求を受け付けて処理する機能を有する。ここで、参照要求とは、利用者が参照する1以上の性能データの読出要求である。参照要求には、例えば、要求する性能データを特定する情報が含まれている。受け付けた参照要求は、例えば、後述の図3に示すデータアクセス制御装置100のRAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
【0042】
具体的には、例えば、データアクセス制御装置100は、ルーティングテーブル110を参照して、受け付けた参照要求から特定される性能データの書込先の性能DBの中から該性能データを読み出す。そして、データアクセス制御装置100は、読み出した性能データを要求元のクライアント端末201に送信する。
【0043】
また、データアクセス制御装置100は、参照要求に対するレスポンス時間を計測する機能を有する。ここで、参照要求に対するレスポンス時間とは、例えば、要求されている性能データの読出要求を性能DBに渡してから、要求されている性能データが返ってくるまでにかかる時間である。
【0044】
参照要求に対するレスポンス時間は、例えば、クライアント端末201から参照要求を受け付けた際に、その都度計測される。計測された計測結果は、例えば、後述の図3に示すデータアクセス制御装置100のRAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
【0045】
サーバSV1〜SVnは、監視対象となるサーバ群であり、例えば、ICTシステム内のWebサーバ、アプリケーションサーバ、データベースサーバなどのコンピュータである。各サーバSV1〜SVnには、各サーバSV1〜SVnの性能データを定期的に収集するエージェント(ソフトウェア)が導入されている。
【0046】
また、サーバSV1〜SVnは、エージェントにより収集した性能データをデータアクセス制御装置100に送信する機能を有する。具体的には、例えば、サーバSV1〜SVnは、性能データが収集されると、その都度、該性能データをデータアクセス制御装置100に送信する。この結果、データアクセス制御装置100において、各サーバSV1〜SVnの性能データが周期的に収集される。
【0047】
クライアント端末201は、利用者が使用するコンピュータであり、利用者から要求されたサーバSV1〜SVnの性能データをディスプレイに表示する。利用者は、例えば、サーバSV1〜SVnにより実現される各々のシステムの管理者である。
【0048】
具体的には、例えば、まず、クライアント端末201は、利用者の操作入力により、性能データの参照要求を受け付ける。そして、クライアント端末201は、受け付けた性能データの参照要求をデータアクセス制御装置100に送信し、その結果、データアクセス制御装置100から性能データを受信してディスプレイに表示する。これにより、利用者は、各サーバSV1〜SVnの性能データを参照することができ、サービス品質の劣化原因などの究明に役立てることができる。
【0049】
以下の説明では、サーバSV1〜SVnのうち任意のサーバを「サーバSVi」と表記する(i=1,2,…,n)。また、各サーバSV1〜SVnにそれぞれ導入されているエージェントを「エージェントA1〜An」と表記し、エージェントA1〜Anのうち任意のエージェントを「エージェントAi」と表記する。また、性能DB#1〜#mのうち任意の性能DBを「性能DB#j」と表記する(j=1,2,…,m)。
【0050】
(データアクセス制御装置100のハードウェア構成例)
図3は、実施の形態2にかかるデータアクセス制御装置のハードウェア構成例を示すブロック図である。図3において、データアクセス制御装置100は、CPU301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、I/F(Interface)308と、ディスプレイ309と、キーボード310と、マウス311と、を備えている。また、各構成部はバス300によってそれぞれ接続されている。
【0051】
ここで、CPU301は、データアクセス制御装置100の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
【0052】
光ディスクドライブ306は、CPU301の制御にしたがって光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
【0053】
I/F308は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、I/F308は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F308には、例えば、モデムやLANアダプタなどを採用することができる。
【0054】
ディスプレイ309は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ309は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0055】
キーボード310は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0056】
なお、データアクセス制御装置100は、例えば、上述した構成部のうち光ディスクドライブ306、光ディスク307、ディスプレイ309、キーボード310、マウス311等を備えないことにしてもよい。また、図2に示したサーバSV1〜SVnやクライアント端末201についても、上述したデータアクセス制御装置100と同様のハードウェア構成により実現することができる。
【0057】
(ルーティングテーブル110の記憶内容)
つぎに、ルーティングテーブル110の記憶内容について説明する。ここでは一例として、サーバSV1〜SVnの台数が5台(n=5)、性能DB#1〜#mの台数が3台(m=3)の場合を例に挙げて説明する。なお、ルーティングテーブル110は、例えば、図3に示したRAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
【0058】
図4は、ルーティングテーブルの記憶内容の一例を示す説明図である。図4において、ルーティングテーブル110は、格納開始日時、格納終了日時、エージェント名および格納先DBのフィールドを有する。各フィールドに情報を設定することで、ルーティング情報(例えば、ルーティング情報400−1,400−2)が記憶されている。
【0059】
ここで、格納開始日時は、監視対象となるサーバSViの性能データを、書込先となる性能DB#jに格納する期間の開始日時(年/月/日 時:分:秒)である。格納終了日時は、監視対象となるサーバSViの性能データを、書込先となる性能DB#jに格納する期間の終了日時(年/月/日 時:分:秒)である。
【0060】
エージェント名は、サーバSViに導入されているエージェントAiの識別子であり、監視対象となるサーバSViを特定する情報である。格納先DBは、監視対象となるサーバSViの性能データの書込先となる性能DB#jの識別子である。
【0061】
例えば、ルーティング情報400−1には、格納開始日時以降に、各エージェントA1〜A5により収集された各サーバSV1〜SV5の性能データの格納先DBが示されている。例えば、エージェントA1により収集されたサーバSV1の性能データの格納先DBとして性能DB#1が示されている。なお、ルーティング情報400−1は、最新のルーティング情報のため、格納終了日時が未設定(空白)となっている。
【0062】
また、ルーティング情報400−2には、格納開始日時から格納終了日時までの期間に、各エージェントA1〜A5により収集された各サーバSV1〜SV5の性能データの格納先DBが示されている。例えば、エージェントA1により収集されたサーバSV1の格納先DBとして性能DB#2が示されている。
【0063】
周期的に収集される性能データの書込時において、データアクセス制御装置100は、ルーティングテーブル110を参照して、収集した性能データの書込先となる性能DB#jを特定する。具体的には、例えば、データアクセス制御装置100は、サーバSViから収集した性能データの書込先の性能DB#jとして、サーバSViに導入されているエージェントAiのエージェント名に対応する格納先DBを特定する。
【0064】
なお、サーバSViに導入されているエージェントAiのエージェント名は、例えば、サーバSViから収集される性能データに含まれていてもよく、また、サーバSViとエージェントAiとの対応関係を表す情報から特定されてもよい。
【0065】
また、クライアント端末201から参照要求を受け付けた場合、データアクセス制御装置100は、ルーティングテーブル110を参照して、要求されている性能データの書込先となる性能DB#jを特定する。ここで、参照要求には、例えば、要求する性能データごとに、日時(または、期間)とエージェント名とを含むSQL(Structured Query Language)文が記述されている。
【0066】
具体的には、例えば、まず、データアクセス制御装置100は、ルーティングテーブル110の中から、参照要求に含まれる日時が、格納開始日時から格納終了日時までの期間に含まれるルーティング情報を特定する。つぎに、データアクセス制御装置100は、特定したルーティング情報を参照して、参照要求に含まれるエージェント名に対応する格納先DBを特定する。そして、データアクセス制御装置100は、特定した格納先DBの中から、要求されている性能データを読み出す。
【0067】
(データアクセス制御装置100の機能的構成例)
図5は、実施の形態2にかかるデータアクセス制御装置の機能的構成例を示すブロック図である。図5において、データアクセス制御装置100は、取得部501と、第1の算出部502と、検出部503と、選択部504と、変更部505と、第2の算出部506と、特定部507と、を含む構成である。この制御部となる機能(取得部501〜特定部507)は、具体的には、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F308により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
【0068】
以下の説明では、特に指定する場合を除いて、監視対象となるサーバSViを、サーバSViに導入されているエージェント名を用いて「エージェントAi」と表記する。
【0069】
取得部501は、エージェントAiの性能データの参照要求を取得する機能を有する。具体的には、例えば、取得部501が、所定期間X内にクライアント端末201から受け付けられた性能データの参照要求をRAM303、磁気ディスク305、光ディスク307などの記憶装置から読み出す。
【0070】
また、取得部501が、クライアント端末201からエージェントAiの性能データの参照要求を受け付ける他のコンピュータ(例えば、後述の図16に示す管理サーバ1610)から、所定期間X内にクライアント端末201から受け付けられた性能データの参照要求を取得することにしてもよい。
【0071】
所定期間Xは、任意に設定可能である。例えば、所定期間Xは、現時点から予め設定された時間(例えば、1時間)遡った時点から現時点までの期間であってもよく、また、図4に示したルーティングテーブル110内の最新の格納開始日時から現時点までの期間であってもよい。
【0072】
また、取得部501は、性能DB#jごとに、エージェントAiの性能データの参照要求に対するレスポンス時間の計測結果を取得する機能を有する。具体的には、例えば、取得部501が、所定期間X内にクライアント端末201から受け付けられた性能データの参照要求に対する性能DB#jごとのレスポンス時間の計測結果をRAM303、磁気ディスク305、光ディスク307などの記憶装置から読み出す。
【0073】
また、取得部501が、クライアント端末201からエージェントAiの性能データの参照要求を受け付ける他のコンピュータ(例えば、後述の図16に示す管理サーバ1610)から、所定期間X内に受け付けられた参照要求に対する性能DB#jごとのレスポンス時間の計測結果を取得することにしてもよい。
【0074】
第1の算出部502は、性能DB#jごとに、エージェントAiの性能データの参照要求に対するレスポンス時間の長さを表す指標値を算出する機能を有する。ここで、性能データの参照要求に対するレスポンス時間の長さを表す指標値とは、性能データの参照要求に対する性能DB#jの応答性能を表すものである。
【0075】
具体的には、例えば、第1の算出部502が、性能DB#jごとに取得された所定期間X内のレスポンス時間の計測結果に基づいて、性能DB#jの指標値を算出する。より具体的には、例えば、第1の算出部502が、所定期間X内の性能DB#jのレスポンス時間の計測結果のうち、レスポンス時間の長さが最大となる計測結果の値を、性能DB#jの指標値として算出することにしてもよい。
【0076】
また、第1の算出部502が、所定期間X内の性能DB#jのレスポンス時間の計測結果に基づいて、性能DB#jのレスポンス時間の平均値を、性能DB#jの指標値として算出することにしてもよい。この際、第1の算出部502が、例えば、所定期間X内の性能DB#jのレスポンス時間の計測結果のうちレスポンス時間の長さが上位N個の計測結果に基づいて、性能DB#jのレスポンス時間の平均値を算出することにしてもよい。
【0077】
以下の説明では、性能DB#jの指標値として、性能DB#jのレスポンス時間の平均値(以下、「平均レスポンス時間Tj」という)を用いる場合を例に挙げて説明する。算出された性能DB#jの平均レスポンス時間Tjは、例えば、後述の図6に示すレスポンス管理テーブル600に記憶される。
【0078】
また、第1の算出部502は、性能DB#jごとに、エージェントAiの性能データの参照回数を算出する機能を有する。具体的には、例えば、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求に基づいて、性能DB#jごとに、エージェントAiの性能データの参照回数(以下、「参照回数Cj(i)」という)を算出する。
【0079】
より具体的には、例えば、まず、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求の集合の中からいずれかの参照要求を選択する。つぎに、第1の算出部502が、ルーティングテーブル110を参照して、選択した参照要求から、要求されている性能データの格納先DBを特定する。
【0080】
このあと、第1の算出部502が、特定した格納先DBについて、参照要求から特定されるエージェントAiの参照回数Cj(i)をインクリメントする。そして、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求の集合の中から選択されていない未選択の参照要求がなくなるまで、上述した処理を繰り返す。これにより、性能DB#jごとのエージェントAiの参照回数Cj(i)を算出することができる。
【0081】
算出されたエージェントAiの参照回数Cj(i)は、例えば、図6に示すレスポンス管理テーブル600に記憶される。レスポンス管理テーブル600は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、レスポンス管理テーブル600の記憶内容について説明する。
【0082】
図6は、レスポンス管理テーブルの記憶内容の一例を示す説明図である。図6において、レスポンス管理テーブル600は、格納先DB、エージェント名、参照回数および平均レスポンス時間のフィールドを有し、各フィールドに情報を設定することで、性能DB#1〜#3のレスポンス管理情報600−1〜600−3が記憶されている。
【0083】
ここで、格納先DBは、性能DB#jの識別子である。エージェント名は、監視対象となるサーバSViに導入されているエージェントAiの識別子である。参照回数は、エージェントAiの性能データが参照された回数である。平均レスポンス時間は、性能DB#jの平均レスポンス時間Tjである(例えば、単位は[sec])。
【0084】
レスポンス管理情報600−1を例に挙げると、性能DB#1に格納されている、各エージェントA1〜A5の性能データの参照回数C1(1)〜C1(5)が示されている。また、性能DB#1の平均レスポンス時間T1が示されている。
【0085】
図5の説明に戻り、検出部503は、性能DB#1〜#mの中から、平均レスポンス時間Tjが発動基準値α以上となる性能DB#jを検出する機能を有する。ここで、発動基準値αは、例えば、平均レスポンス時間Tjが発動基準値α以上となると、利用者に対して要求されているサービス品質を維持できなくなる値に設定される。
【0086】
すなわち、検出部503は、利用者からのアクセスが集中して、要求されている性能データが性能DB#jから返ってくるまでのレスポンス時間が、利用者に対するサービス品質を維持できない程度に長くなっている性能DB#jを検出する。
【0087】
具体的には、例えば、検出部503が、図6に示したレスポンス管理テーブル600を参照して、平均レスポンス時間Tjが発動基準値α以上となる性能DB#jを検出する。なお、発動基準値αは、例えば、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
【0088】
また、検出部503は、平均レスポンス時間が発動基準値α以上となる性能DBが複数存在する場合、平均レスポンス時間Tjが最大の性能DB#jを検出することにしてもよい。これにより、性能DB#1〜#mの中から、利用者から頻繁に参照される性能データが偏って格納され、最もアクセスが集中している可能性が高い性能DB#jを検出することができる。
【0089】
一例として、レスポンス管理テーブル600内の性能DB#1〜#3の平均レスポンス時間T1〜T3(単位:sec)を『T1=3.5』、『T2=0.15』および『T3=1.8』とし、発動基準値α(単位:sec)を「α=3.0」とする。この場合、検出部503が、性能DB#1〜#3の中から、平均レスポンス時間T1が発動基準値α以上となる性能DB#1を検出する。
【0090】
以下の説明では、検出された平均レスポンス時間Tjが発動基準値α以上となる性能DB#jを「第1の性能DB」という。
【0091】
また、検出部503は、性能DB#1〜#mの中から、平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを検出する機能を有する。ここで、抑制基準値βは、少なくとも発動基準値αよりも小さい値であり、例えば、平均レスポンス時間Tjが抑制基準値β未満の場合、性能データの参照要求に対する性能DB#jの応答性能が良いと判断できる値に設定される。
【0092】
すなわち、検出部503は、要求されている性能データが性能DB#jから返ってくるまでのレスポンス時間の長さが、利用者に対するサービス品質を十分に維持できている性能DB#jを検出する。
【0093】
具体的には、例えば、第1の性能DBが検出された場合、検出部503が、レスポンス管理テーブル600を参照して、平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを検出する。なお、抑制基準値βは、例えば、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
【0094】
一例として、レスポンス管理テーブル600内の性能DB#1〜#3の平均レスポンス時間T1〜T3を『T1=3.5』、『T2=0.15』および『T3=1.8』とし、抑制基準値βを「β=1.0」とする。この場合、検出部503が、性能DB#1〜#3の中から、平均レスポンス時間T2が抑制基準値β未満となる性能DB#2を検出する。
【0095】
また、検出部503は、平均レスポンス時間Tjが抑制基準値β未満となる性能DBが複数存在する場合、平均レスポンス時間Tjが最小の性能DB#jを検出することにしてもよい。これにより、性能DB#1〜#mの中から、利用者からの参照要求に対する応答性能が最も高い性能DB#jを検出することができる。
【0096】
以下の説明では、検出された平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを「第2の性能DB」という。
【0097】
選択部504は、検出された第1の性能DBが書込先に設定されている少なくともいずれかのエージェントAiを選択する機能を有する。すなわち、選択部504は、第1の性能DBを格納先DBとするエージェント群の中から、格納先DBの変更対象となるエージェントAiを選択する。
【0098】
具体的には、例えば、選択部504が、第1の性能DBが書込先に設定されている各々のエージェントAiの性能データが第1の性能DBの中から読み出される頻度に基づいて、格納先DBの変更対象となるエージェントAiを選択することにしてもよい。第1の性能DBの中から読み出される頻度として、例えば、所定期間X内にエージェントAiの性能データが参照された参照回数を用いることができる。
【0099】
より具体的には、例えば、まず、選択部504が、ルーティングテーブル110内の最新のルーティング情報を参照して、第1の性能DBが格納先DBとして設定されているエージェント名を特定する。なお、最新のルーティング情報とは、ルーティングテーブル110内の格納開始日時が最新のルーティング情報(例えば、ルーティング情報400−1)である。
【0100】
そして、選択部504が、レスポンス管理テーブル600内の第1の性能DBに対応するレスポンス管理情報を参照して、第1の性能DBが格納先DBとして設定されているエージェント群の中から参照回数が最大のエージェント名を選択する。
【0101】
一例として、第1の性能DBを性能DB#1とすると、まず、選択部504が、ルーティングテーブル110内のルーティング情報400−1を参照して、性能DB#1が格納先DBとして設定されているエージェント名「A1,A2,A4」を特定する。そして、選択部504が、レスポンス管理テーブル600内のレスポンス管理情報600−1を参照して、エージェント名「A1,A2,A4」のうち参照回数が最大のエージェント名を選択する。例えば、参照回数C1(1),C1(2),C(4)のうち最大の参照回数を「参照回数C1(2)」とする。この場合、選択部504が、エージェント名「A1,A2,A4」のうち参照回数が最大のエージェント名「A2」を選択する。
【0102】
これにより、格納先DBの変更対象となるエージェントAiとして、第1の性能DBを格納先DBとするエージェント群の中から性能データの参照回数が最大のエージェントを選択することができる。
【0103】
なお、第1の性能DBを格納先DBとするエージェント群の中から、格納先DBの変更対象となるエージェントAiを選択する他の選択例については、図8および図9を用いて後述する。
【0104】
変更部505は、第1の性能DBが書込先に設定されているエージェント群のうち、選択されたエージェントAiの性能データの書込先を、検出された第2の性能DBに変更する機能を有する。具体的には、例えば、変更部505が、ルーティングテーブル110に設定されている、エージェントAiの格納先DBを、第1の性能DBから第2の性能DBに変更する。ここで、ルーティングテーブル110の更新例について説明する。
【0105】
図7は、ルーティングテーブルの記憶内容の更新例を示す説明図である。図7に示す(7−1)は、更新前のルーティングテーブル110の記憶内容である。ここで、第1の性能DBを「性能DB#1」とし、第2の性能DBを「性能DB#2」とする。また、格納先DBとして性能DB#1が設定されているエージェントA1,A2,A4のうち、格納先DBの変更対象となるエージェントAiを「エージェントA2」とする。
【0106】
図7に示す(7−2)は、更新後のルーティングテーブル110の記憶内容である。ここでは、エージェントA2の性能データの格納先DBが性能DB#1から性能DB#2に変更された結果、ルーティングテーブル110に新たなルーティング情報700−1が記憶されている。
【0107】
具体的には、まず、エージェントA2の性能データの格納先DBの変更に伴って、ルーティング情報400−1の格納終了日時フィールドに「2011/12/25 11:59:59」が設定されている。
【0108】
そして、新たなルーティング情報700−1の格納開始日時フィールドに「2011/12/25 12:00:00」が設定され、格納先DBの変更対象のエージェントA2に対応する格納先DBフィールドに「#2」が設定されている。また、エージェントA2とは異なるエージェントA1,A3,A4,A5に対応する格納先DBフィールドに、ルーティング情報400−1と同一の情報が設定されている。
【0109】
この結果、以降において、周期的に収集されて性能DB#1に書き込まれていたエージェントA2の性能データが性能DB#2に書き込まれることになる。これにより、利用者からの参照要求が偏ってアクセス集中している性能DB#1の応答時間の増大化を抑制することができる。
【0110】
また、第2の性能DBとして平均レスポンス時間Tjが抑制基準値β未満となる性能DB#2を検出することで、利用者からの参照要求が性能DB群で平準化されるように、各エージェントAiの性能データの格納先DBを分散することができる。これにより、1性能DB当たりの参照要求数の偏りを抑えて、データベース資源を効率的に利用することができる。
【0111】
(格納先DBの変更対象となるエージェントAiの選択例)
つぎに、第1の性能DBを格納先DBとするエージェント群の中から、格納先DBの変更対象となるエージェントAiを選択する他の選択例について説明する。ここで、同時に参照される頻度が高い複数のエージェントの各々の性能データは、並列に読出処理を行えるなどの観点から、それぞれ異なる性能DBに格納されているほうが応答性能の向上を図ることができる。
【0112】
そこで、以下の説明では、同時に参照される頻度が高い複数のエージェントの各々の性能データの書込先が、できるだけ異なる性能DBとなるように、格納先DBの変更対象となるエージェントAiを選択する場合について説明する。
【0113】
まず、第2の算出部506は、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される頻度を算出する。具体的には、例えば、まず、第2の算出部506が、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照された回数を計数する。
【0114】
以下、図8に示す同時参照回数管理テーブル800を用いて、互いに異なるエージェントの性能データが同時に参照された回数(以下、「同時参照回数」という)を計数する具体的な処理内容について説明する。同時参照回数管理テーブル800は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
【0115】
図8は、同時参照回数管理テーブルの記憶内容の一例を示す説明図である。図8において、同時参照回数管理テーブル800は、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照された同時参照回数を記憶するテーブルである。なお、初期状態では、同時参照回数管理テーブル800内の同時参照回数の各値は「0」である。
【0116】
具体的には、例えば、まず、第2の算出部506が、所定期間X内に受け付けられた性能データの参照要求の集合の中から、第1の性能DBに格納されている性能データを参照するいずれかの参照要求を選択する。
【0117】
ここで、選択された参照要求にエージェント名「A1,A2」が含まれている場合を想定する。この場合、第2の算出部506が、同時参照回数管理テーブル800内のA1行A1列、A1行A2列、A2行A1列およびA2行A2列の各値をインクリメントする(図8(8−2)参照)。
【0118】
また、選択された参照要求にエージェント名「A1,A3,A5」が含まれている場合を想定する。この場合、第2の算出部506が、同時参照回数管理テーブル800内のA1行A1列、A1行A3列、A1行A5列、A3行A1列、A3行A3列、A3行A5列、A5行A1列、A5行A3列およびA5行A5列の各値をインクリメントする(図8(8−3)参照)。
【0119】
なお、選択された参照要求にエージェント名「A1」のみが含まれている場合は、第2の算出部506が、同時参照回数管理テーブル800内のA1行A1列の値をインクリメントする。
【0120】
そして、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求の集合の中から、第1の性能DBに格納されている性能データを参照する参照要求がなくなるまで、上述した処理を繰り返す。
【0121】
このように、所定期間X内に受け付けられた参照要求に含まれるエージェント名の組合せに対応する同時参照回数管理テーブル800内の各値をインクリメントしていくことで、互いに異なるエージェントの性能データが同時に参照された同時参照回数を計数できる。例えば、図8に示す(8−3)において、所定期間X内に第1の性能DBに格納されているエージェントA1の性能データが参照された回数は「52回」であり、そのうち、エージェントA2の性能データと同時に参照された回数は「21回」である。
【0122】
なお、上述した説明では、第1の性能DBについてのみ同時参照回数管理テーブル800を作成することにしたが、これに限らない。具体的には、例えば、性能DB#1〜#mの各々の性能DB#jについて同時参照回数管理テーブル800を用意し、利用者からの性能データの参照要求を受け付けた際に、その都度、各々の同時参照回数管理テーブル800の記憶内容を更新することにしてもよい。
【0123】
つぎに、第2の算出部506が、同時参照回数管理テーブル800を参照して、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される頻度を算出する。具体的には、例えば、第2の算出部506が、下記式(1)を用いて、各ペアに含まれるエージェントの性能データが同時に参照される頻度(以下、「同時参照率」という)を求めることができる。
【0124】
ただし、Rpqは、互いに異なるエージェントApとエージェントAqの各々の性能データが同時に参照される同時参照率である(p=1,2,…,n、q=1,2,…,n、p≠q)。Cpqは、エージェントApとエージェントAqの各々の性能データが同時に参照された同時参照回数である。Cpは、エージェントApの性能データが参照された参照回数である。Cqは、エージェントAqの性能データが参照された参照回数である。
【0125】
Rpq={(Cpq×2)/(Cp+Cq)}×100 ・・・(1)
【0126】
なお、Cpqは、例えば、同時参照回数管理テーブル800内のp行q列(または、q行p列)の値である。Cpは、例えば、同時参照回数管理テーブル800内のp行p列の値である。Cqは、例えば、同時参照回数管理テーブル800内のq行q列の値である。
【0127】
一例として、エージェントA1とエージェントA2の各々の性能データが同時に参照される同時参照率R12を求める場合を説明する。ここでは、同時参照回数管理テーブル800内のA1行A1列の値を「50」、A1行A2列の値を「20」、A2行A1列の値を「20」、A2行A2列の値を「30」とする(図8(8−1)参照)。この場合、エージェントA1とエージェントA2の各々の性能データが同時に参照される同時参照率R12は、「R12={(20×2)/(50+30)}×100=50[%]」となる。
【0128】
なお、同時参照率Rpqの算出方法は、上述したものに限らない。具体的には、例えば、第2の算出部506が、第1の性能DBに対して行われた参照要求の総数に対するエージェントApとエージェントAqの各々の性能データが同時に参照された同時参照回数Cpqの割合を同時参照率Rpqとして算出することにしてもよい。
【0129】
算出された同時参照率Rpqは、例えば、図9に示す同時参照率管理テーブル900に記憶される。同時参照率管理テーブル900は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、同時参照率管理テーブル900の記憶内容について説明する。
【0130】
図9は、同時参照率管理テーブルの記憶内容の一例を示す説明図である。図9において、同時参照率管理テーブル900は、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される同時参照率を記憶するテーブルである。
【0131】
例えば、同時参照率R12は、第1の性能DBに格納されているエージェントA1の性能データが参照される際に、エージェントA2の性能データが同時に参照される割合を表している。なお、同時参照率管理テーブル900において、同時参照率Rpqと同時参照率Rqpは同じ値となる。
【0132】
特定部507は、第1の性能DBについて、互いに異なるエージェントのペア群の中から、同時参照率が所定の閾値γ以上となるペアを特定する。具体的には、例えば、特定部507が、同時参照率管理テーブル900を参照して、同時参照率が閾値γ以上となるペアを特定する。
【0133】
閾値γは、例えば、サーバSV1〜SVnの台数や性能DB#1〜#mの台数に合わせて予め設定されている(例えば、γ=50[%])。また、閾値γは、例えば、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
【0134】
ここで、同時参照率管理テーブル900内の同時参照率R12,R13,R45が閾値γ以上の場合を想定する。この場合、エージェントA1とエージェントA2のペアP1、エージェントA1とエージェントA3のペアP2、およびエージェントA4とエージェントA5のペアP3が特定される。
【0135】
選択部504は、特定された同時参照率が閾値γ以上となるペア群の中からいずれかのペアを選択する。具体的には、例えば、選択部504が、各ペアに含まれる各々のエージェントの性能データの参照回数の総和が最大のペアを選択することにしてもよい。なお、各々のエージェントの性能データの参照回数は、例えば、図6に示したレスポンス管理テーブル600から特定される。
【0136】
そして、選択部504は、選択したペアに含まれる少なくともいずれかのエージェントAiを選択する。具体的には、例えば、選択部504が、選択したペアに含まれる2つのエージェントのうち、性能データの参照回数が最大のエージェントを選択することにしてもよい。
【0137】
これにより、格納先DBの変更対象となるエージェントAiとして、同時に参照される頻度が最大のペアに含まれるいずれかのエージェントAiを選択することができる。この結果、同時に参照される頻度が高い2つのエージェントの性能データがそれぞれ異なる性能DBに格納されることになり、性能DBの応答性能の向上を図ることができる。
【0138】
また、格納先DBの変更対象となるエージェントAiとして、同時に参照される頻度が最大のペアに含まれる参照回数が最大のエージェントを選択することにより、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0139】
なお、同時に参照される頻度が最大のペアに含まれるエージェントの性能データの格納先DBとして第1の性能DBが設定されていない場合がある。そこで、エージェントA1〜Anのうち、第1の性能DBが格納先DBに設定されているエージェントのペアだけを同時参照率の算出対象とすることにしてもよい。
【0140】
具体的には、例えば、第2の算出部506が、格納先DBとして第1の性能DBが設定されているエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される同時参照率を算出する。これにより、格納先DBの変更対象となるエージェントAiとして、第1の性能DBが格納先DBに設定されているエージェントのペアのうち、同時に参照される頻度が最大のペアに含まれるいずれかのエージェントAiを選択することができる。
【0141】
また、同時に参照される頻度が最大のペアに含まれる一方のエージェントの性能データの格納先DBとして第1の性能DBが設定され、他方のエージェントの性能データの格納先DBとして第1の性能DBが設定されていない場合がある。この場合、選択部504が、ペアに含まれる2つのエージェントのうち、第1の性能DBが格納先DBとして設定されているエージェントを選択することにしてもよい。
【0142】
(第2の性能DBが複数検出された場合の処理例)
つぎに、平均レスポンス時間が抑制基準値β未満となる第2の性能DBが複数検出された場合の処理例について説明する。以下、検出された複数の第2の性能DBを「第2の性能DB$1〜$K」と表記し、第2の性能DB$1〜$Kのうち任意の第2の性能DBを「性能DB$k」と表記する(k=1,2,…,K)。
【0143】
まず、特定部507は、第1の性能DBについて、同時参照率管理テーブル900を参照して、同時参照率が閾値γ以上となるペアを特定する。ここで、同時参照率管理テーブル900内の同時参照率R12,R13,R45が閾値γ以上の場合を想定する。この場合、エージェントA1とエージェントA2のペアP1、エージェントA1とエージェントA3のペアP2、およびエージェントA4とエージェントA5のペアP3が特定される。
【0144】
つぎに、特定部507は、同時参照率が閾値γ以上となるペアを分類することにより、複数の異なるエージェントを含むグループを作成する。具体的には、例えば、特定部507が、同一のエージェントを含むペア同士を集約することにより、複数の異なるエージェントを含むグループを作成する。
【0145】
上述したペアP1〜P3の例では、ペアP1とペアP2とは、同一のエージェントA1を含む。このため、特定部507が、ペアP1とペアP2とを集約することにより、エージェントA1とエージェントA2とエージェントA3とを含むグループG1を作成する。また、特定部507が、エージェントA4とエージェントA5のペアP3をグループG2とする。
【0146】
以下、作成されたグループを「グループG1〜GS」と表記し、グループG1〜GSのうち任意のグループを「グループGs」と表記する(s=1,2,…,S)。
【0147】
特定部507は、作成したグループGsに含まれるエージェント数が閾値δ以上となるか否かを判断する。閾値δは、例えば、予め設定されてROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている(例えば、δ=5)。
【0148】
特定部507は、グループGsに含まれるエージェント数が閾値δ以上となる場合、グループGsの中からいずれかのエージェントを除外する。具体的には、例えば、特定部507が、レスポンス管理テーブル600の第1の性能DBのレスポンス管理情報を参照して、グループに含まれるエージェント群のうち参照回数が最小のエージェントを除外することにしてもよい。
【0149】
これにより、グループGs内のエージェント数が一定数以上とならないように制限することができ、エージェントの格納先DBが必要以上に分散されて、第1の性能DBが格納先DBに設定されているエージェント数が少なくなってしまうことを防ぐことができる。
【0150】
特定部507は、作成したグループG1〜GSの中から少なくともいずれかのグループGsを選択する。具体的には、例えば、特定部507が、グループG1〜GSの中から、各グループに含まれるエージェント群の各々の参照回数を足し合わせた総参照回数が最大のグループGsを選択する。
【0151】
各グループの総参照回数は、例えば、レスポンス管理テーブル600の第1の性能DBのレスポンス管理情報を参照して求めることができる。例えば、第1の性能DBを「性能DB#1」とすると、グループG1の総参照回数は、エージェントA1の参照回数C1(1)とエージェントA2の参照回数C1(2)とエージェントA3の参照回数C1(3)とを足し合わせた値となる。また、グループG2の総参照回数は、エージェントA4の参照回数C1(4)とエージェントA5の参照回数C1(5)とを足し合わせた値となる。
【0152】
以下の説明では、グループGsに含まれるエージェント群を「エージェントA[1]〜A[F]」と表記し、エージェントA[1]〜A[F]のうち任意のエージェントを「エージェントA[f]」と表記する(F:1以上の自然数、f=1,2,…,F)。
【0153】
選択部504は、グループGsに含まれるエージェントA[1]〜A[F]の中からいずれかのエージェントA[f]を選択する。具体的には、例えば、選択部504が、レスポンス管理テーブル600の第1の性能DBのレスポンス管理情報を参照して、エージェントA[1]〜A[F]の中から参照回数が最大のエージェントA[f]を選択することにしてもよい。
【0154】
また、選択部504は、第2の性能DB$1〜$Kの中からいずれかの第2の性能DB$kを選択する。具体的には、例えば、選択部504が、レスポンス管理テーブル600を参照して、第2の性能DB$1〜$Kの中から平均レスポンス時間が最小の性能DB$kを選択することにしてもよい。
【0155】
変更部505は、第1の性能DBが書込先に設定されているエージェント群のうち選択されたエージェントA[f]の性能データの書込先を、選択された第2の性能DB$kに変更する。具体的には、例えば、変更部505が、ルーティングテーブル110に設定されているエージェントA[f]の格納先DBを第2の性能DB$kに変更する。
【0156】
上記選択部504のエージェントA[f]を選択する処理は、例えば、エージェントA[1]〜A[F]の中から選択されていない未選択のエージェントがなくなるまで繰り返し行われる。
【0157】
また、上記選択部504の第2の性能DB$kを選択する処理は、エージェントA[f]が選択されると、その都度行われる。この際、選択部504が、第2の性能DB$1〜$Kのうち選択されていない未選択のものの中から、平均レスポンス時間が最小の性能DB$kを選択することにしてもよい。
【0158】
なお、第2の性能DB$1〜$Kのうち未選択の性能DB$kがない場合は、選択部504が、再度、平均レスポンス時間が最小の性能DB$kを順次選択することにしてもよい。ここで、変更対象となるエージェントA[f]の格納先DBの変更例について説明する。
【0159】
図10は、エージェントの格納先DBの変更例を示す説明図である。図10において、グループGsに含まれるエージェントA[1]〜A[F]は、エージェントA1,A2,A3である。各エージェントA1〜A3の性能データの格納先DBは、第1の性能DBである性能DB#2とする。
【0160】
また、第2の性能DB$1〜$Kは、性能DB#1,#4,#5である。性能DB#1の平均レスポンス時間T1は、150[msec]である。性能DB#4の平均レスポンス時間T4は、100[msec]である。性能DB#5の平均レスポンス時間T5は、200[msec]である。
【0161】
この場合、まず、選択部504が、グループGsの中から参照回数が最大のエージェントA3を選択する。つぎに、選択部504が、性能DB#1,#4,#5の中から平均レスポンス時間が最小の性能DB#4を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA3の格納先DBを性能DB#4に変更する。
【0162】
つぎに、選択部504が、グループGsの中から参照回数が2番目に大きいエージェントA1を選択する。このあと、選択部504が、性能DB#1,#4,#5の中から平均レスポンス時間が2番目に小さい性能DB#1を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA1の格納先DBを性能DB#1に変更する。
【0163】
つぎに、選択部504が、グループGsの中から参照回数が最小のエージェントA2を選択する。このあと、選択部504が、性能DB#1,#4,#5の中から平均レスポンス時間が最大の性能DB#5を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA2の格納先DBを性能DB#5に変更する。
【0164】
このように、グループGsの中から参照回数が最大のエージェントA[f]を順次選択して、格納先DBを平均レスポンス時間が最小の性能DB$kに変更することで、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0165】
なお、グループGsに含まれるエージェントA[f]の性能データの格納先DBとして第1の性能DBが設定されていない場合がある。そこで、上述したように、第2の算出部506が、格納先DBとして第1の性能DBが設定されているエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される同時参照率を算出することにしてもよい。
【0166】
また、格納先DBの変更対象として、選択部504が、例えば、グループGsの中から、少なくとも第1の性能DBが格納先DBとして設定されているエージェントA[f]を選択することにしてもよい。この場合、選択部504が、第2の性能DB$1〜$Kのうち、グループGsに含まれるエージェントの性能データの格納先DBとして設定されている性能DBを除く残余の性能DBの中から第2の性能DB$kを選択することにしてもよい。
【0167】
一例として、図10の例において、グループGsに含まれるエージェントA1〜A3のうちエージェントA1の性能データの格納先DBとして第1の性能DBが設定されているとする。また、エージェントA2の性能データの格納先DBとして性能DB#4が設定され、エージェントA3の性能データの格納先DBとして性能DB#3が設定されているとする。
【0168】
この場合、まず、選択部504が、グループGsに含まれるエージェントA1〜A3の中からエージェントA1を選択する。つぎに、選択部504が、性能DB#1,#4,#5のうち、エージェントA2の性能データの格納先DBとして設定されている性能DB#4を除く残余の性能DB#1,#5の中から、平均レスポンス時間が最小の性能DB#1を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA1の格納先DBを性能DB#1に変更する。
【0169】
(データアクセス制御装置100のデータ制御処理手順)
つぎに、実施の形態2にかかるデータアクセス制御装置100のデータ制御処理手順について説明する。データアクセス制御装置100のデータ制御処理は、例えば、一定時間x経過すると、その都度繰り返し実行が開始される(例えば、毎時59分59秒)。
【0170】
図11は、実施の形態2にかかるデータアクセス制御装置のデータ制御処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、第1の算出部502により、レスポンス管理テーブル600の記憶内容を更新するアクセス状況更新処理を実行する(ステップS1101)。
【0171】
つぎに、検出部503により、レスポンス管理テーブル600を参照して、性能DB#1〜#mの平均レスポンス時間T1〜Tmの中から最大の平均レスポンス時間Tjを特定する(ステップS1102)。そして、検出部503により、特定した平均レスポンス時間Tjが発動基準値α以上となるか否かを判断する(ステップS1103)。
【0172】
ここで、平均レスポンス時間Tjが発動基準値αの場合(ステップS1103:Yes)、検出部503により、第1の性能DBとして性能DB#jを検出する(ステップS1104)。そして、第2の算出部506により、互いに異なるエージェントのペアごとの同時参照率を算出する同時参照率算出処理を実行する(ステップS1105)。
【0173】
つぎに、特定部507により、格納先DBの変更対象となるグループGsを選択するグループ選択処理を実行する(ステップS1106)。そして、変更部505により、グループGsに含まれるエージェントAiの性能データの格納先DBを変更するルーティング処理を実行する(ステップS1107)。
【0174】
最後に、データアクセス制御装置100により、各種テーブル600,800,900を初期化して(ステップS1108)、本フローチャートによる一連の処理を終了する。
【0175】
また、ステップS1103において、平均レスポンス時間Tjが発動基準値α未満の場合(ステップS1103:No)、本フローチャートによる一連の処理を終了する。
【0176】
これにより、ルーティングテーブル110に第1の性能DBが書込先に設定されているエージェントAiの性能データの格納先DBを第2の性能DBに変更することができる。
【0177】
<アクセス状況更新処理の具体的処理手順>
つぎに、図11に示したステップS1101のアクセス状況更新処理の具体的な処理手順について説明する。
【0178】
図12は、アクセス状況更新処理の具体的処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、取得部501により、性能データの参照要求および性能データの参照要求に対するレスポンス時間の計測結果を取得する(ステップS1201)。
【0179】
なお、性能データの参照要求は、現時点から一定時間x遡った時点から現時点までの所定期間X内にクライアント端末201から受け付けられた参照要求である。また、レスポンス時間の計測結果は、所定期間X内に受け付けられたエージェントAiの性能データの参照要求に対する性能DB#jごとのレスポンス時間の計測結果である。
【0180】
つぎに、第1の算出部502により、性能DB#jの「j」を「j=1」として(ステップS1202)、性能DB#1〜#mの中から性能DB#jを選択する(ステップS1203)。そして、第1の算出部502により、取得された所定期間X内の性能DB#jのレスポンス時間の計測結果に基づいて、性能DB#jの平均レスポンス時間Tjを算出する(ステップS1204)。
【0181】
そして、第1の算出部502により、算出した性能DB#jの平均レスポンス時間Tjをレスポンス管理テーブル600に登録する(ステップS1205)。このあと、第1の算出部502により、性能DB#jの「j」をインクリメントして(ステップS1206)、「j」が「m」より大きくなったか否かを判断する(ステップS1207)。
【0182】
ここで、「j」が「m」以下の場合(ステップS1207:No)、ステップS1203に戻る。一方、「j」が「m」より大きくなった場合(ステップS1207:Yes)、第1の算出部502により、取得された所定期間X内の性能データの参照要求の集合の中からいずれかの参照要求を選択する(ステップS1208)。
【0183】
つぎに、第1の算出部502により、ルーティングテーブル110を参照して、選択した参照要求から、要求されているエージェントAiの性能データの格納先DBを特定する(ステップS1209)。そして、第1の算出部502により、レスポンス管理テーブル600内の特定した格納先DBについて、エージェントAiの参照回数Cj(i)をインクリメントする(ステップS1210)。
【0184】
このあと、第1の算出部502により、所定期間X内の性能データの参照要求の集合の中から選択されていない未選択の参照要求があるか否かを判断する(ステップS1211)。ここで、未選択の参照要求がある場合(ステップS1211:Yes)、ステップS1208に戻る。一方、未選択の参照要求がない場合(ステップS1211:No)、図11に示したステップS1102に移行する。
【0185】
これにより、各性能DB#jについて、各エージェントAiの参照回数Cj(i)および平均レスポンス時間Tjを更新することができる。
【0186】
<同時参照率算出処理の具体的処理手順>
つぎに、図11に示したステップS1105の同時参照率算出処理の具体的な処理手順について説明する。
【0187】
図13は、同時参照率算出処理の具体的処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、第2の算出部506により、取得された所定期間X内の性能データの参照要求の集合の中からいずれかの参照要求を選択する(ステップS1301)。
【0188】
つぎに、第2の算出部506により、選択した参照要求から特定される格納先DBが第1の性能DBか否かを判断する(ステップS1302)。ここで、格納先DBが第1の性能DBではない場合(ステップS1302:No)、ステップS1304に移行する。
【0189】
一方、格納先DBが第1の性能DBの場合(ステップS1302:Yes)、第2の算出部506により、選択した参照要求に含まれるエージェント名に応じて、同時参照回数管理テーブル800の記憶内容を更新する(ステップS1303)。
【0190】
そして、第2の算出部506により、所定期間X内の性能データの参照要求の集合の中から選択されていない未選択の参照要求があるか否かを判断する(ステップS1304)。ここで、未選択の参照要求がある場合(ステップS1304:Yes)、ステップS1301に戻る。
【0191】
一方、未選択の参照要求がない場合(ステップS1304:No)、第2の算出部506により、互いに異なるエージェントApとエージェントAqのペアを選択する(ステップS1305)。そして、第2の算出部506により、同時参照回数管理テーブル800を参照して、上記式(1)を用いて、選択したペアの同時参照率Rpqを算出する(ステップS1306)。
【0192】
つぎに、第2の算出部506により、算出したペアの同時参照率Rpqおよび同時参照率Rqp(Rpq=Rqp)を同時参照率管理テーブル900に登録する(ステップS1307)。そして、第2の算出部506により、互いに異なるエージェントApとエージェントAqについて、選択されていない未選択のペアがあるか否かを判断する(ステップS1308)。
【0193】
ここで、未選択のペアがある場合(ステップS1308:Yes)、ステップS1305に戻る。一方、未選択のペアがない場合(ステップS1308:No)、図11に示したステップS1106に移行する。
【0194】
これにより、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれる2つのエージェントの性能データが同時に参照される頻度を算出することができる。
【0195】
<グループ選択処理の具体的処理手順>
つぎに、図11に示したステップS1106のグループ選択処理の具体的な処理手順について説明する。
【0196】
図14は、グループ選択処理の具体的処理手順の一例を示すフローチャートである。図14のフローチャートにおいて、まず、特定部507により、第1の性能DBについて、同時参照率管理テーブル900を参照して、同時参照率が閾値γ以上となるエージェントのペアをグループとして特定する(ステップS1401)。
【0197】
つぎに、特定部507により、複数のグループに含まれるエージェントAiがあるか否かを判断する(ステップS1402)。ここで、複数のグループに含まれるエージェントAiがある場合(ステップS1402:Yes)、同一のエージェントAiを含むグループ同士を集約して新たなグループを作成して(ステップS1403)、ステップS1402に戻る。
【0198】
以下、作成されたグループを「グループG1〜GS」と表記し、グループG1〜GSのうち任意のグループを「グループGs」と表記する(s=1,2,…,S)。
【0199】
また、ステップS1402において、複数のグループに含まれるエージェントAiがない場合(ステップS1402:No)、特定部507により、グループGsの「s」を「s=1」とする(ステップS1404)。
【0200】
そして、特定部507により、グループG1〜GSの中からグループGsを選択する(ステップS1405)。つぎに、特定部507により、選択したグループGsに含まれるエージェント数が閾値δ以上となるか否かを判断する(ステップS1406)。
【0201】
ここで、エージェント数が閾値δ以上の場合(ステップS1406:Yes)、特定部507により、レスポンス管理テーブル600を参照して、グループGsに含まれるエージェント群のうち参照回数が最小のエージェントを除外して(ステップS1407)、ステップS1406に戻る。
【0202】
一方、エージェント数が閾値δ未満の場合(ステップS1406:No)、特定部507により、レスポンス管理テーブル600を参照して、グループGsに含まれる各々のエージェントの参照回数を足し合わせた総参照回数TCsを算出する(ステップS1408)。
【0203】
そして、特定部507により、グループGsの「s」をインクリメントして(ステップS1409)、「s」が「S」より大きくなったか否かを判断する(ステップS1410)。ここで、「s」が「S」以内の場合(ステップS1410:No)、ステップS1405に戻る。
【0204】
一方、「s」が「S」より大きくなった場合(ステップS1410:Yes)、特定部507により、グループG1〜GSの中から総参照回数TCsが最大のグループGsを選択して(ステップS1411)、図11に示したステップS1107に移行する。
【0205】
これにより、同時参照率が閾値γ以上となるエージェントのペアを含むグループG1〜GSの中から総参照回数TCsが最大のグループGsを格納先DBの変更対象となるグループとして選択することができる。
【0206】
なお、上述した説明では、ステップS1411において、総参照回数TCsが最大のグループGsを選択することにしたが、これに限らない。例えば、特定部507により、グループG1〜GSの中から総参照回数が多い順に上位M個のグループを選択することにしてもよい(例えば、M=2,3)。
【0207】
<ルーティング処理の具体的処理手順>
つぎに、図11に示したステップS1107のルーティング処理の具体的な処理手順について説明する。
【0208】
図15は、ルーティング処理の具体的処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、検出部503により、レスポンス管理テーブル600を参照して、性能DB#1〜#mの中から平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを第2の性能DBとして検出する(ステップS1501)。以下、平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを「第2の性能DB$1〜$K」と表記する。
【0209】
そして、選択部504により、第2の性能DB$1〜$Kが検出されたか否かを判断する(ステップS1502)。ここで、第2の性能DB$1〜$Kが検出されなかった場合(ステップS1502:No)、本フローチャートによる一連の処理を終了する。すなわち、変更先となる応答性能が良い性能DB#jが存在しないため、データアクセス制御装置100のデータ制御処理を終了する。
【0210】
一方、第2の性能DB$1〜$Kが検出された場合(ステップS1502:Yes)、ステップS1503に移行する。そして、選択部504により、レスポンス管理テーブル600を参照して、特定されたグループGsに含まれるエージェントA[1]〜A[F]の中から、参照回数が最大のエージェントA[f]を選択する(ステップS1503)。
【0211】
つぎに、選択部504により、レスポンス管理テーブル600を参照して、第2の性能DB$1〜$Kの中から平均レスポンス時間が最小の性能DB$kを選択する(ステップS1504)。そして、変更部505により、ルーティングテーブル110に設定されているエージェントA[f]の格納先DBを第2の性能DB$kに変更する(ステップS1505)。
【0212】
具体的には、例えば、変更部505が、ルーティングテーブル110内にエージェントA[f]の格納先DBとして第2の性能DB$kが設定された新たなルーティング情報を作成する。なお、新たなルーティング情報の格納開始日時は、例えば、データ制御処理の開始日時から所定時間(例えば、1秒)経過した日時に設定される。
【0213】
つぎに、選択部504により、グループGsに含まれるエージェントA[1]〜A[F]の中から選択されていない未選択のエージェントA[f]があるか否かを判断する(ステップS1506)。ここで、未選択のエージェントA[f]がある場合(ステップS1506:Yes)、ステップS1503に戻る。
【0214】
一方、未選択のエージェントA[f]がない場合(ステップS1506:No)、ステップS1507に移行する。そして、変更部505により、エージェントA1〜Anのうち格納先DBが設定されていない残余のエージェントの格納先DBを新たなルーティング情報に設定して(ステップS1507)、図11に示したステップS1108に移行する。
【0215】
これにより、グループGsの中から参照回数が最大のエージェントA[f]を順次選択して、格納先DBを平均レスポンス時間が最小の性能DB$kに変更することができる。
【0216】
なお、図14に示したステップS1411において、複数のグループが選択された場合、複数のグループに含まれる各々のグループについて、上述したステップS1503〜S1506の処理を繰り返し実行することにしてもよい。
【0217】
以上説明したように、実施の形態2にかかるデータアクセス制御装置100によれば、ルーティングテーブル110に第1の性能DBが書込先に設定されているエージェントAiの性能データの格納先DBを第2の性能DBに変更することができる。これにより、以降において、周期的に収集されて第1の性能DBに書き込まれていたエージェントAiの性能データが第2の性能DBに書き込まれることになり、利用者からの参照要求が偏ってアクセス集中している第1の性能DBの応答時間の増大化を抑制できる。
【0218】
また、データアクセス制御装置100によれば、第2の性能DBとして平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを検出することができる。これにより、利用者からの参照要求数が性能DB#1〜#mの間で平準化されるように各エージェントAiの性能データの格納先DBを分散することができ、1性能DB当たりの参照要求数の偏りを抑えて、データベース資源を効率的に利用することができる。
【0219】
また、データアクセス制御装置100によれば、格納先DBの変更対象となるエージェントAiとして、第1の性能DBを格納先DBとするエージェント群の中から性能データの参照回数が最大のエージェントを選択することができる。これにより、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0220】
また、データアクセス制御装置100によれば、格納先DBの変更対象となるエージェントAiとして、互いに異なるエージェントのペア群のうち同時参照率が最大のペアに含まれるいずれかのエージェントAiを選択することができる。これにより、同時に参照される頻度が高い2つのエージェントの性能データがそれぞれ異なる性能DBに格納されることになり、利用者からの参照要求に対する性能DB#jの応答性能の向上を図ることができる。
【0221】
また、データアクセス制御装置100によれば、複数の第2の性能DB$1〜$Kが検出された場合、グループGsに含まれる各々のエージェントの格納先DBがそれぞれ異なるように格納先DBを変更することができる。これにより、第1の性能DBの応答時間の増大化を抑制するとともに、同時に参照される頻度が高い複数のエージェントの性能データをそれぞれ異なる性能DBに格納して、利用者からの参照要求に対する性能DB#jの応答性能の向上を図ることができる。
【0222】
また、データアクセス制御装置100によれば、複数の第2の性能DB$1〜$Kが検出された場合、グループGsの中から参照回数が最大のエージェントA[f]を順次選択して、格納先DBを平均レスポンス時間が最小の性能DB$kに変更することができる。これにより、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0223】
これらのことから、実施の形態2にかかる性能管理システム200によれば、1性能DB当たりの参照要求数の偏りによる利用者からの参照要求に対する性能DB#jの応答性能の低下を回避することができる。また、性能管理システム200によれば、多数の利用者からの性能データの参照要求を性能DB#1〜#mの間で効果的に分散することにより、データベース資源を効率的に利用することができ、運用コストを下げることができる。
【0224】
また、性能管理システム200によれば、発動基準値αおよび抑制基準値βの値を調整して、利用者に対するサービス品質のレベルを変えることができる。これにより、レベルが異なるシステムを複数用意して、それぞれ異なる課金料を設定することで、価格に応じたレベルのサービスを提供することができる。
【0225】
(実施の形態3)
つぎに、実施の形態3にかかる性能管理システム1600について説明する。実施の形態3では、データアクセス制御装置100とは異なるコンピュータが、各サーバSV1〜SVnの性能データの収集、書き込み、クライアント端末201からの参照要求の受付処理および参照要求に対するレスポンス時間の計測を行う場合について説明する。なお、実施の形態1,2で説明した箇所と同様の箇所については説明を省略する。
【0226】
図16は、実施の形態3にかかる性能管理システムのシステム構成例を示す説明図である。図16において、性能管理システム1600は、データアクセス制御装置100と、サーバSV1〜SVnと、複数のクライアント端末201と、管理サーバ1610と、を含む構成である。性能管理システム1600において、データアクセス制御装置100、サーバSV1〜SVn、複数のクライアント端末201および管理サーバ1610は、有線または無線のネットワーク210を介して接続されている。
【0227】
ここで、管理サーバ1610は、性能DB#1〜#mにアクセス可能であり、各サーバSV1〜SVnの性能データを周期的に収集する機能を有するコンピュータである。具体的には、例えば、管理サーバ1610は、各サーバSV1〜SVnに導入された各エージェントにより定期的に収集される性能データを各サーバSV1〜SVnから受信する。これにより、各サーバSV1〜SVnの性能データを周期的に収集することができる。
【0228】
また、管理サーバ1610は、各サーバSV1〜SVnから収集した性能データを性能DB#1〜#mに書き込む機能を有する。具体的には、例えば、管理サーバ1610は、各サーバSV1〜SVnから収集した性能データをルーティングテーブル110に設定されている書込先の性能DBに書き込む。
【0229】
また、管理サーバ1610は、クライアント端末201から性能データの参照要求を受け付けて処理する機能を有する。受け付けた参照要求は、例えば、管理サーバ1610の記憶装置に記憶される。
【0230】
具体的には、例えば、管理サーバ1610は、ルーティングテーブル110を参照して、受け付けた参照要求から特定される性能データの書込先の性能DBの中から該性能データを読み出す。そして、管理サーバ1610は、読み出した性能データを要求元のクライアント端末201に送信する。
【0231】
また、管理サーバ1610は、参照要求に対するレスポンス時間を計測する機能を有する。計測された計測結果は、例えば、管理サーバ1610の記憶装置に記憶される。
【0232】
サーバSV1〜SVnは、エージェントにより収集した性能データを管理サーバ1610に送信する機能を有する。具体的には、例えば、サーバSV1〜SVnは、性能データが収集されると、その都度、該性能データを管理サーバ1610に送信する。この結果、管理サーバ1610において、各サーバSV1〜SVnの性能データが周期的に収集される。
【0233】
クライアント端末201は、利用者の操作入力により、性能データの参照要求を受け付ける。そして、クライアント端末201は、受け付けた性能データの参照要求を管理サーバ1610に送信し、その結果、管理サーバ1610から性能データを受信してディスプレイに表示する。
【0234】
データアクセス制御装置100は、管理サーバ1610を制御して、周期的に収集される各サーバSV1〜SVnの性能データを性能DB#1〜#mに書き込ませる機能を有する。具体的には、例えば、データアクセス制御装置100の変更部505が、管理サーバ1610がアクセス可能なルーティングテーブル110に設定されている、エージェントAiの格納先DBを第1の性能DBから第2の性能DBに変更する。
【0235】
また、データアクセス制御装置100が、変更部505によって変更された変更結果を管理サーバ1610に送信することにしてもよい。この場合、管理サーバ1610が、データアクセス制御装置100から受信した変更結果に基づいて、ルーティングテーブル110に設定されている、エージェントAiの格納先DBを第1の性能DBから第2の性能DBに変更する。
【0236】
この結果、以降において、周期的に収集されて性能DB#1に書き込まれていたエージェントA2の性能データが性能DB#2に書き込まれることになる。これにより、利用者からの参照要求が偏ってアクセス集中している性能DB#1の応答時間の増大化を抑制することができる。
【0237】
実施の形態3によれば、サーバSV1〜SVnおよびクライアント端末201の窓口となる管理サーバ1610を設けることで、実施の形態2で説明した場合に比べて、データアクセス制御装置100の機能を簡単化するとともに処理負荷を軽減することができる。
【0238】
なお、本実施の形態で説明したデータ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【0239】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0240】
(付記1)第1のデータ及び第2のデータを記憶する第1の記憶装置と、前記第1のデータを記憶する第2の記憶装置と、を含むシステム内のコンピュータに、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする制御プログラム。
【0241】
(付記2)前記コンピュータに、
前記第1の記憶装置に対して実行されるアクセス処理の処理時間の計測を、さらに実行させ、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記計測により得られた処理時間が所定時間よりも長く、且つ前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする付記1に記載の制御プログラム。
【0242】
(付記3)収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【0243】
(付記4)前記コンピュータに、
前記データベース群の中から、前記応答時間の長さを表す値が、前記所定の閾値(以下、「第1の閾値」という)よりも小さい第2の閾値未満となる前記第2のデータベースを検出する処理を実行させ、
前記データの書込先を変更する処理は、
前記いずれかの監視対象の状態を特徴付けるデータの書込先を、検出された前記第2のデータベースに変更することを特徴とする付記3に記載の制御プログラム。
【0244】
(付記5)前記コンピュータに、
前記第1のデータベースが書込先に設定されている監視対象群の各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から読み出される頻度に基づいて、前記監視対照群の中からいずれかの監視対象を選択する処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする付記3または4に記載の制御プログラム。
【0245】
(付記6)前記いずれかの監視対象を選択する処理は、
前記監視対象群のうち前記第1のデータベースの中から読み出される前記頻度が最大の監視対象を選択し、
前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、選択された前記監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースのうち前記応答時間の長さを表す値が最小のデータベースに変更することを特徴とする付記5に記載の制御プログラム。
【0246】
(付記7)前記コンピュータに、
互いに異なる監視対象のペアごとに、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から同時に読み出される頻度を算出し、
前記第1のデータベースの中から同時に読み出される前記ペアごとの頻度に基づいて、当該頻度が第3の閾値以上となるペアを特定し、
特定した前記ペアに含まれる少なくともいずれかの監視対象を選択する、処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする付記3または4に記載の制御プログラム。
【0247】
(付記8)前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、特定された前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先がそれぞれ異なるように、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースに変更することを特徴とする付記7に記載の制御プログラム。
【0248】
(付記9)前記コンピュータに、
前記応答時間の長さを表す値として、前記データベース群の各々のデータベースに格納されているデータの読出要求に対する応答時間に基づいて、前記各々のデータベースの応答時間の平均値を算出する処理を実行させ、
前記第1のデータベースを検出する処理は、
前記データベース群の中から、算出された前記応答時間の長さを表す値が前記第1の閾値以上となる前記第1のデータベースを検出することを特徴とする付記3〜8のいずれか一つに記載の制御プログラム。
【0249】
(付記10)前記第1のデータベースを検出する処理は、
前記応答時間の長さを表す値が前記第1の閾値以上となるデータベースが複数存在する場合、前記データベース群の中から、前記応答時間の長さを表す値が最大の前記第1のデータベースを検出することを特徴とする付記3〜9のいずれか一つに記載の制御プログラム。
【0250】
(付記11)前記コンピュータに、
前記いずれかの監視対象の状態を特徴付けるデータの書込先が前記第2のデータベースに変更された後、前記いずれかの監視対象の状態を特徴付けるデータを取得し、
取得した前記いずれかの監視対象の状態を特徴付けるデータを前記第2のデータベースに書き込む、
処理を実行させることを特徴とする付記3〜10のいずれか一つに記載の制御プログラム。
【0251】
(付記12)各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【0252】
(付記13)各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込む書込部と、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【0253】
(付記14)各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるデータアクセス制御装置であって、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【0254】
(付記15)収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【0255】
(付記16)各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【符号の説明】
【0256】
100 データアクセス制御装置
110 ルーティングテーブル
201 クライアント端末
501 取得部
502 第1の算出部
503 検出部
504 選択部
505 変更部
506 第2の算出部
507 特定部
A1〜An,Ai エージェント
SV1〜SVn,SVi サーバ
#1〜#m,#j 性能DB
【技術分野】
【0001】
本発明は、データアクセスに関する制御を行う制御プログラム、データアクセス制御装置およびデータ制御方法に関する。
【背景技術】
【0002】
従来、ICT(Information and Communication Technology)システムが提供する業務のサービス品質を可視化し、システム内の監視対象となるサーバから収集した性能データを監視、分析する技術がある。
【0003】
各サーバの性能データは、例えば、各サーバに導入された各エージェントにより定期的に収集される。各エージェントにより収集された性能データは、例えば、性能データを一括管理する管理サーバのマネージャに送信され、性能DB(データベース)に蓄積される。また、監視対象となるサーバ数の増加などにより性能DBへの負荷が高くなると、性能DBの数を増やしたり、管理サーバの処理性能を向上させるなどのスケールアップやスケールアウトが行われる。
【0004】
関連する先行技術としては、例えば、監視対象のストレージネットワーク構成要素から収集した性能情報をもとに、以後の情報収集の対象範囲もしくは程度を必要に応じて自動調整するものがある。また、例えば、性能種目又は被管理装置を要素とし、第1の要素に関する性能情報の時系列変化と、第2の要素に関する性能情報の時系列変化との相関関数から相関モデルを生成し、第1の要素の性能情報から第2の要素の性能情報を予測する技術がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−157933号公報
【特許文献2】特開2009−199534号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、監視対象の性能データ等を格納するデータベース群のうち特定のデータベースに利用者からの参照要求が偏ってアクセスが集中すると、利用者からの参照要求に対するレスポンス時間の増大化を招くという問題がある。
【0007】
一側面では、本発明は、データベースの応答時間の増加を抑制することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一側面によれば、第1のデータ及び第2のデータを記憶する第1の記憶装置と、前記第1のデータを記憶する第2の記憶装置と、を含むシステム内のコンピュータに、前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御プログラムが提案される。
【0009】
本発明の一側面によれば、収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータが、前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する制御プログラム、データアクセス制御装置およびデータ制御方法が提案される。
【0010】
また、本発明の一側面によれば、各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータが、前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する制御プログラム、データアクセス制御装置およびデータ制御方法が提案される。
【発明の効果】
【0011】
本発明の一側面によれば、データベースの応答時間の増加を抑制することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】図1は、実施の形態1にかかるデータ制御方法の一実施例を示す説明図である。
【図2】図2は、実施の形態2にかかる性能管理システムのシステム構成例を示す説明図である。
【図3】図3は、実施の形態2にかかるデータアクセス制御装置のハードウェア構成例を示すブロック図である。
【図4】図4は、ルーティングテーブルの記憶内容の一例を示す説明図である。
【図5】図5は、実施の形態2にかかるデータアクセス制御装置の機能的構成例を示すブロック図である。
【図6】図6は、レスポンス管理テーブルの記憶内容の一例を示す説明図である。
【図7】図7は、ルーティングテーブルの記憶内容の更新例を示す説明図である。
【図8】図8は、同時参照回数管理テーブルの記憶内容の一例を示す説明図である。
【図9】図9は、同時参照率管理テーブルの記憶内容の一例を示す説明図である。
【図10】図10は、エージェントの格納先DBの変更例を示す説明図である。
【図11】図11は、実施の形態2にかかるデータアクセス制御装置のデータ制御処理手順の一例を示すフローチャートである。
【図12】図12は、アクセス状況更新処理の具体的処理手順の一例を示すフローチャートである。
【図13】図13は、同時参照率算出処理の具体的処理手順の一例を示すフローチャートである。
【図14】図14は、グループ選択処理の具体的処理手順の一例を示すフローチャートである。
【図15】図15は、ルーティング処理の具体的処理手順の一例を示すフローチャートである。
【図16】図16は、実施の形態3にかかる性能管理システムのシステム構成例を示す説明図である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、この発明にかかる制御プログラム、データアクセス制御装置およびデータ制御方法の実施の形態を詳細に説明する。
【0014】
(実施の形態1)
図1は、実施の形態1にかかるデータ制御方法の一実施例を示す説明図である。図1において、データアクセス制御装置100は、ルーティングテーブル110にアクセス可能であり、データベース群に格納するデータを分散する機能を有するコンピュータである。
【0015】
ルーティングテーブル110は、各々の監視対象の状態を特徴付けるデータの書込先となるデータベースを設定するテーブルである。監視対象としては、例えば、システム内のハードウェア、ソフトウェア、ドキュメントなどが挙げられる。
【0016】
より詳細に説明すると、例えば、監視対象は、Webサーバ、アプリケーションサーバ、データベースサーバ、仮想サーバ、ストレージ装置、ネットワーク機器などのシステムの構成要素である。また、監視対象は、各構成要素のCPU(Central Processing Unit)、メモリ、ディスクなどのリソースであってもよい。また、監視対象は、各構成要素にインストールされているOS(Operating System)、ミドルウェア、アプリケーションなどのソフトウェアであってもよい。
【0017】
監視対象の状態を特徴付けるデータとは、例えば、時間の経過に伴って変化する監視対象の使用状況、稼働状況、トラフィック状況などを表す情報である。各データは、例えば、システム全体の性能の監視、分析、診断、評価等に用いられる。
【0018】
監視対象の状態を特徴付けるデータは、定期的または不定期に収集されてルーティングテーブル110に設定されている書込先のデータベースに書き込まれる。また、データベース101〜103に格納されているデータは、利用者からの参照要求に応じて、ルーティングテーブル110に設定されている書込先のデータベースから読み出される。
【0019】
図1において、データベース101〜103は、周期的に収集される各々の監視対象の状態を特徴付けるデータを格納するデータベース群である。また、サーバ104〜108は、監視対象となるサーバ群である。また、データD1〜D5は、サーバ104〜108の各々の状態を特徴付けるデータである。
【0020】
ここで、利用者により頻繁に参照されるデータが特定のデータベースに偏って格納されていると、特定のデータベースに対するアクセスが集中する場合がある。この場合、利用者からの参照要求に対するデータベースの応答時間が増大して、利用者に対するサービス品質が低下してしまうことがある。
【0021】
そこで、実施の形態1では、周期的に収集される各々の監視対象のデータを格納するデータベース群のうち、利用者からの参照要求が偏ってアクセス集中しているデータベースが書込先となっている監視対象のデータの書込先を別のデータベースに変更する。これにより、利用者からの参照要求に対するデータベースの応答時間の増大化を抑制して、利用者に対するサービス品質の低下を防ぐ。
【0022】
以下、実施の形態1にかかるデータアクセス制御装置100のデータ制御処理手順の一実施例について説明する。ここでは、ルーティングテーブル110に、データD1,D2の書込先としてデータベース101が設定され、データD3,D4の書込先としてデータベース102が設定され、データD5の書込先としてデータベース103が設定されている。
【0023】
(1)データアクセス制御装置100は、データベース101〜103の中から、データの読出要求に対する応答時間の長さを表す値(以下、「指標値」という)が第1の閾値以上となる第1のデータベースを検出する。ここで、データの読出要求に対する応答時間の長さを表す指標値とは、データの読出要求に対するデータベースの応答性能を表すものである。
【0024】
各データベースの指標値は、例えば、データの読出要求に対する応答時間が長くなる、すなわち、データの読出要求に対する応答性能が悪いほど値が大きくなる。該指標値としては、例えば、各データベースに格納されているデータの読出要求に対する応答時間の実績値から得られる応答時間の平均値を用いることができる。
【0025】
また、第1の閾値は、例えば、該指標値が第1の閾値以上となると、利用者に対して要求されているサービス品質を維持できなくなる値に設定される。すなわち、データアクセス制御装置100は、該指標値が第1の閾値以上であり、データの読出要求に対する応答性能が悪い第1のデータベースを検出する。
【0026】
図1の例では、利用者からの参照要求(図1中、下向き点線矢印)がデータベース102に偏ってアクセスが集中しているため、データの参照要求に対するデータベース102の応答時間が増大している。このため、第1のデータベースとして、データベース101〜103の中からデータベース102が検出される。
【0027】
(2)データアクセス制御装置100は、データベース101〜103の中から、第1のデータベースとは異なる第2のデータベースを検出する。具体的には、例えば、データアクセス制御装置100が、データベース101〜104の中から、該指標値が第2の閾値未満となる第2のデータベースを検出することにしてよい。
【0028】
ここで、第2の閾値は、少なくとも第1の閾値よりも小さい値である。第2の閾値は、例えば、該指標値が第2の閾値未満となると、データの読出要求に対する応答時間が短く、データの読出要求に対する応答性能が良いと判断できる値に設定される。図1の例では、第2のデータベースとして、データベース101〜103の中からデータベース103が検出される。
【0029】
(3)データアクセス制御装置100は、ルーティングテーブル110に第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を第2のデータベースに変更する。
【0030】
すなわち、データアクセス制御装置100が、利用者からの参照要求が偏ってアクセス集中している第1のデータベースに書き込まれるデータの書込先を、第1のデータベースよりも応答性能が良い第2のデータベースに変更する。図1の例では、データベース102が書込先に設定されているデータD3,D4のうち、データD4の書込先がデータベース103に変更されている。
【0031】
以上説明したように、実施の形態1にかかるデータアクセス制御装置100によれば、第1のデータベースが書込先に設定されているデータの書込先を第2のデータベースに変更することができる。これにより、以降において、周期的に収集されて第1のデータベースに書き込まれていたデータが第2のデータベースに書き込まれることになり、利用者からの参照要求が偏ってアクセス集中している第1のデータベースの応答時間の増大化を抑制することができる。
【0032】
また、変更先のデータベースとして指標値が第2の閾値未満となる第2のデータベースを検出することにより、利用者からの参照要求がデータベース群で平準化されるように、各々の監視対象の状態を特徴付けるデータの書込先を分散することができる。これにより、1データベース当たりの参照要求数の偏りを抑えて、データベース資源を効率的に利用することができる。
【0033】
なお、上述した説明では、データベースの指標値として、データの読出要求に対する応答時間が長くなる、すなわち、データの読出要求に対する応答性能が悪いほど値が大きくなる指標値を用いることにしたが、これに限らない。具体的には、例えば、データベースの指標値として、例えば、データの読出要求に対する応答時間が短くなる、すなわち、データの読出要求に対する応答性能が良いほど値が大きくなる指標値を用いることにしてもよい。
【0034】
この場合、第1の閾値は、例えば、該指標値が第1の閾値未満となると、利用者に対して要求されているサービス品質を維持できなくなる値に設定される。そして、上記(1)において、データアクセス制御装置100は、データベース101〜103の中から、データの読出要求に対する応答時間の長さを表す指標値が第1の閾値未満となる第1のデータベースを検出することにしてもよい。
【0035】
(実施の形態2)
つぎに、実施の形態1にかかるデータアクセス制御装置100を性能管理システムに適用した場合について説明する。性能管理システムは、例えば、ICTシステム内の各構成要素のデータを収集、蓄積、提供することで、ICTシステムが提供する業務のサービス品質の最適化を支援するシステムである。なお、実施の形態1で説明した箇所と同様の箇所については説明を省略する。
【0036】
図2は、実施の形態2にかかる性能管理システムのシステム構成例を示す説明図である。図2において、性能管理システム200は、データアクセス制御装置100と、サーバSV1〜SVn(n:2以上の自然数)と、複数のクライアント端末201(図2の例では、3台)と、を含む構成である。性能管理システム200において、データアクセス制御装置100、サーバSV1〜SVnおよび複数のクライアント端末201は、有線または無線のネットワーク210を介して接続されている。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0037】
ここで、データアクセス制御装置100は、性能DB#1〜#m(m:2以上の自然数)にアクセス可能であり、各サーバSV1〜SVnの性能データを周期的に収集する機能を有する。性能DB#1〜#mは、サーバSV1〜SVnの性能データを格納するデータベースである。サーバSV1〜SVnは、監視対象となるサーバ群である。
【0038】
性能データは、各サーバSV1〜SVnの状態を特徴付ける情報である。例えば、性能データは、各サーバSV1〜SVnのCPU、メモリ、ディスクなどの使用率や、各サーバSV1〜SVnにインストールされているミドルウェア、アプリケーションなどの稼働率を表す情報である。
【0039】
具体的には、例えば、データアクセス制御装置100は、各サーバSV1〜SVnに導入された各エージェントにより定期的(例えば、1分間隔)に収集される性能データを各サーバSV1〜SVnから受信する。これにより、各サーバSV1〜SVnの性能データを周期的に収集することができる。
【0040】
また、データアクセス制御装置100は、各サーバSV1〜SVnから収集した性能データを性能DB#1〜#mに書き込む機能を有する。具体的には、例えば、データアクセス制御装置100は、各サーバSV1〜SVnから収集した性能データをルーティングテーブル110に設定されている書込先の性能DBに書き込む。なお、ルーティングテーブル110の記憶内容については、図4を用いて後述する。
【0041】
また、データアクセス制御装置100は、クライアント端末201から性能データの参照要求を受け付けて処理する機能を有する。ここで、参照要求とは、利用者が参照する1以上の性能データの読出要求である。参照要求には、例えば、要求する性能データを特定する情報が含まれている。受け付けた参照要求は、例えば、後述の図3に示すデータアクセス制御装置100のRAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
【0042】
具体的には、例えば、データアクセス制御装置100は、ルーティングテーブル110を参照して、受け付けた参照要求から特定される性能データの書込先の性能DBの中から該性能データを読み出す。そして、データアクセス制御装置100は、読み出した性能データを要求元のクライアント端末201に送信する。
【0043】
また、データアクセス制御装置100は、参照要求に対するレスポンス時間を計測する機能を有する。ここで、参照要求に対するレスポンス時間とは、例えば、要求されている性能データの読出要求を性能DBに渡してから、要求されている性能データが返ってくるまでにかかる時間である。
【0044】
参照要求に対するレスポンス時間は、例えば、クライアント端末201から参照要求を受け付けた際に、その都度計測される。計測された計測結果は、例えば、後述の図3に示すデータアクセス制御装置100のRAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
【0045】
サーバSV1〜SVnは、監視対象となるサーバ群であり、例えば、ICTシステム内のWebサーバ、アプリケーションサーバ、データベースサーバなどのコンピュータである。各サーバSV1〜SVnには、各サーバSV1〜SVnの性能データを定期的に収集するエージェント(ソフトウェア)が導入されている。
【0046】
また、サーバSV1〜SVnは、エージェントにより収集した性能データをデータアクセス制御装置100に送信する機能を有する。具体的には、例えば、サーバSV1〜SVnは、性能データが収集されると、その都度、該性能データをデータアクセス制御装置100に送信する。この結果、データアクセス制御装置100において、各サーバSV1〜SVnの性能データが周期的に収集される。
【0047】
クライアント端末201は、利用者が使用するコンピュータであり、利用者から要求されたサーバSV1〜SVnの性能データをディスプレイに表示する。利用者は、例えば、サーバSV1〜SVnにより実現される各々のシステムの管理者である。
【0048】
具体的には、例えば、まず、クライアント端末201は、利用者の操作入力により、性能データの参照要求を受け付ける。そして、クライアント端末201は、受け付けた性能データの参照要求をデータアクセス制御装置100に送信し、その結果、データアクセス制御装置100から性能データを受信してディスプレイに表示する。これにより、利用者は、各サーバSV1〜SVnの性能データを参照することができ、サービス品質の劣化原因などの究明に役立てることができる。
【0049】
以下の説明では、サーバSV1〜SVnのうち任意のサーバを「サーバSVi」と表記する(i=1,2,…,n)。また、各サーバSV1〜SVnにそれぞれ導入されているエージェントを「エージェントA1〜An」と表記し、エージェントA1〜Anのうち任意のエージェントを「エージェントAi」と表記する。また、性能DB#1〜#mのうち任意の性能DBを「性能DB#j」と表記する(j=1,2,…,m)。
【0050】
(データアクセス制御装置100のハードウェア構成例)
図3は、実施の形態2にかかるデータアクセス制御装置のハードウェア構成例を示すブロック図である。図3において、データアクセス制御装置100は、CPU301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、I/F(Interface)308と、ディスプレイ309と、キーボード310と、マウス311と、を備えている。また、各構成部はバス300によってそれぞれ接続されている。
【0051】
ここで、CPU301は、データアクセス制御装置100の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
【0052】
光ディスクドライブ306は、CPU301の制御にしたがって光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
【0053】
I/F308は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、I/F308は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F308には、例えば、モデムやLANアダプタなどを採用することができる。
【0054】
ディスプレイ309は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ309は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0055】
キーボード310は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0056】
なお、データアクセス制御装置100は、例えば、上述した構成部のうち光ディスクドライブ306、光ディスク307、ディスプレイ309、キーボード310、マウス311等を備えないことにしてもよい。また、図2に示したサーバSV1〜SVnやクライアント端末201についても、上述したデータアクセス制御装置100と同様のハードウェア構成により実現することができる。
【0057】
(ルーティングテーブル110の記憶内容)
つぎに、ルーティングテーブル110の記憶内容について説明する。ここでは一例として、サーバSV1〜SVnの台数が5台(n=5)、性能DB#1〜#mの台数が3台(m=3)の場合を例に挙げて説明する。なお、ルーティングテーブル110は、例えば、図3に示したRAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
【0058】
図4は、ルーティングテーブルの記憶内容の一例を示す説明図である。図4において、ルーティングテーブル110は、格納開始日時、格納終了日時、エージェント名および格納先DBのフィールドを有する。各フィールドに情報を設定することで、ルーティング情報(例えば、ルーティング情報400−1,400−2)が記憶されている。
【0059】
ここで、格納開始日時は、監視対象となるサーバSViの性能データを、書込先となる性能DB#jに格納する期間の開始日時(年/月/日 時:分:秒)である。格納終了日時は、監視対象となるサーバSViの性能データを、書込先となる性能DB#jに格納する期間の終了日時(年/月/日 時:分:秒)である。
【0060】
エージェント名は、サーバSViに導入されているエージェントAiの識別子であり、監視対象となるサーバSViを特定する情報である。格納先DBは、監視対象となるサーバSViの性能データの書込先となる性能DB#jの識別子である。
【0061】
例えば、ルーティング情報400−1には、格納開始日時以降に、各エージェントA1〜A5により収集された各サーバSV1〜SV5の性能データの格納先DBが示されている。例えば、エージェントA1により収集されたサーバSV1の性能データの格納先DBとして性能DB#1が示されている。なお、ルーティング情報400−1は、最新のルーティング情報のため、格納終了日時が未設定(空白)となっている。
【0062】
また、ルーティング情報400−2には、格納開始日時から格納終了日時までの期間に、各エージェントA1〜A5により収集された各サーバSV1〜SV5の性能データの格納先DBが示されている。例えば、エージェントA1により収集されたサーバSV1の格納先DBとして性能DB#2が示されている。
【0063】
周期的に収集される性能データの書込時において、データアクセス制御装置100は、ルーティングテーブル110を参照して、収集した性能データの書込先となる性能DB#jを特定する。具体的には、例えば、データアクセス制御装置100は、サーバSViから収集した性能データの書込先の性能DB#jとして、サーバSViに導入されているエージェントAiのエージェント名に対応する格納先DBを特定する。
【0064】
なお、サーバSViに導入されているエージェントAiのエージェント名は、例えば、サーバSViから収集される性能データに含まれていてもよく、また、サーバSViとエージェントAiとの対応関係を表す情報から特定されてもよい。
【0065】
また、クライアント端末201から参照要求を受け付けた場合、データアクセス制御装置100は、ルーティングテーブル110を参照して、要求されている性能データの書込先となる性能DB#jを特定する。ここで、参照要求には、例えば、要求する性能データごとに、日時(または、期間)とエージェント名とを含むSQL(Structured Query Language)文が記述されている。
【0066】
具体的には、例えば、まず、データアクセス制御装置100は、ルーティングテーブル110の中から、参照要求に含まれる日時が、格納開始日時から格納終了日時までの期間に含まれるルーティング情報を特定する。つぎに、データアクセス制御装置100は、特定したルーティング情報を参照して、参照要求に含まれるエージェント名に対応する格納先DBを特定する。そして、データアクセス制御装置100は、特定した格納先DBの中から、要求されている性能データを読み出す。
【0067】
(データアクセス制御装置100の機能的構成例)
図5は、実施の形態2にかかるデータアクセス制御装置の機能的構成例を示すブロック図である。図5において、データアクセス制御装置100は、取得部501と、第1の算出部502と、検出部503と、選択部504と、変更部505と、第2の算出部506と、特定部507と、を含む構成である。この制御部となる機能(取得部501〜特定部507)は、具体的には、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F308により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
【0068】
以下の説明では、特に指定する場合を除いて、監視対象となるサーバSViを、サーバSViに導入されているエージェント名を用いて「エージェントAi」と表記する。
【0069】
取得部501は、エージェントAiの性能データの参照要求を取得する機能を有する。具体的には、例えば、取得部501が、所定期間X内にクライアント端末201から受け付けられた性能データの参照要求をRAM303、磁気ディスク305、光ディスク307などの記憶装置から読み出す。
【0070】
また、取得部501が、クライアント端末201からエージェントAiの性能データの参照要求を受け付ける他のコンピュータ(例えば、後述の図16に示す管理サーバ1610)から、所定期間X内にクライアント端末201から受け付けられた性能データの参照要求を取得することにしてもよい。
【0071】
所定期間Xは、任意に設定可能である。例えば、所定期間Xは、現時点から予め設定された時間(例えば、1時間)遡った時点から現時点までの期間であってもよく、また、図4に示したルーティングテーブル110内の最新の格納開始日時から現時点までの期間であってもよい。
【0072】
また、取得部501は、性能DB#jごとに、エージェントAiの性能データの参照要求に対するレスポンス時間の計測結果を取得する機能を有する。具体的には、例えば、取得部501が、所定期間X内にクライアント端末201から受け付けられた性能データの参照要求に対する性能DB#jごとのレスポンス時間の計測結果をRAM303、磁気ディスク305、光ディスク307などの記憶装置から読み出す。
【0073】
また、取得部501が、クライアント端末201からエージェントAiの性能データの参照要求を受け付ける他のコンピュータ(例えば、後述の図16に示す管理サーバ1610)から、所定期間X内に受け付けられた参照要求に対する性能DB#jごとのレスポンス時間の計測結果を取得することにしてもよい。
【0074】
第1の算出部502は、性能DB#jごとに、エージェントAiの性能データの参照要求に対するレスポンス時間の長さを表す指標値を算出する機能を有する。ここで、性能データの参照要求に対するレスポンス時間の長さを表す指標値とは、性能データの参照要求に対する性能DB#jの応答性能を表すものである。
【0075】
具体的には、例えば、第1の算出部502が、性能DB#jごとに取得された所定期間X内のレスポンス時間の計測結果に基づいて、性能DB#jの指標値を算出する。より具体的には、例えば、第1の算出部502が、所定期間X内の性能DB#jのレスポンス時間の計測結果のうち、レスポンス時間の長さが最大となる計測結果の値を、性能DB#jの指標値として算出することにしてもよい。
【0076】
また、第1の算出部502が、所定期間X内の性能DB#jのレスポンス時間の計測結果に基づいて、性能DB#jのレスポンス時間の平均値を、性能DB#jの指標値として算出することにしてもよい。この際、第1の算出部502が、例えば、所定期間X内の性能DB#jのレスポンス時間の計測結果のうちレスポンス時間の長さが上位N個の計測結果に基づいて、性能DB#jのレスポンス時間の平均値を算出することにしてもよい。
【0077】
以下の説明では、性能DB#jの指標値として、性能DB#jのレスポンス時間の平均値(以下、「平均レスポンス時間Tj」という)を用いる場合を例に挙げて説明する。算出された性能DB#jの平均レスポンス時間Tjは、例えば、後述の図6に示すレスポンス管理テーブル600に記憶される。
【0078】
また、第1の算出部502は、性能DB#jごとに、エージェントAiの性能データの参照回数を算出する機能を有する。具体的には、例えば、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求に基づいて、性能DB#jごとに、エージェントAiの性能データの参照回数(以下、「参照回数Cj(i)」という)を算出する。
【0079】
より具体的には、例えば、まず、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求の集合の中からいずれかの参照要求を選択する。つぎに、第1の算出部502が、ルーティングテーブル110を参照して、選択した参照要求から、要求されている性能データの格納先DBを特定する。
【0080】
このあと、第1の算出部502が、特定した格納先DBについて、参照要求から特定されるエージェントAiの参照回数Cj(i)をインクリメントする。そして、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求の集合の中から選択されていない未選択の参照要求がなくなるまで、上述した処理を繰り返す。これにより、性能DB#jごとのエージェントAiの参照回数Cj(i)を算出することができる。
【0081】
算出されたエージェントAiの参照回数Cj(i)は、例えば、図6に示すレスポンス管理テーブル600に記憶される。レスポンス管理テーブル600は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、レスポンス管理テーブル600の記憶内容について説明する。
【0082】
図6は、レスポンス管理テーブルの記憶内容の一例を示す説明図である。図6において、レスポンス管理テーブル600は、格納先DB、エージェント名、参照回数および平均レスポンス時間のフィールドを有し、各フィールドに情報を設定することで、性能DB#1〜#3のレスポンス管理情報600−1〜600−3が記憶されている。
【0083】
ここで、格納先DBは、性能DB#jの識別子である。エージェント名は、監視対象となるサーバSViに導入されているエージェントAiの識別子である。参照回数は、エージェントAiの性能データが参照された回数である。平均レスポンス時間は、性能DB#jの平均レスポンス時間Tjである(例えば、単位は[sec])。
【0084】
レスポンス管理情報600−1を例に挙げると、性能DB#1に格納されている、各エージェントA1〜A5の性能データの参照回数C1(1)〜C1(5)が示されている。また、性能DB#1の平均レスポンス時間T1が示されている。
【0085】
図5の説明に戻り、検出部503は、性能DB#1〜#mの中から、平均レスポンス時間Tjが発動基準値α以上となる性能DB#jを検出する機能を有する。ここで、発動基準値αは、例えば、平均レスポンス時間Tjが発動基準値α以上となると、利用者に対して要求されているサービス品質を維持できなくなる値に設定される。
【0086】
すなわち、検出部503は、利用者からのアクセスが集中して、要求されている性能データが性能DB#jから返ってくるまでのレスポンス時間が、利用者に対するサービス品質を維持できない程度に長くなっている性能DB#jを検出する。
【0087】
具体的には、例えば、検出部503が、図6に示したレスポンス管理テーブル600を参照して、平均レスポンス時間Tjが発動基準値α以上となる性能DB#jを検出する。なお、発動基準値αは、例えば、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
【0088】
また、検出部503は、平均レスポンス時間が発動基準値α以上となる性能DBが複数存在する場合、平均レスポンス時間Tjが最大の性能DB#jを検出することにしてもよい。これにより、性能DB#1〜#mの中から、利用者から頻繁に参照される性能データが偏って格納され、最もアクセスが集中している可能性が高い性能DB#jを検出することができる。
【0089】
一例として、レスポンス管理テーブル600内の性能DB#1〜#3の平均レスポンス時間T1〜T3(単位:sec)を『T1=3.5』、『T2=0.15』および『T3=1.8』とし、発動基準値α(単位:sec)を「α=3.0」とする。この場合、検出部503が、性能DB#1〜#3の中から、平均レスポンス時間T1が発動基準値α以上となる性能DB#1を検出する。
【0090】
以下の説明では、検出された平均レスポンス時間Tjが発動基準値α以上となる性能DB#jを「第1の性能DB」という。
【0091】
また、検出部503は、性能DB#1〜#mの中から、平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを検出する機能を有する。ここで、抑制基準値βは、少なくとも発動基準値αよりも小さい値であり、例えば、平均レスポンス時間Tjが抑制基準値β未満の場合、性能データの参照要求に対する性能DB#jの応答性能が良いと判断できる値に設定される。
【0092】
すなわち、検出部503は、要求されている性能データが性能DB#jから返ってくるまでのレスポンス時間の長さが、利用者に対するサービス品質を十分に維持できている性能DB#jを検出する。
【0093】
具体的には、例えば、第1の性能DBが検出された場合、検出部503が、レスポンス管理テーブル600を参照して、平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを検出する。なお、抑制基準値βは、例えば、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
【0094】
一例として、レスポンス管理テーブル600内の性能DB#1〜#3の平均レスポンス時間T1〜T3を『T1=3.5』、『T2=0.15』および『T3=1.8』とし、抑制基準値βを「β=1.0」とする。この場合、検出部503が、性能DB#1〜#3の中から、平均レスポンス時間T2が抑制基準値β未満となる性能DB#2を検出する。
【0095】
また、検出部503は、平均レスポンス時間Tjが抑制基準値β未満となる性能DBが複数存在する場合、平均レスポンス時間Tjが最小の性能DB#jを検出することにしてもよい。これにより、性能DB#1〜#mの中から、利用者からの参照要求に対する応答性能が最も高い性能DB#jを検出することができる。
【0096】
以下の説明では、検出された平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを「第2の性能DB」という。
【0097】
選択部504は、検出された第1の性能DBが書込先に設定されている少なくともいずれかのエージェントAiを選択する機能を有する。すなわち、選択部504は、第1の性能DBを格納先DBとするエージェント群の中から、格納先DBの変更対象となるエージェントAiを選択する。
【0098】
具体的には、例えば、選択部504が、第1の性能DBが書込先に設定されている各々のエージェントAiの性能データが第1の性能DBの中から読み出される頻度に基づいて、格納先DBの変更対象となるエージェントAiを選択することにしてもよい。第1の性能DBの中から読み出される頻度として、例えば、所定期間X内にエージェントAiの性能データが参照された参照回数を用いることができる。
【0099】
より具体的には、例えば、まず、選択部504が、ルーティングテーブル110内の最新のルーティング情報を参照して、第1の性能DBが格納先DBとして設定されているエージェント名を特定する。なお、最新のルーティング情報とは、ルーティングテーブル110内の格納開始日時が最新のルーティング情報(例えば、ルーティング情報400−1)である。
【0100】
そして、選択部504が、レスポンス管理テーブル600内の第1の性能DBに対応するレスポンス管理情報を参照して、第1の性能DBが格納先DBとして設定されているエージェント群の中から参照回数が最大のエージェント名を選択する。
【0101】
一例として、第1の性能DBを性能DB#1とすると、まず、選択部504が、ルーティングテーブル110内のルーティング情報400−1を参照して、性能DB#1が格納先DBとして設定されているエージェント名「A1,A2,A4」を特定する。そして、選択部504が、レスポンス管理テーブル600内のレスポンス管理情報600−1を参照して、エージェント名「A1,A2,A4」のうち参照回数が最大のエージェント名を選択する。例えば、参照回数C1(1),C1(2),C(4)のうち最大の参照回数を「参照回数C1(2)」とする。この場合、選択部504が、エージェント名「A1,A2,A4」のうち参照回数が最大のエージェント名「A2」を選択する。
【0102】
これにより、格納先DBの変更対象となるエージェントAiとして、第1の性能DBを格納先DBとするエージェント群の中から性能データの参照回数が最大のエージェントを選択することができる。
【0103】
なお、第1の性能DBを格納先DBとするエージェント群の中から、格納先DBの変更対象となるエージェントAiを選択する他の選択例については、図8および図9を用いて後述する。
【0104】
変更部505は、第1の性能DBが書込先に設定されているエージェント群のうち、選択されたエージェントAiの性能データの書込先を、検出された第2の性能DBに変更する機能を有する。具体的には、例えば、変更部505が、ルーティングテーブル110に設定されている、エージェントAiの格納先DBを、第1の性能DBから第2の性能DBに変更する。ここで、ルーティングテーブル110の更新例について説明する。
【0105】
図7は、ルーティングテーブルの記憶内容の更新例を示す説明図である。図7に示す(7−1)は、更新前のルーティングテーブル110の記憶内容である。ここで、第1の性能DBを「性能DB#1」とし、第2の性能DBを「性能DB#2」とする。また、格納先DBとして性能DB#1が設定されているエージェントA1,A2,A4のうち、格納先DBの変更対象となるエージェントAiを「エージェントA2」とする。
【0106】
図7に示す(7−2)は、更新後のルーティングテーブル110の記憶内容である。ここでは、エージェントA2の性能データの格納先DBが性能DB#1から性能DB#2に変更された結果、ルーティングテーブル110に新たなルーティング情報700−1が記憶されている。
【0107】
具体的には、まず、エージェントA2の性能データの格納先DBの変更に伴って、ルーティング情報400−1の格納終了日時フィールドに「2011/12/25 11:59:59」が設定されている。
【0108】
そして、新たなルーティング情報700−1の格納開始日時フィールドに「2011/12/25 12:00:00」が設定され、格納先DBの変更対象のエージェントA2に対応する格納先DBフィールドに「#2」が設定されている。また、エージェントA2とは異なるエージェントA1,A3,A4,A5に対応する格納先DBフィールドに、ルーティング情報400−1と同一の情報が設定されている。
【0109】
この結果、以降において、周期的に収集されて性能DB#1に書き込まれていたエージェントA2の性能データが性能DB#2に書き込まれることになる。これにより、利用者からの参照要求が偏ってアクセス集中している性能DB#1の応答時間の増大化を抑制することができる。
【0110】
また、第2の性能DBとして平均レスポンス時間Tjが抑制基準値β未満となる性能DB#2を検出することで、利用者からの参照要求が性能DB群で平準化されるように、各エージェントAiの性能データの格納先DBを分散することができる。これにより、1性能DB当たりの参照要求数の偏りを抑えて、データベース資源を効率的に利用することができる。
【0111】
(格納先DBの変更対象となるエージェントAiの選択例)
つぎに、第1の性能DBを格納先DBとするエージェント群の中から、格納先DBの変更対象となるエージェントAiを選択する他の選択例について説明する。ここで、同時に参照される頻度が高い複数のエージェントの各々の性能データは、並列に読出処理を行えるなどの観点から、それぞれ異なる性能DBに格納されているほうが応答性能の向上を図ることができる。
【0112】
そこで、以下の説明では、同時に参照される頻度が高い複数のエージェントの各々の性能データの書込先が、できるだけ異なる性能DBとなるように、格納先DBの変更対象となるエージェントAiを選択する場合について説明する。
【0113】
まず、第2の算出部506は、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される頻度を算出する。具体的には、例えば、まず、第2の算出部506が、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照された回数を計数する。
【0114】
以下、図8に示す同時参照回数管理テーブル800を用いて、互いに異なるエージェントの性能データが同時に参照された回数(以下、「同時参照回数」という)を計数する具体的な処理内容について説明する。同時参照回数管理テーブル800は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
【0115】
図8は、同時参照回数管理テーブルの記憶内容の一例を示す説明図である。図8において、同時参照回数管理テーブル800は、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照された同時参照回数を記憶するテーブルである。なお、初期状態では、同時参照回数管理テーブル800内の同時参照回数の各値は「0」である。
【0116】
具体的には、例えば、まず、第2の算出部506が、所定期間X内に受け付けられた性能データの参照要求の集合の中から、第1の性能DBに格納されている性能データを参照するいずれかの参照要求を選択する。
【0117】
ここで、選択された参照要求にエージェント名「A1,A2」が含まれている場合を想定する。この場合、第2の算出部506が、同時参照回数管理テーブル800内のA1行A1列、A1行A2列、A2行A1列およびA2行A2列の各値をインクリメントする(図8(8−2)参照)。
【0118】
また、選択された参照要求にエージェント名「A1,A3,A5」が含まれている場合を想定する。この場合、第2の算出部506が、同時参照回数管理テーブル800内のA1行A1列、A1行A3列、A1行A5列、A3行A1列、A3行A3列、A3行A5列、A5行A1列、A5行A3列およびA5行A5列の各値をインクリメントする(図8(8−3)参照)。
【0119】
なお、選択された参照要求にエージェント名「A1」のみが含まれている場合は、第2の算出部506が、同時参照回数管理テーブル800内のA1行A1列の値をインクリメントする。
【0120】
そして、第1の算出部502が、所定期間X内に受け付けられた性能データの参照要求の集合の中から、第1の性能DBに格納されている性能データを参照する参照要求がなくなるまで、上述した処理を繰り返す。
【0121】
このように、所定期間X内に受け付けられた参照要求に含まれるエージェント名の組合せに対応する同時参照回数管理テーブル800内の各値をインクリメントしていくことで、互いに異なるエージェントの性能データが同時に参照された同時参照回数を計数できる。例えば、図8に示す(8−3)において、所定期間X内に第1の性能DBに格納されているエージェントA1の性能データが参照された回数は「52回」であり、そのうち、エージェントA2の性能データと同時に参照された回数は「21回」である。
【0122】
なお、上述した説明では、第1の性能DBについてのみ同時参照回数管理テーブル800を作成することにしたが、これに限らない。具体的には、例えば、性能DB#1〜#mの各々の性能DB#jについて同時参照回数管理テーブル800を用意し、利用者からの性能データの参照要求を受け付けた際に、その都度、各々の同時参照回数管理テーブル800の記憶内容を更新することにしてもよい。
【0123】
つぎに、第2の算出部506が、同時参照回数管理テーブル800を参照して、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される頻度を算出する。具体的には、例えば、第2の算出部506が、下記式(1)を用いて、各ペアに含まれるエージェントの性能データが同時に参照される頻度(以下、「同時参照率」という)を求めることができる。
【0124】
ただし、Rpqは、互いに異なるエージェントApとエージェントAqの各々の性能データが同時に参照される同時参照率である(p=1,2,…,n、q=1,2,…,n、p≠q)。Cpqは、エージェントApとエージェントAqの各々の性能データが同時に参照された同時参照回数である。Cpは、エージェントApの性能データが参照された参照回数である。Cqは、エージェントAqの性能データが参照された参照回数である。
【0125】
Rpq={(Cpq×2)/(Cp+Cq)}×100 ・・・(1)
【0126】
なお、Cpqは、例えば、同時参照回数管理テーブル800内のp行q列(または、q行p列)の値である。Cpは、例えば、同時参照回数管理テーブル800内のp行p列の値である。Cqは、例えば、同時参照回数管理テーブル800内のq行q列の値である。
【0127】
一例として、エージェントA1とエージェントA2の各々の性能データが同時に参照される同時参照率R12を求める場合を説明する。ここでは、同時参照回数管理テーブル800内のA1行A1列の値を「50」、A1行A2列の値を「20」、A2行A1列の値を「20」、A2行A2列の値を「30」とする(図8(8−1)参照)。この場合、エージェントA1とエージェントA2の各々の性能データが同時に参照される同時参照率R12は、「R12={(20×2)/(50+30)}×100=50[%]」となる。
【0128】
なお、同時参照率Rpqの算出方法は、上述したものに限らない。具体的には、例えば、第2の算出部506が、第1の性能DBに対して行われた参照要求の総数に対するエージェントApとエージェントAqの各々の性能データが同時に参照された同時参照回数Cpqの割合を同時参照率Rpqとして算出することにしてもよい。
【0129】
算出された同時参照率Rpqは、例えば、図9に示す同時参照率管理テーブル900に記憶される。同時参照率管理テーブル900は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、同時参照率管理テーブル900の記憶内容について説明する。
【0130】
図9は、同時参照率管理テーブルの記憶内容の一例を示す説明図である。図9において、同時参照率管理テーブル900は、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される同時参照率を記憶するテーブルである。
【0131】
例えば、同時参照率R12は、第1の性能DBに格納されているエージェントA1の性能データが参照される際に、エージェントA2の性能データが同時に参照される割合を表している。なお、同時参照率管理テーブル900において、同時参照率Rpqと同時参照率Rqpは同じ値となる。
【0132】
特定部507は、第1の性能DBについて、互いに異なるエージェントのペア群の中から、同時参照率が所定の閾値γ以上となるペアを特定する。具体的には、例えば、特定部507が、同時参照率管理テーブル900を参照して、同時参照率が閾値γ以上となるペアを特定する。
【0133】
閾値γは、例えば、サーバSV1〜SVnの台数や性能DB#1〜#mの台数に合わせて予め設定されている(例えば、γ=50[%])。また、閾値γは、例えば、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
【0134】
ここで、同時参照率管理テーブル900内の同時参照率R12,R13,R45が閾値γ以上の場合を想定する。この場合、エージェントA1とエージェントA2のペアP1、エージェントA1とエージェントA3のペアP2、およびエージェントA4とエージェントA5のペアP3が特定される。
【0135】
選択部504は、特定された同時参照率が閾値γ以上となるペア群の中からいずれかのペアを選択する。具体的には、例えば、選択部504が、各ペアに含まれる各々のエージェントの性能データの参照回数の総和が最大のペアを選択することにしてもよい。なお、各々のエージェントの性能データの参照回数は、例えば、図6に示したレスポンス管理テーブル600から特定される。
【0136】
そして、選択部504は、選択したペアに含まれる少なくともいずれかのエージェントAiを選択する。具体的には、例えば、選択部504が、選択したペアに含まれる2つのエージェントのうち、性能データの参照回数が最大のエージェントを選択することにしてもよい。
【0137】
これにより、格納先DBの変更対象となるエージェントAiとして、同時に参照される頻度が最大のペアに含まれるいずれかのエージェントAiを選択することができる。この結果、同時に参照される頻度が高い2つのエージェントの性能データがそれぞれ異なる性能DBに格納されることになり、性能DBの応答性能の向上を図ることができる。
【0138】
また、格納先DBの変更対象となるエージェントAiとして、同時に参照される頻度が最大のペアに含まれる参照回数が最大のエージェントを選択することにより、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0139】
なお、同時に参照される頻度が最大のペアに含まれるエージェントの性能データの格納先DBとして第1の性能DBが設定されていない場合がある。そこで、エージェントA1〜Anのうち、第1の性能DBが格納先DBに設定されているエージェントのペアだけを同時参照率の算出対象とすることにしてもよい。
【0140】
具体的には、例えば、第2の算出部506が、格納先DBとして第1の性能DBが設定されているエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される同時参照率を算出する。これにより、格納先DBの変更対象となるエージェントAiとして、第1の性能DBが格納先DBに設定されているエージェントのペアのうち、同時に参照される頻度が最大のペアに含まれるいずれかのエージェントAiを選択することができる。
【0141】
また、同時に参照される頻度が最大のペアに含まれる一方のエージェントの性能データの格納先DBとして第1の性能DBが設定され、他方のエージェントの性能データの格納先DBとして第1の性能DBが設定されていない場合がある。この場合、選択部504が、ペアに含まれる2つのエージェントのうち、第1の性能DBが格納先DBとして設定されているエージェントを選択することにしてもよい。
【0142】
(第2の性能DBが複数検出された場合の処理例)
つぎに、平均レスポンス時間が抑制基準値β未満となる第2の性能DBが複数検出された場合の処理例について説明する。以下、検出された複数の第2の性能DBを「第2の性能DB$1〜$K」と表記し、第2の性能DB$1〜$Kのうち任意の第2の性能DBを「性能DB$k」と表記する(k=1,2,…,K)。
【0143】
まず、特定部507は、第1の性能DBについて、同時参照率管理テーブル900を参照して、同時参照率が閾値γ以上となるペアを特定する。ここで、同時参照率管理テーブル900内の同時参照率R12,R13,R45が閾値γ以上の場合を想定する。この場合、エージェントA1とエージェントA2のペアP1、エージェントA1とエージェントA3のペアP2、およびエージェントA4とエージェントA5のペアP3が特定される。
【0144】
つぎに、特定部507は、同時参照率が閾値γ以上となるペアを分類することにより、複数の異なるエージェントを含むグループを作成する。具体的には、例えば、特定部507が、同一のエージェントを含むペア同士を集約することにより、複数の異なるエージェントを含むグループを作成する。
【0145】
上述したペアP1〜P3の例では、ペアP1とペアP2とは、同一のエージェントA1を含む。このため、特定部507が、ペアP1とペアP2とを集約することにより、エージェントA1とエージェントA2とエージェントA3とを含むグループG1を作成する。また、特定部507が、エージェントA4とエージェントA5のペアP3をグループG2とする。
【0146】
以下、作成されたグループを「グループG1〜GS」と表記し、グループG1〜GSのうち任意のグループを「グループGs」と表記する(s=1,2,…,S)。
【0147】
特定部507は、作成したグループGsに含まれるエージェント数が閾値δ以上となるか否かを判断する。閾値δは、例えば、予め設定されてROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている(例えば、δ=5)。
【0148】
特定部507は、グループGsに含まれるエージェント数が閾値δ以上となる場合、グループGsの中からいずれかのエージェントを除外する。具体的には、例えば、特定部507が、レスポンス管理テーブル600の第1の性能DBのレスポンス管理情報を参照して、グループに含まれるエージェント群のうち参照回数が最小のエージェントを除外することにしてもよい。
【0149】
これにより、グループGs内のエージェント数が一定数以上とならないように制限することができ、エージェントの格納先DBが必要以上に分散されて、第1の性能DBが格納先DBに設定されているエージェント数が少なくなってしまうことを防ぐことができる。
【0150】
特定部507は、作成したグループG1〜GSの中から少なくともいずれかのグループGsを選択する。具体的には、例えば、特定部507が、グループG1〜GSの中から、各グループに含まれるエージェント群の各々の参照回数を足し合わせた総参照回数が最大のグループGsを選択する。
【0151】
各グループの総参照回数は、例えば、レスポンス管理テーブル600の第1の性能DBのレスポンス管理情報を参照して求めることができる。例えば、第1の性能DBを「性能DB#1」とすると、グループG1の総参照回数は、エージェントA1の参照回数C1(1)とエージェントA2の参照回数C1(2)とエージェントA3の参照回数C1(3)とを足し合わせた値となる。また、グループG2の総参照回数は、エージェントA4の参照回数C1(4)とエージェントA5の参照回数C1(5)とを足し合わせた値となる。
【0152】
以下の説明では、グループGsに含まれるエージェント群を「エージェントA[1]〜A[F]」と表記し、エージェントA[1]〜A[F]のうち任意のエージェントを「エージェントA[f]」と表記する(F:1以上の自然数、f=1,2,…,F)。
【0153】
選択部504は、グループGsに含まれるエージェントA[1]〜A[F]の中からいずれかのエージェントA[f]を選択する。具体的には、例えば、選択部504が、レスポンス管理テーブル600の第1の性能DBのレスポンス管理情報を参照して、エージェントA[1]〜A[F]の中から参照回数が最大のエージェントA[f]を選択することにしてもよい。
【0154】
また、選択部504は、第2の性能DB$1〜$Kの中からいずれかの第2の性能DB$kを選択する。具体的には、例えば、選択部504が、レスポンス管理テーブル600を参照して、第2の性能DB$1〜$Kの中から平均レスポンス時間が最小の性能DB$kを選択することにしてもよい。
【0155】
変更部505は、第1の性能DBが書込先に設定されているエージェント群のうち選択されたエージェントA[f]の性能データの書込先を、選択された第2の性能DB$kに変更する。具体的には、例えば、変更部505が、ルーティングテーブル110に設定されているエージェントA[f]の格納先DBを第2の性能DB$kに変更する。
【0156】
上記選択部504のエージェントA[f]を選択する処理は、例えば、エージェントA[1]〜A[F]の中から選択されていない未選択のエージェントがなくなるまで繰り返し行われる。
【0157】
また、上記選択部504の第2の性能DB$kを選択する処理は、エージェントA[f]が選択されると、その都度行われる。この際、選択部504が、第2の性能DB$1〜$Kのうち選択されていない未選択のものの中から、平均レスポンス時間が最小の性能DB$kを選択することにしてもよい。
【0158】
なお、第2の性能DB$1〜$Kのうち未選択の性能DB$kがない場合は、選択部504が、再度、平均レスポンス時間が最小の性能DB$kを順次選択することにしてもよい。ここで、変更対象となるエージェントA[f]の格納先DBの変更例について説明する。
【0159】
図10は、エージェントの格納先DBの変更例を示す説明図である。図10において、グループGsに含まれるエージェントA[1]〜A[F]は、エージェントA1,A2,A3である。各エージェントA1〜A3の性能データの格納先DBは、第1の性能DBである性能DB#2とする。
【0160】
また、第2の性能DB$1〜$Kは、性能DB#1,#4,#5である。性能DB#1の平均レスポンス時間T1は、150[msec]である。性能DB#4の平均レスポンス時間T4は、100[msec]である。性能DB#5の平均レスポンス時間T5は、200[msec]である。
【0161】
この場合、まず、選択部504が、グループGsの中から参照回数が最大のエージェントA3を選択する。つぎに、選択部504が、性能DB#1,#4,#5の中から平均レスポンス時間が最小の性能DB#4を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA3の格納先DBを性能DB#4に変更する。
【0162】
つぎに、選択部504が、グループGsの中から参照回数が2番目に大きいエージェントA1を選択する。このあと、選択部504が、性能DB#1,#4,#5の中から平均レスポンス時間が2番目に小さい性能DB#1を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA1の格納先DBを性能DB#1に変更する。
【0163】
つぎに、選択部504が、グループGsの中から参照回数が最小のエージェントA2を選択する。このあと、選択部504が、性能DB#1,#4,#5の中から平均レスポンス時間が最大の性能DB#5を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA2の格納先DBを性能DB#5に変更する。
【0164】
このように、グループGsの中から参照回数が最大のエージェントA[f]を順次選択して、格納先DBを平均レスポンス時間が最小の性能DB$kに変更することで、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0165】
なお、グループGsに含まれるエージェントA[f]の性能データの格納先DBとして第1の性能DBが設定されていない場合がある。そこで、上述したように、第2の算出部506が、格納先DBとして第1の性能DBが設定されているエージェントのペアごとに、該ペアに含まれるエージェントの性能データが同時に参照される同時参照率を算出することにしてもよい。
【0166】
また、格納先DBの変更対象として、選択部504が、例えば、グループGsの中から、少なくとも第1の性能DBが格納先DBとして設定されているエージェントA[f]を選択することにしてもよい。この場合、選択部504が、第2の性能DB$1〜$Kのうち、グループGsに含まれるエージェントの性能データの格納先DBとして設定されている性能DBを除く残余の性能DBの中から第2の性能DB$kを選択することにしてもよい。
【0167】
一例として、図10の例において、グループGsに含まれるエージェントA1〜A3のうちエージェントA1の性能データの格納先DBとして第1の性能DBが設定されているとする。また、エージェントA2の性能データの格納先DBとして性能DB#4が設定され、エージェントA3の性能データの格納先DBとして性能DB#3が設定されているとする。
【0168】
この場合、まず、選択部504が、グループGsに含まれるエージェントA1〜A3の中からエージェントA1を選択する。つぎに、選択部504が、性能DB#1,#4,#5のうち、エージェントA2の性能データの格納先DBとして設定されている性能DB#4を除く残余の性能DB#1,#5の中から、平均レスポンス時間が最小の性能DB#1を選択する。そして、変更部505が、ルーティングテーブル110に設定されているエージェントA1の格納先DBを性能DB#1に変更する。
【0169】
(データアクセス制御装置100のデータ制御処理手順)
つぎに、実施の形態2にかかるデータアクセス制御装置100のデータ制御処理手順について説明する。データアクセス制御装置100のデータ制御処理は、例えば、一定時間x経過すると、その都度繰り返し実行が開始される(例えば、毎時59分59秒)。
【0170】
図11は、実施の形態2にかかるデータアクセス制御装置のデータ制御処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、第1の算出部502により、レスポンス管理テーブル600の記憶内容を更新するアクセス状況更新処理を実行する(ステップS1101)。
【0171】
つぎに、検出部503により、レスポンス管理テーブル600を参照して、性能DB#1〜#mの平均レスポンス時間T1〜Tmの中から最大の平均レスポンス時間Tjを特定する(ステップS1102)。そして、検出部503により、特定した平均レスポンス時間Tjが発動基準値α以上となるか否かを判断する(ステップS1103)。
【0172】
ここで、平均レスポンス時間Tjが発動基準値αの場合(ステップS1103:Yes)、検出部503により、第1の性能DBとして性能DB#jを検出する(ステップS1104)。そして、第2の算出部506により、互いに異なるエージェントのペアごとの同時参照率を算出する同時参照率算出処理を実行する(ステップS1105)。
【0173】
つぎに、特定部507により、格納先DBの変更対象となるグループGsを選択するグループ選択処理を実行する(ステップS1106)。そして、変更部505により、グループGsに含まれるエージェントAiの性能データの格納先DBを変更するルーティング処理を実行する(ステップS1107)。
【0174】
最後に、データアクセス制御装置100により、各種テーブル600,800,900を初期化して(ステップS1108)、本フローチャートによる一連の処理を終了する。
【0175】
また、ステップS1103において、平均レスポンス時間Tjが発動基準値α未満の場合(ステップS1103:No)、本フローチャートによる一連の処理を終了する。
【0176】
これにより、ルーティングテーブル110に第1の性能DBが書込先に設定されているエージェントAiの性能データの格納先DBを第2の性能DBに変更することができる。
【0177】
<アクセス状況更新処理の具体的処理手順>
つぎに、図11に示したステップS1101のアクセス状況更新処理の具体的な処理手順について説明する。
【0178】
図12は、アクセス状況更新処理の具体的処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、取得部501により、性能データの参照要求および性能データの参照要求に対するレスポンス時間の計測結果を取得する(ステップS1201)。
【0179】
なお、性能データの参照要求は、現時点から一定時間x遡った時点から現時点までの所定期間X内にクライアント端末201から受け付けられた参照要求である。また、レスポンス時間の計測結果は、所定期間X内に受け付けられたエージェントAiの性能データの参照要求に対する性能DB#jごとのレスポンス時間の計測結果である。
【0180】
つぎに、第1の算出部502により、性能DB#jの「j」を「j=1」として(ステップS1202)、性能DB#1〜#mの中から性能DB#jを選択する(ステップS1203)。そして、第1の算出部502により、取得された所定期間X内の性能DB#jのレスポンス時間の計測結果に基づいて、性能DB#jの平均レスポンス時間Tjを算出する(ステップS1204)。
【0181】
そして、第1の算出部502により、算出した性能DB#jの平均レスポンス時間Tjをレスポンス管理テーブル600に登録する(ステップS1205)。このあと、第1の算出部502により、性能DB#jの「j」をインクリメントして(ステップS1206)、「j」が「m」より大きくなったか否かを判断する(ステップS1207)。
【0182】
ここで、「j」が「m」以下の場合(ステップS1207:No)、ステップS1203に戻る。一方、「j」が「m」より大きくなった場合(ステップS1207:Yes)、第1の算出部502により、取得された所定期間X内の性能データの参照要求の集合の中からいずれかの参照要求を選択する(ステップS1208)。
【0183】
つぎに、第1の算出部502により、ルーティングテーブル110を参照して、選択した参照要求から、要求されているエージェントAiの性能データの格納先DBを特定する(ステップS1209)。そして、第1の算出部502により、レスポンス管理テーブル600内の特定した格納先DBについて、エージェントAiの参照回数Cj(i)をインクリメントする(ステップS1210)。
【0184】
このあと、第1の算出部502により、所定期間X内の性能データの参照要求の集合の中から選択されていない未選択の参照要求があるか否かを判断する(ステップS1211)。ここで、未選択の参照要求がある場合(ステップS1211:Yes)、ステップS1208に戻る。一方、未選択の参照要求がない場合(ステップS1211:No)、図11に示したステップS1102に移行する。
【0185】
これにより、各性能DB#jについて、各エージェントAiの参照回数Cj(i)および平均レスポンス時間Tjを更新することができる。
【0186】
<同時参照率算出処理の具体的処理手順>
つぎに、図11に示したステップS1105の同時参照率算出処理の具体的な処理手順について説明する。
【0187】
図13は、同時参照率算出処理の具体的処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、第2の算出部506により、取得された所定期間X内の性能データの参照要求の集合の中からいずれかの参照要求を選択する(ステップS1301)。
【0188】
つぎに、第2の算出部506により、選択した参照要求から特定される格納先DBが第1の性能DBか否かを判断する(ステップS1302)。ここで、格納先DBが第1の性能DBではない場合(ステップS1302:No)、ステップS1304に移行する。
【0189】
一方、格納先DBが第1の性能DBの場合(ステップS1302:Yes)、第2の算出部506により、選択した参照要求に含まれるエージェント名に応じて、同時参照回数管理テーブル800の記憶内容を更新する(ステップS1303)。
【0190】
そして、第2の算出部506により、所定期間X内の性能データの参照要求の集合の中から選択されていない未選択の参照要求があるか否かを判断する(ステップS1304)。ここで、未選択の参照要求がある場合(ステップS1304:Yes)、ステップS1301に戻る。
【0191】
一方、未選択の参照要求がない場合(ステップS1304:No)、第2の算出部506により、互いに異なるエージェントApとエージェントAqのペアを選択する(ステップS1305)。そして、第2の算出部506により、同時参照回数管理テーブル800を参照して、上記式(1)を用いて、選択したペアの同時参照率Rpqを算出する(ステップS1306)。
【0192】
つぎに、第2の算出部506により、算出したペアの同時参照率Rpqおよび同時参照率Rqp(Rpq=Rqp)を同時参照率管理テーブル900に登録する(ステップS1307)。そして、第2の算出部506により、互いに異なるエージェントApとエージェントAqについて、選択されていない未選択のペアがあるか否かを判断する(ステップS1308)。
【0193】
ここで、未選択のペアがある場合(ステップS1308:Yes)、ステップS1305に戻る。一方、未選択のペアがない場合(ステップS1308:No)、図11に示したステップS1106に移行する。
【0194】
これにより、第1の性能DBについて、互いに異なるエージェントのペアごとに、該ペアに含まれる2つのエージェントの性能データが同時に参照される頻度を算出することができる。
【0195】
<グループ選択処理の具体的処理手順>
つぎに、図11に示したステップS1106のグループ選択処理の具体的な処理手順について説明する。
【0196】
図14は、グループ選択処理の具体的処理手順の一例を示すフローチャートである。図14のフローチャートにおいて、まず、特定部507により、第1の性能DBについて、同時参照率管理テーブル900を参照して、同時参照率が閾値γ以上となるエージェントのペアをグループとして特定する(ステップS1401)。
【0197】
つぎに、特定部507により、複数のグループに含まれるエージェントAiがあるか否かを判断する(ステップS1402)。ここで、複数のグループに含まれるエージェントAiがある場合(ステップS1402:Yes)、同一のエージェントAiを含むグループ同士を集約して新たなグループを作成して(ステップS1403)、ステップS1402に戻る。
【0198】
以下、作成されたグループを「グループG1〜GS」と表記し、グループG1〜GSのうち任意のグループを「グループGs」と表記する(s=1,2,…,S)。
【0199】
また、ステップS1402において、複数のグループに含まれるエージェントAiがない場合(ステップS1402:No)、特定部507により、グループGsの「s」を「s=1」とする(ステップS1404)。
【0200】
そして、特定部507により、グループG1〜GSの中からグループGsを選択する(ステップS1405)。つぎに、特定部507により、選択したグループGsに含まれるエージェント数が閾値δ以上となるか否かを判断する(ステップS1406)。
【0201】
ここで、エージェント数が閾値δ以上の場合(ステップS1406:Yes)、特定部507により、レスポンス管理テーブル600を参照して、グループGsに含まれるエージェント群のうち参照回数が最小のエージェントを除外して(ステップS1407)、ステップS1406に戻る。
【0202】
一方、エージェント数が閾値δ未満の場合(ステップS1406:No)、特定部507により、レスポンス管理テーブル600を参照して、グループGsに含まれる各々のエージェントの参照回数を足し合わせた総参照回数TCsを算出する(ステップS1408)。
【0203】
そして、特定部507により、グループGsの「s」をインクリメントして(ステップS1409)、「s」が「S」より大きくなったか否かを判断する(ステップS1410)。ここで、「s」が「S」以内の場合(ステップS1410:No)、ステップS1405に戻る。
【0204】
一方、「s」が「S」より大きくなった場合(ステップS1410:Yes)、特定部507により、グループG1〜GSの中から総参照回数TCsが最大のグループGsを選択して(ステップS1411)、図11に示したステップS1107に移行する。
【0205】
これにより、同時参照率が閾値γ以上となるエージェントのペアを含むグループG1〜GSの中から総参照回数TCsが最大のグループGsを格納先DBの変更対象となるグループとして選択することができる。
【0206】
なお、上述した説明では、ステップS1411において、総参照回数TCsが最大のグループGsを選択することにしたが、これに限らない。例えば、特定部507により、グループG1〜GSの中から総参照回数が多い順に上位M個のグループを選択することにしてもよい(例えば、M=2,3)。
【0207】
<ルーティング処理の具体的処理手順>
つぎに、図11に示したステップS1107のルーティング処理の具体的な処理手順について説明する。
【0208】
図15は、ルーティング処理の具体的処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、検出部503により、レスポンス管理テーブル600を参照して、性能DB#1〜#mの中から平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを第2の性能DBとして検出する(ステップS1501)。以下、平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを「第2の性能DB$1〜$K」と表記する。
【0209】
そして、選択部504により、第2の性能DB$1〜$Kが検出されたか否かを判断する(ステップS1502)。ここで、第2の性能DB$1〜$Kが検出されなかった場合(ステップS1502:No)、本フローチャートによる一連の処理を終了する。すなわち、変更先となる応答性能が良い性能DB#jが存在しないため、データアクセス制御装置100のデータ制御処理を終了する。
【0210】
一方、第2の性能DB$1〜$Kが検出された場合(ステップS1502:Yes)、ステップS1503に移行する。そして、選択部504により、レスポンス管理テーブル600を参照して、特定されたグループGsに含まれるエージェントA[1]〜A[F]の中から、参照回数が最大のエージェントA[f]を選択する(ステップS1503)。
【0211】
つぎに、選択部504により、レスポンス管理テーブル600を参照して、第2の性能DB$1〜$Kの中から平均レスポンス時間が最小の性能DB$kを選択する(ステップS1504)。そして、変更部505により、ルーティングテーブル110に設定されているエージェントA[f]の格納先DBを第2の性能DB$kに変更する(ステップS1505)。
【0212】
具体的には、例えば、変更部505が、ルーティングテーブル110内にエージェントA[f]の格納先DBとして第2の性能DB$kが設定された新たなルーティング情報を作成する。なお、新たなルーティング情報の格納開始日時は、例えば、データ制御処理の開始日時から所定時間(例えば、1秒)経過した日時に設定される。
【0213】
つぎに、選択部504により、グループGsに含まれるエージェントA[1]〜A[F]の中から選択されていない未選択のエージェントA[f]があるか否かを判断する(ステップS1506)。ここで、未選択のエージェントA[f]がある場合(ステップS1506:Yes)、ステップS1503に戻る。
【0214】
一方、未選択のエージェントA[f]がない場合(ステップS1506:No)、ステップS1507に移行する。そして、変更部505により、エージェントA1〜Anのうち格納先DBが設定されていない残余のエージェントの格納先DBを新たなルーティング情報に設定して(ステップS1507)、図11に示したステップS1108に移行する。
【0215】
これにより、グループGsの中から参照回数が最大のエージェントA[f]を順次選択して、格納先DBを平均レスポンス時間が最小の性能DB$kに変更することができる。
【0216】
なお、図14に示したステップS1411において、複数のグループが選択された場合、複数のグループに含まれる各々のグループについて、上述したステップS1503〜S1506の処理を繰り返し実行することにしてもよい。
【0217】
以上説明したように、実施の形態2にかかるデータアクセス制御装置100によれば、ルーティングテーブル110に第1の性能DBが書込先に設定されているエージェントAiの性能データの格納先DBを第2の性能DBに変更することができる。これにより、以降において、周期的に収集されて第1の性能DBに書き込まれていたエージェントAiの性能データが第2の性能DBに書き込まれることになり、利用者からの参照要求が偏ってアクセス集中している第1の性能DBの応答時間の増大化を抑制できる。
【0218】
また、データアクセス制御装置100によれば、第2の性能DBとして平均レスポンス時間Tjが抑制基準値β未満となる性能DB#jを検出することができる。これにより、利用者からの参照要求数が性能DB#1〜#mの間で平準化されるように各エージェントAiの性能データの格納先DBを分散することができ、1性能DB当たりの参照要求数の偏りを抑えて、データベース資源を効率的に利用することができる。
【0219】
また、データアクセス制御装置100によれば、格納先DBの変更対象となるエージェントAiとして、第1の性能DBを格納先DBとするエージェント群の中から性能データの参照回数が最大のエージェントを選択することができる。これにより、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0220】
また、データアクセス制御装置100によれば、格納先DBの変更対象となるエージェントAiとして、互いに異なるエージェントのペア群のうち同時参照率が最大のペアに含まれるいずれかのエージェントAiを選択することができる。これにより、同時に参照される頻度が高い2つのエージェントの性能データがそれぞれ異なる性能DBに格納されることになり、利用者からの参照要求に対する性能DB#jの応答性能の向上を図ることができる。
【0221】
また、データアクセス制御装置100によれば、複数の第2の性能DB$1〜$Kが検出された場合、グループGsに含まれる各々のエージェントの格納先DBがそれぞれ異なるように格納先DBを変更することができる。これにより、第1の性能DBの応答時間の増大化を抑制するとともに、同時に参照される頻度が高い複数のエージェントの性能データをそれぞれ異なる性能DBに格納して、利用者からの参照要求に対する性能DB#jの応答性能の向上を図ることができる。
【0222】
また、データアクセス制御装置100によれば、複数の第2の性能DB$1〜$Kが検出された場合、グループGsの中から参照回数が最大のエージェントA[f]を順次選択して、格納先DBを平均レスポンス時間が最小の性能DB$kに変更することができる。これにより、利用者からの性能データの参照要求を性能DB#1〜#mの間で効率的に分散することができる。
【0223】
これらのことから、実施の形態2にかかる性能管理システム200によれば、1性能DB当たりの参照要求数の偏りによる利用者からの参照要求に対する性能DB#jの応答性能の低下を回避することができる。また、性能管理システム200によれば、多数の利用者からの性能データの参照要求を性能DB#1〜#mの間で効果的に分散することにより、データベース資源を効率的に利用することができ、運用コストを下げることができる。
【0224】
また、性能管理システム200によれば、発動基準値αおよび抑制基準値βの値を調整して、利用者に対するサービス品質のレベルを変えることができる。これにより、レベルが異なるシステムを複数用意して、それぞれ異なる課金料を設定することで、価格に応じたレベルのサービスを提供することができる。
【0225】
(実施の形態3)
つぎに、実施の形態3にかかる性能管理システム1600について説明する。実施の形態3では、データアクセス制御装置100とは異なるコンピュータが、各サーバSV1〜SVnの性能データの収集、書き込み、クライアント端末201からの参照要求の受付処理および参照要求に対するレスポンス時間の計測を行う場合について説明する。なお、実施の形態1,2で説明した箇所と同様の箇所については説明を省略する。
【0226】
図16は、実施の形態3にかかる性能管理システムのシステム構成例を示す説明図である。図16において、性能管理システム1600は、データアクセス制御装置100と、サーバSV1〜SVnと、複数のクライアント端末201と、管理サーバ1610と、を含む構成である。性能管理システム1600において、データアクセス制御装置100、サーバSV1〜SVn、複数のクライアント端末201および管理サーバ1610は、有線または無線のネットワーク210を介して接続されている。
【0227】
ここで、管理サーバ1610は、性能DB#1〜#mにアクセス可能であり、各サーバSV1〜SVnの性能データを周期的に収集する機能を有するコンピュータである。具体的には、例えば、管理サーバ1610は、各サーバSV1〜SVnに導入された各エージェントにより定期的に収集される性能データを各サーバSV1〜SVnから受信する。これにより、各サーバSV1〜SVnの性能データを周期的に収集することができる。
【0228】
また、管理サーバ1610は、各サーバSV1〜SVnから収集した性能データを性能DB#1〜#mに書き込む機能を有する。具体的には、例えば、管理サーバ1610は、各サーバSV1〜SVnから収集した性能データをルーティングテーブル110に設定されている書込先の性能DBに書き込む。
【0229】
また、管理サーバ1610は、クライアント端末201から性能データの参照要求を受け付けて処理する機能を有する。受け付けた参照要求は、例えば、管理サーバ1610の記憶装置に記憶される。
【0230】
具体的には、例えば、管理サーバ1610は、ルーティングテーブル110を参照して、受け付けた参照要求から特定される性能データの書込先の性能DBの中から該性能データを読み出す。そして、管理サーバ1610は、読み出した性能データを要求元のクライアント端末201に送信する。
【0231】
また、管理サーバ1610は、参照要求に対するレスポンス時間を計測する機能を有する。計測された計測結果は、例えば、管理サーバ1610の記憶装置に記憶される。
【0232】
サーバSV1〜SVnは、エージェントにより収集した性能データを管理サーバ1610に送信する機能を有する。具体的には、例えば、サーバSV1〜SVnは、性能データが収集されると、その都度、該性能データを管理サーバ1610に送信する。この結果、管理サーバ1610において、各サーバSV1〜SVnの性能データが周期的に収集される。
【0233】
クライアント端末201は、利用者の操作入力により、性能データの参照要求を受け付ける。そして、クライアント端末201は、受け付けた性能データの参照要求を管理サーバ1610に送信し、その結果、管理サーバ1610から性能データを受信してディスプレイに表示する。
【0234】
データアクセス制御装置100は、管理サーバ1610を制御して、周期的に収集される各サーバSV1〜SVnの性能データを性能DB#1〜#mに書き込ませる機能を有する。具体的には、例えば、データアクセス制御装置100の変更部505が、管理サーバ1610がアクセス可能なルーティングテーブル110に設定されている、エージェントAiの格納先DBを第1の性能DBから第2の性能DBに変更する。
【0235】
また、データアクセス制御装置100が、変更部505によって変更された変更結果を管理サーバ1610に送信することにしてもよい。この場合、管理サーバ1610が、データアクセス制御装置100から受信した変更結果に基づいて、ルーティングテーブル110に設定されている、エージェントAiの格納先DBを第1の性能DBから第2の性能DBに変更する。
【0236】
この結果、以降において、周期的に収集されて性能DB#1に書き込まれていたエージェントA2の性能データが性能DB#2に書き込まれることになる。これにより、利用者からの参照要求が偏ってアクセス集中している性能DB#1の応答時間の増大化を抑制することができる。
【0237】
実施の形態3によれば、サーバSV1〜SVnおよびクライアント端末201の窓口となる管理サーバ1610を設けることで、実施の形態2で説明した場合に比べて、データアクセス制御装置100の機能を簡単化するとともに処理負荷を軽減することができる。
【0238】
なお、本実施の形態で説明したデータ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【0239】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0240】
(付記1)第1のデータ及び第2のデータを記憶する第1の記憶装置と、前記第1のデータを記憶する第2の記憶装置と、を含むシステム内のコンピュータに、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする制御プログラム。
【0241】
(付記2)前記コンピュータに、
前記第1の記憶装置に対して実行されるアクセス処理の処理時間の計測を、さらに実行させ、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記計測により得られた処理時間が所定時間よりも長く、且つ前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする付記1に記載の制御プログラム。
【0242】
(付記3)収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【0243】
(付記4)前記コンピュータに、
前記データベース群の中から、前記応答時間の長さを表す値が、前記所定の閾値(以下、「第1の閾値」という)よりも小さい第2の閾値未満となる前記第2のデータベースを検出する処理を実行させ、
前記データの書込先を変更する処理は、
前記いずれかの監視対象の状態を特徴付けるデータの書込先を、検出された前記第2のデータベースに変更することを特徴とする付記3に記載の制御プログラム。
【0244】
(付記5)前記コンピュータに、
前記第1のデータベースが書込先に設定されている監視対象群の各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から読み出される頻度に基づいて、前記監視対照群の中からいずれかの監視対象を選択する処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする付記3または4に記載の制御プログラム。
【0245】
(付記6)前記いずれかの監視対象を選択する処理は、
前記監視対象群のうち前記第1のデータベースの中から読み出される前記頻度が最大の監視対象を選択し、
前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、選択された前記監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースのうち前記応答時間の長さを表す値が最小のデータベースに変更することを特徴とする付記5に記載の制御プログラム。
【0246】
(付記7)前記コンピュータに、
互いに異なる監視対象のペアごとに、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から同時に読み出される頻度を算出し、
前記第1のデータベースの中から同時に読み出される前記ペアごとの頻度に基づいて、当該頻度が第3の閾値以上となるペアを特定し、
特定した前記ペアに含まれる少なくともいずれかの監視対象を選択する、処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする付記3または4に記載の制御プログラム。
【0247】
(付記8)前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、特定された前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先がそれぞれ異なるように、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースに変更することを特徴とする付記7に記載の制御プログラム。
【0248】
(付記9)前記コンピュータに、
前記応答時間の長さを表す値として、前記データベース群の各々のデータベースに格納されているデータの読出要求に対する応答時間に基づいて、前記各々のデータベースの応答時間の平均値を算出する処理を実行させ、
前記第1のデータベースを検出する処理は、
前記データベース群の中から、算出された前記応答時間の長さを表す値が前記第1の閾値以上となる前記第1のデータベースを検出することを特徴とする付記3〜8のいずれか一つに記載の制御プログラム。
【0249】
(付記10)前記第1のデータベースを検出する処理は、
前記応答時間の長さを表す値が前記第1の閾値以上となるデータベースが複数存在する場合、前記データベース群の中から、前記応答時間の長さを表す値が最大の前記第1のデータベースを検出することを特徴とする付記3〜9のいずれか一つに記載の制御プログラム。
【0250】
(付記11)前記コンピュータに、
前記いずれかの監視対象の状態を特徴付けるデータの書込先が前記第2のデータベースに変更された後、前記いずれかの監視対象の状態を特徴付けるデータを取得し、
取得した前記いずれかの監視対象の状態を特徴付けるデータを前記第2のデータベースに書き込む、
処理を実行させることを特徴とする付記3〜10のいずれか一つに記載の制御プログラム。
【0251】
(付記12)各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【0252】
(付記13)各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込む書込部と、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【0253】
(付記14)各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるデータアクセス制御装置であって、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【0254】
(付記15)収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【0255】
(付記16)各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【符号の説明】
【0256】
100 データアクセス制御装置
110 ルーティングテーブル
201 クライアント端末
501 取得部
502 第1の算出部
503 検出部
504 選択部
505 変更部
506 第2の算出部
507 特定部
A1〜An,Ai エージェント
SV1〜SVn,SVi サーバ
#1〜#m,#j 性能DB
【特許請求の範囲】
【請求項1】
第1のデータ及び第2のデータを記憶する第1の記憶装置と、前記第1のデータを記憶する第2の記憶装置と、を含むシステム内のコンピュータに、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする制御プログラム。
【請求項2】
前記コンピュータに、
前記第1の記憶装置に対して実行されるアクセス処理の処理時間の計測を、さらに実行させ、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記計測により得られた処理時間が所定時間よりも長く、且つ前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする請求項1に記載の制御プログラム。
【請求項3】
収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【請求項4】
前記コンピュータに、
前記データベース群の中から、前記応答時間の長さを表す値が、前記所定の閾値(以下、「第1の閾値」という)よりも小さい第2の閾値未満となる前記第2のデータベースを検出する処理を実行させ、
前記データの書込先を変更する処理は、
前記いずれかの監視対象の状態を特徴付けるデータの書込先を、検出された前記第2のデータベースに変更することを特徴とする請求項3に記載の制御プログラム。
【請求項5】
前記コンピュータに、
前記第1のデータベースが書込先に設定されている監視対象群の各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から読み出される頻度に基づいて、前記監視対照群の中からいずれかの監視対象を選択する処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする請求項3または4に記載の制御プログラム。
【請求項6】
前記いずれかの監視対象を選択する処理は、
前記監視対象群のうち前記第1のデータベースの中から読み出される前記頻度が最大の監視対象を選択し、
前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、選択された前記監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースのうち前記応答時間の長さを表す値が最小のデータベースに変更することを特徴とする請求項5に記載の制御プログラム。
【請求項7】
前記コンピュータに、
互いに異なる監視対象のペアごとに、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から同時に読み出される頻度を算出し、
前記第1のデータベースの中から同時に読み出される前記ペアごとの頻度に基づいて、当該頻度が第3の閾値以上となるペアを特定し、
特定した前記ペアに含まれる少なくともいずれかの監視対象を選択する、処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする請求項3または4に記載の制御プログラム。
【請求項8】
前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、特定された前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先がそれぞれ異なるように、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースに変更することを特徴とする請求項7に記載の制御プログラム。
【請求項9】
各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【請求項10】
収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込む書込部と、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【請求項11】
各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるデータアクセス制御装置であって、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【請求項12】
収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【請求項13】
各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【請求項1】
第1のデータ及び第2のデータを記憶する第1の記憶装置と、前記第1のデータを記憶する第2の記憶装置と、を含むシステム内のコンピュータに、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする制御プログラム。
【請求項2】
前記コンピュータに、
前記第1の記憶装置に対して実行されるアクセス処理の処理時間の計測を、さらに実行させ、
前記第1のデータ及び前記第2のデータの双方についてのアクセス要求に応じたアクセス処理を前記第1の記憶装置に対して実行させた後に、前記計測により得られた処理時間が所定時間よりも長く、且つ前記第1のデータについてのアクセス要求を受けた場合に、前記第1のデータについての前記アクセス要求に応じたアクセス処理を前記第2の記憶装置に対して実行させる制御、
を実行させることを特徴とする請求項1に記載の制御プログラム。
【請求項3】
収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【請求項4】
前記コンピュータに、
前記データベース群の中から、前記応答時間の長さを表す値が、前記所定の閾値(以下、「第1の閾値」という)よりも小さい第2の閾値未満となる前記第2のデータベースを検出する処理を実行させ、
前記データの書込先を変更する処理は、
前記いずれかの監視対象の状態を特徴付けるデータの書込先を、検出された前記第2のデータベースに変更することを特徴とする請求項3に記載の制御プログラム。
【請求項5】
前記コンピュータに、
前記第1のデータベースが書込先に設定されている監視対象群の各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から読み出される頻度に基づいて、前記監視対照群の中からいずれかの監視対象を選択する処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする請求項3または4に記載の制御プログラム。
【請求項6】
前記いずれかの監視対象を選択する処理は、
前記監視対象群のうち前記第1のデータベースの中から読み出される前記頻度が最大の監視対象を選択し、
前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、選択された前記監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースのうち前記応答時間の長さを表す値が最小のデータベースに変更することを特徴とする請求項5に記載の制御プログラム。
【請求項7】
前記コンピュータに、
互いに異なる監視対象のペアごとに、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータが前記第1のデータベースの中から同時に読み出される頻度を算出し、
前記第1のデータベースの中から同時に読み出される前記ペアごとの頻度に基づいて、当該頻度が第3の閾値以上となるペアを特定し、
特定した前記ペアに含まれる少なくともいずれかの監視対象を選択する、処理を実行させ、
前記データの書込先を変更する処理は、
選択された前記監視対象の状態を特徴付けるデータの書込先を、前記第2のデータベースに変更することを特徴とする請求項3または4に記載の制御プログラム。
【請求項8】
前記データの書込先を変更する処理は、
前記第2のデータベースが複数存在する場合、特定された前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先がそれぞれ異なるように、前記ペアに含まれる各々の監視対象の状態を特徴付けるデータの書込先を、複数存在する前記第2のデータベースに変更することを特徴とする請求項7に記載の制御プログラム。
【請求項9】
各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータに、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行させることを特徴とする制御プログラム。
【請求項10】
収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込む書込部と、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【請求項11】
各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるデータアクセス制御装置であって、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出する検出部と、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する変更部と、
を備えることを特徴とするデータアクセス制御装置。
【請求項12】
収集される各々の監視対象の状態に関するデータを、データベース群のうち書込先に設定されているデータベースに書き込むコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【請求項13】
各々の監視対象の状態を特徴付けるデータを収集する情報処理装置を制御して、データベース群のうち書込先に設定されているデータベースに前記データを書き込ませるコンピュータが、
前記データベース群の中から、前記データの読出要求に対する応答時間の長さを表す値が所定の閾値以上となる第1のデータベースを検出し、
前記第1のデータベースが書込先に設定されている少なくともいずれかの監視対象の状態を特徴付けるデータの書込先を、前記データベース群のうちの前記第1のデータベースとは異なる第2のデータベースに変更する、
処理を実行することを特徴とするデータ制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2013−80294(P2013−80294A)
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願番号】特願2011−218709(P2011−218709)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]