JP2006209165A - 同時実行多重度調整システム及び方法 - Google Patents
同時実行多重度調整システム及び方法 Download PDFInfo
- Publication number
- JP2006209165A JP2006209165A JP2005016250A JP2005016250A JP2006209165A JP 2006209165 A JP2006209165 A JP 2006209165A JP 2005016250 A JP2005016250 A JP 2005016250A JP 2005016250 A JP2005016250 A JP 2005016250A JP 2006209165 A JP2006209165 A JP 2006209165A
- Authority
- JP
- Japan
- Prior art keywords
- multiplicity
- request
- component
- information
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】
本発明は、性能とシステム安定稼動を確保するために、システムに対するリクエストの同時実行多重度の設計を支援する多重度調整システムを提供することにある。
【解決手段】
多重度調整エージェント110、112が監視対象システム構成要素113、115を含むサブシステム108からリクエスト情報114を収集する。次に、サブシステム別多重度調整サーバ105は、各サブシステム108から収集したリクエスト情報を、構成要素とリクエストパス毎に分類・マージする。統合多重度解析サーバ104は、そのリクエスト情報に基づいて必要多重度を算出する。
【選択図】 図1
本発明は、性能とシステム安定稼動を確保するために、システムに対するリクエストの同時実行多重度の設計を支援する多重度調整システムを提供することにある。
【解決手段】
多重度調整エージェント110、112が監視対象システム構成要素113、115を含むサブシステム108からリクエスト情報114を収集する。次に、サブシステム別多重度調整サーバ105は、各サブシステム108から収集したリクエスト情報を、構成要素とリクエストパス毎に分類・マージする。統合多重度解析サーバ104は、そのリクエスト情報に基づいて必要多重度を算出する。
【選択図】 図1
Description
本発明は、複数のサブシステムに分割された分散システム(特にWebシステム)において、リクエストを同時に実行することができる上限値である同時実行多重度を決めるための同時実行多重度調整システム及び方法に関する。
複数のサブシステムにより機能分割された分散システム(特にWebシステム)は、システム構成要素が多く複雑な構造となる。システムを利用するユーザからは仮想的に一つに見えるシステムであっても、サーバ側の構成は、業務の種類、開発担当部署やサブネットワーク等の論理的もしくは物理的な境界により分割されており、こうしたサブシステムと呼ばれる構成要素を組み合わせることにより、トータルなシステムを実現している。
このため、性能ボトルネック等の問題となる原因も複雑となり、連携する他システムへの影響も考慮した、適当な多重度の設計を行うことは容易ではない。一方で、システムを安定稼動させ、かつ、性能要件を満たす最適なシステム環境構築することが望ましい。すなわち、性能ボトルネックとシステム安定性の2つに対して、最適なトレードオフを考慮した設定を行うことが望ましい。
特許文献1は、性能ボトルネックを解決するために、ジョブ入力キューから同時実行可能なジョブ数(ジョブ実行多重度)を設定し、測定されたサーバ負荷量に対応してジョブ実行多重度を変更する技術を開示している。また、特許文献2は、負荷状態通知に基づいて負荷状態通知を発生したサービス計算機の中で最軽負荷のサービス計算機を求め、この最軽負荷サービス計算機と接続する技術を開示している。
しかし、上記の特許文献に記載された技術では、システムの状態によっては、システムの安定稼動とリソースの有効利用の両観点を満足させることができない。
例えば、特許文献1においては、ジョブのCPU利用率が大きくなれば(サーバへの負荷が大きくなれば)、ジョブ実行多重度を小さくする。ここで、Webシステム(などの、複数のサブシステムにより機能分割された分散システム)のようなオンラインシステムでは、ジョブの発生率もしくはジョブの投入数が小さくなる場合(サーバへの負荷が小さくなる場合)においては、ジョブ実行多重度を大きくする。しかしながら、リソース有効利用の観点を考慮すると、実際には、むしろ当該ジョブのジョブ実行多重度を小さくし、他のジョブに当該サーバリソースを割り当てる(他のジョブのジョブ実行多重度を大きくする)ことが望ましい。つまり、サーバの負荷を見ただけでは、システムの安定稼動とリソースの有効利用の両観点を満足させるようなジョブ実行多重度を決めることはできないという問題がある。
また、特許文献2では、リクエストが複数のシステム構成要素を経由する場合に、各構成要素のジョブ実行多重度を決定することができない。また、リソース不足やシステム利用者の増加によるジョブ数増大に対処することができない。
本発明の目的は、システムの安定稼動を確保する同時実行多重度(以下、単に多重度)の設計を支援する同時多重度調整システムを提供ことにある。また、本発明の他の目的は、リソース不足やシステム利用者の増加によりリクエスト発生率(単位時間当たりのリクエストの発生数)が増大した場合に対応できる同時多重度調整システムを提供することにある。
上記目的を達成するために、本発明は、監視対象システムに対するリクエストの多重度を調整する多重度調整システムであって、監視対象システムに含まれる構成要素に対するリクエストをもとに、該構成要素ごとのリクエストの多重度を判断し、前記リクエストの多重度に関する情報を前記多重度調整エージェントから取得して、前記構成要素ごとのリクエスト情報として記憶する。そして、記憶された構成要素ごとのリクエスト情報を取得し、該取得したリクエスト情報をもとに、前記構成要素ごとのリクエストの多重度を解析するとともに、該解析結果に応じて前記構成要素ごとのリクエストの多重度を変更する構成を採用する。
本発明によれば、システムの性能確保とシステム安定稼動とを両立させる最適なシステム構成およびパラメタ値を導き出すシステム設計を支援することができる。また、サーバの安定稼動を確保しつつ、サーバリソースの再配分を行うことができる。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
図1は、本実施例におけるシステム構成の概要を示す。図1に示すように、同時実行多重度調整システム103が監視対象システム107を監視する構成となっている。
監視対象システム107は、複数のサブシステムから構成されている。これらのサブシステムは、ネットワークで接続された監視対象システム利用端末106により、利用することができる。図1では、複数のサブシステムのうち、サブシステム108の構成を示す。サブシステム108は、監視対象システム構成要素113、115と、監視対象システム構成要素113、115を個別に監視する複数の多重度調整エージェント110、112からなる。さらに監視対象システム構成要素113、115は、多重度を制限するためのキュー109、111を含む。また、多重度調整エージェント110、112は、監視対象システム構成要素113、115から得た情報を格納するリクエスト情報データベース114と接続される。
また、同時実行多重度調整システム103は、サブシステム別多重度調整サーバ105、統合多重度解析サーバ104からなる。サブシステム別多重度調整サーバ105は、サブシステムごとに設けられ、多重度調整エージェント110、112を通じて、サブシステム108を個別に監視し、リクエスト情報の収集を行う。統合多重度解析サーバ104は、複数の多重度調整サーバ105を統合する。多重度調整端末102は、統合多重度解析サーバ104と接続している。監視対象システム107の運用者101は、多重度調整端末102を通じて、統合多重度解析サーバ104から多重度の設計支援情報を得ることができる。
以上のように、監視対象システム構成要素113、115を個別に監視することで、各構成要素の多重度を決定するのに必要な情報を収集することで、システム全体の最適な多重度の設計作業を支援することができる。また、各製品に分散する多重度設定のための定義情報を、一箇所で製品横断的に管理することができる。
図2は、図1に示すシステムにおける処理の流れと各機能モジュールとの関係を示す概略シーケンス図である。図2の左側に示す太線で囲まれた処理が処理の概要であり、それぞれのステップの右側の点線で囲まれた処理が、それぞれの処理の詳細である。また、上段に記載された端末またはサーバ等が行う処理であることを示す。なお、本実施例において、多重度の「修正」と「変更」の定義はそれぞれ以下のとおりである。
「修正」:統合多重度解析サーバ104上での仮想的な多重度の設定処理であり、実際にはまだその多重度は設定されていない。
「変更」:監視対象システム107の構成要素の多重度を実際に設定する処理である。
「修正」:統合多重度解析サーバ104上での仮想的な多重度の設定処理であり、実際にはまだその多重度は設定されていない。
「変更」:監視対象システム107の構成要素の多重度を実際に設定する処理である。
図2において、まず、実測値収集処理が実行される(ステップ201)。具体的には、多重度調整エージェント110、112が実測値の収集処理を実行し(207)、監視対象システム107から、実際のシステム動作により発生したリクエスト関連の実測値を収集し、収集したリクエスト情報の実測値を、サブシステム別多重度調整サーバ105に対して送信する。次に、サブシステム別多重度調整サーバ105は、実測値と設定値の収集処理を実行し(206)、統合多重度解析サーバ104に対して実測値と各構成要素の多重度設定値を送信する。ステップ201の詳細は、後述する図12において説明する。
ステップ201の次に、監視対象システム107のボトルネック解析処理が実行される(ステップ202)。具体的には、統合多重度解析サーバ104は、ステップ201においてサブシステム別多重度調整サーバ105から収集した情報に基づいて、ボトルネックの自動解析処理を実行する(208)。統合多重度解析サーバ104は、その解析結果を多重度調整端末102に送信し、多重度調整端末102はその解析結果情報を表示する(209)。ステップ202の詳細は、後述する図13〜17において説明する。
ステップ202の次に、多重度修正処理が実行される(ステップ203)。具体的には、監視対象システム運用者は、前述したボトルネック解析結果情報に基づいて適切な多重度を決定し、端末の多重度修正/変更画面320から多重度を修正する。多重度調整端末102は、監視対象システム運用者からの入力に基づき、多重度の修正指示を統合多重度解析サーバ104に送信する(210)。そして、統合多重度解析サーバ104は、送信された情報に基づいて、多重度の修正処理を行う(211)。ステップ203の詳細は、後述する図18において説明する。
ステップ203の次に、影響解析処理が実行される(ステップ204)。具体的には、統合多重度解析サーバ104は、ステップ203で修正された多重度に基づいて、影響の自動解析処理を行い(212)、統合多重度解析サーバ104は、その影響解析結果を多重度調整端末102に送信し、多重度調整端末102はその影響解析結果情報を表示する(209)。ステップ204の詳細は、後述する図19〜22において説明する。
ステップ204の次に、多重度変更処理が実行される(ステップ205)。具体的には、監視対象システム運用者が、ステップ204で表示された影響解析結果情報に基づいて、多重度調整端末102の多重度修正/変更画面320に多重度を入力すると、多重度調整端末102は、入力された多重度変更情報を統合多重度解析サーバ104に送信する(214)。そして、統合多重度解析サーバ104が、サブシステム別多重度調整サーバ105に対して多重度変更依頼を送信し(215)、サブシステム別多重度調整サーバ105は、監視対象システム107の多重度設定値を引き上げた後、多重度調整エージェント110、112に多重度の変更を指示する(216)。ステップ204の詳細は、後述する図24において説明する。
以上の処理により、各構成要素の多重度を決定するのに必要な情報収集、収集した情報に基づいてボトルネックとなる構成要素の検索(ボトルネック解析処理)、ボトルネックとなる構成要素の多重度を仮修正することにより、他の構成要素への多重度変更の影響を解析(影響解析処理)等を行うことができ、システム全体に最適な多重度の設計支援を行うことができる。また、多重度が決まれば、当該多重度を満たすように、システム構成を自動変更することが可能となる。
なお、上記ステップ206及び207における実測値や設定値の収集処理は、Push型処理(情報発生元が取得した情報を情報収集先へ送信する処理)であるが、Pull型処理(情報収集先が、情報発生元が取得した情報を収集する処理)でもよい。Push型処理は、リアルタイムにリクエスト情報を収集できるので、多重度を動的に最適化することで、サーバリソースを動的に再配分できるという効果がある。一方、Pull型処理は、監視対象システム運用・管理者が必要に応じて、必要な期間の多重度設計のための情報を収集して、予め固定化した最適な多重度設定値を決めることができる。このため、多重度の動的な変更によるシステムへのオーバヘッドを軽減することで、システム性能確保ができるという効果がある。
図3は、図1に示すシステム構成を詳細に示した図である。図3内の情報や定義の意味は凡例9999に示してある。本実施例では、ネットワークで接続された端末102により操作可能な統合多重度解析サーバ104が、サブシステム別多重度調整サーバ105を通じて、各サブシステム108を管理する構成となっている。サブシステム108は、ネットワークで接続された監視対象システムの構成要素113、115と、これら構成要素113、115を監視する多重度調整エージェント110、112からなっている。多重度調整エージェント110は、送信側の監視対象システム構成要素113を監視し、多重度調整エージェント112は、受信側の監視対象システム構成要素115を監視する。監視対象システムの構成要素113、115とは、具体的には、スレッド、インスタンス、負荷分散器、HTTPデーモン、DBMS等の機能モジュールを指し、多重度調整エージェント110、112が、直接、多重度制御や負荷分散処理を行うことができるシステム構成要素のことをいう。なお、構成要素113、115と多重度調整エージェント110、112の包含関係が図1と図3とでは異なっているが、どちらの構成であっても本実施例の処理に本質的な相違はない。
多重度調整エージェント110は、送信多重度制御モジュール301および送信リクエスト計測モジュール302を含む。送信多重度制御モジュール301は、多重度変更処理(図2のステップ205)において変更された多重度設定値に基づき、受信側の監視対象システム構成要素115への負荷分散処理と多重度制御処理を行う。送信リクエスト計測モジュール302は、実測値の収集処理(図2のステップ207)を実行し、具体的には、取得する実測値の送信定義303に基づいて、送信側の監視対象システム構成要素113から、時間帯/リクエストパス毎の未送信リクエスト情報304を取得する。ここで、リクエストパスとは、システム構成要素を通過する経路を示すリクエストのパスを示す。リクエストパスを表現するデータ構造の詳細については、後述する図9において、リクエストパス定義918として説明する。
なお、取得する実測値の送信定義303は、取得すべき情報を定義した定義情報であり、後述する図9に詳細な構造を示す。時間帯/リクエストパス毎の未送信リクエスト情報304は、送信リクエスト計測モジュール302が取得した未送信のリクエストを、時間帯毎/リクエストパス毎に分類したものである。
多重度調整エージェント112は、受信多重度制御モジュール305及び受信リクエスト計測モジュール307を含む。受信多重度制御モジュール305は、受信側の監視対象システム構成要素115への負荷分散処理と多重度制御処理を行い、受信リクエスト計測モジュール307は、受信側の監視対象システム構成要素115へのリクエストから、時間帯/リクエストパス毎の未処理リクエスト情報309と時間帯/リクエストパス毎の処理済リクエスト情報310を取得する。
なお、自構成要素のサーバ負荷情報306は、受信側の監視対象システム構成要素115の負荷状況を示す情報である。取得する実測値の受信定義308は、取得すべき情報を定義した定義情報である(図9に詳細な構造を示す)。時間帯/リクエストパス毎の未処理リクエスト情報309は、受信リクエスト計測モジュール307が取得した未処理のリクエスとを、時間帯/リクエストパス毎に分類したものであり、時間帯/リクエストパス毎の処理済リクエスト情報310は、受信リクエスト計測モジュール307が取得した処理済のリクエストを、時間帯/リクエストパス毎に分類したものである。自構成要素の多重度定義311は、受信側の監視対象システム構成要素115の同時実行多重度に関する情報であり、後述する図9に詳細な構造を示す。
ここで、多重度調整エージェント110及び112の送信多重度制御モジュール、送信リクエスト計測モジュール302、受信多重度制御モジュール305及び受信リクエスト計測モジュール307について、詳細に説明する。
まず、送信多重度制御モジュール301について説明する。送信側の監視対象システム構成要素113が、受信側の業務ロジックを実行する構成要素115に対してリクエストの送信を試みると、送信多重度制御モジュール301は、一旦、そのリクエストをトラップする。そして、自構成要素のサーバ負荷情報306と自構成要素の多重度定義311に基づいて、そのリクエストを送信すべきか否かを判断する。送信すると判断した場合には、クラスタリングされた構成要素115のどの構成要素に送信すべきかを判断することで、負荷分散と多重度制御を行う。
次に、送信リクエスト計測モジュール302について説明する。送信多重度制御モジュール301が、受信したリクエストの送信は不可であると判断した場合には、送信リクエスト計測モジュール302は、取得する実測値の送信定義303に基づいて、そのリクエストの情報から必要な情報を取得する。そして、当該取得した情報を時間帯・リクエストパス毎の未送信リクエスト情報304に格納する。最後に、送信側の監視対象システム構成要素113にエラーリターンする。
次に、受信多重度制御モジュール305について説明する。送信側の監視対象システム構成要素113から、受信側の監視対象システム構成要素115へのリクエストが送信されると、受信多重度制御モジュール305は、一旦、そのリクエストをトラップする。そして、自構成要素のサーバ負荷情報306と自構成要素の多重度定義311に基づいて、そのリクエストを処理すべきか否かを判断する。処理すると判断した場合には、クラスタリングされた構成要素115のどの構成要素に送信すべきかを判断することで、負荷分散と多重度制御を行う。
最後に、受信リクエスト計測モジュール307について説明する。受信多重度制御モジュール305が、受信したリクエストの処理は不可と判断した場合には、受信リクエスト計測モジュール307は、取得する実測値の受信定義308に基づいて、そのリクエストの情報から必要な情報を取得する。そして、当該取得した情報を時間帯・リクエストパス毎の未処理リクエスト情報309に格納する。最後に、送信側の監視対象システム構成要素113にエラーリターンする。一方、受信多重度制御モジュール305が受信したリクエストを処理すべきと判断した場合は、受信リクエスト計測モジュール307は、取得する実測値の受信定義308に基づいて、そのリクエストの情報から必要な情報を取得する。そして、取得した情報を時間帯・リクエストパス毎の処理済リクエスト情報310に格納する。最後に、受信側の監視対象システム構成要素115に対して、そのリクエストを送信する。
次に、サブシステム別多重度調整サーバ105は、サブシステムごとのリクエスト情報を収集するサブシステム別実測値収集モジュール312と、多重度調整エージェント110、112に対して、多重度の変更指示を行う多重度変更指示モジュール315を含む。
サブシステム別実測値収集モジュール312は、サブシステム内部構成定義316に基づいて、多重度調整エージェント110及び112から、時間帯・リクエストパス毎の未送信リクエスト情報304と時間帯・リクエストパス毎の未処理リクエスト情報309を収集し、マージし、構成要素毎に分類して、構成要素・時間帯・リクエストパス毎の未到達リクエスト情報313に格納する。さらに、サブシステム別実測値収集モジュール312は、多重度調整エージェント110、112から時間帯・リクエストパス毎の処理済リクエスト情報310を収集し、構成要素毎に分類して、構成要素・時間帯・リクエストパス毎の処理済リクエスト情報314に格納する。
多重度変更指示モジュール315は、統合多重度解析サーバ104から多重度変更指示を受け付けると、多重度設定メタ定義317に基づいて、多重度変更対象である自構成要素の多重度定義311の多重度設定値を変更する。
ここで、サブシステム内部構成定義316は、サブシステム内の複数の構成要素間の関係と構造を記録した定義情報であり、後述する図8に詳細な構造を示す。多重度設定メタ定義317は、どの定義ファイルのどの項目が多重度パラメタであるのかを示す定義情報であり、後述する図9において、詳細な構造を説明する。
最後に、統合多重度解析サーバ104の概要を説明する。統合多重度解析サーバ104は、リクエスト情報を収集する実測値収集モジュール322、監視対象システムのボトルネック解析を行うボトルネック解析モジュール321、多重度を仮修正する多重度修正モジュール326、仮修正した多重度が監視対象システム全体におよぼす影響を解析する影響解析モジュール324、監視対象システムの実際の多重度設定値を実変更する多重度変更モジュール328からなる。
また、多重度調整エージェント110及び112の多重度制御モジュール301、305における負荷分散処理は必須ではなく、送信側もしくは受信側のどちらか一方で行うのみでもよい。また、負荷分散処理と多重度制御を行う機能は、既存のアプリケーション基盤製品により提供されることもある。なお、アプリケーション基盤を用いる場合には、多重度制御モジュール301、305は、プラグインやライブラリといった形式により、監視対象システム構成要素113、115の内部に配置されることが多い(図1の構成)。一方、新たに多重度制御モジュール301、305を実装する場合には、監視対象システム構成要素113、115の外部に配置することで実現可能である(図3の構成)。さらに、送信側での多重度制御の実装が難しければ、受信側のみにて多重度制御を行ってもよい。この場合には、送信側にて未送信リクエストが発生することはないので、送信リクエスト計測モジュール302は不要となる。
また、リクエスト情報を収集するタイミングについては、リクエスト計測モジュール302、307が定期的もしくはリクエストが発生する度に、サブシステム別実測値収集モジュール312に送信してもよく、またはサブシステム別実測値収集モジュール312が定期的に収集してもよい。リクエスト情報の収集は、既存のプロファイラ製品によっても実現可能である。プロファイラを用いる場合には、リクエスト計測モジュール302、307は、プラグインやライブラリとして利用、あるいはプログラム変更による埋め込みといった方法により、監視対象システム構成要素113、115の内部に配置されることが多い(図1の構成)。一方、新たにリクエスト計測モジュール302、307を実装する場合には、監視対象システム構成要素113、115の外部に配置することで実現可能である(図3の構成)。
また、自構成要素の多重度定義311を多重度制御モジュール301、305に反映するタイミングについては、多重度制御モジュール301、305が定期的に多重度設定値をリロードしてもよい。また、多重度変更指示モジュール315が多重度設定値を変更する度に、多重度制御モジュール301、305に当該多重度設定値をリロードするよう指示してもよい。ここで、処理中のリクエストに影響を与えないようにするためには、多重度設定値のリロード処理は、以下の手順で行うことが望ましい。つまり、(1)多重度制御モジュール301、305へのリクエストの受付を中断(閉塞)する。(2)処理中(仕掛り中)のリクエストの処理が全て終了するまで待機する。(3)処理中のリクエストがなくなった時点において、多重度設定値をリロードする。(4)最後に、閉塞を解除する。
以上のように、多重度制御モジュール301、305や送信リクエスト計測モジュール302の数を変更したり、既存製品を利用したりすることで、システムに求められる可用性や性能と監視対象システム運用・管理者の運用負荷とのバランスを考慮した構成をとることができる。このため、性能確保とシステム安定稼動とを両立させる最適なシステム構成およびパラメタ値を導き出す設計作業を支援することができるという効果がある。さらに、リクエストの収集タイミングの間隔を短くし、多重度設定値を自動更新することにより、リアルタイムにサーバリソースの動的再配分ができるという効果がある。
図4は、監視対象システム107の一例である銀行システム401の全体構成を示したシステム構成図である。銀行システム401などの大規模システムでは、さらに業務別に特化したサブシステムをもっており、図4では、融資システム402、営業店システム404、金利・相場システム403、担保・保証システム405が、それぞれ図1のサブシステム108に相当する。図4では、銀行システム401におけるリクエストの通過パスの一例を示しながら、銀行システム401の全体構造を説明していく。
監視対象システム利用端末106(ブラウザ)から発行されたリクエストは、融資システム402、もしくは営業店システム404を通じて、金利・相場システム403、もしくは担保・保証システム405へと到達する。担保・保証システム405に届いたリクエストは、担保・保証用負荷分散器406を通じて、担保Web407、保証Web411に振り分けられる。
担保Web407に届いたリクエストは、担保サーバ408、担保DB409へと到達する。一方、保証Web411に届いたリクエストは、保証照会スレッド416、保証登録スレッド419へと振り分けられる。保証照会スレッド416に届いたリクエストは、必要に応じて、給与所得者保証インスタンス417もしくは保証登録スレッド419にアクセスし、給与所得者保証インスタンス417はさらに保証DB427にアクセスする。一方、保証登録スレッド419に届いたリクエストは、登録AP420による業務処理を実行する前後もしくは最中に、必要に応じて、自営業者保証インスタンス423にアクセスする。
自営業者保証インスタンス423に届いたリクエストは、自営業者照会AP424もしくは自営業者登録AP426による業務処理を実行する前後もしくは最中に、必要に応じて、保証DB427にアクセスする。
なお、本実施例の銀行システム401では、ブラウザ、負荷分散器、Webサーバ、APサーバ、DBサーバの接続関係を図4のように記載しているが、実際の接続関係は、全て多対多とすることが可能である。また、図4の銀行システム401では、ブラウザからWebサーバの間をHTTPで接続する例を記載しているが、FTP等の負荷分散器がサポートする他のプロトコルを利用してもよい。また、負荷分散器がないシステム構成も可能である。さらに、APサーバとプロセスの関係、プロセスとスレッドもしくはインスタンスの関係、スレッドもしくはインスタンスと業務APの関係も多対多とすることができる。
以上のように、本発明は、以下の図12から図24に示す方法を用いることにより、銀行システム401がどのような複雑な構成であっても、最適な多重度の設計を支援することができるという効果がある。
なお、本実施例においては、図4におけるシステム構成要素は、全て論理的に異なる要素として記載している。例えば、担保サーバ408と保証サーバ414は、論理的に異なる業務アプリケーションが稼動しているものとして記載している。したがって、APサーバのクラスタリング等の可用性向上策により同一種類のAPサーバが複数稼動するような物理的に分割された複数の構成要素は、全て同一構成要素とみなして、一つの構成要素として表現している。これは、クラスタリングに代表される可用性向上策は、同時に、スケールアウトによる一種の臨界多重度増加策である。本実施例のように多重度に着目して論理構成を考える(構成要素の境界を考える)ケースでは、同一構成要素としてみなすことができるためである。なお、臨界多重度とは、スループットが飽和し、サーバが安定稼動できなくなる多重度をいう。
図5から図7にかけては、ボトルネック解析後、および影響解析後に表示される結果情報の画面イメージを示す。
図5は、リクエスト発生率・多重度表示/設定画面501を示す。なお、リクエスト発生率とは、単位時間当たりのリクエストの発生数をいう。リクエスト発生率・多重度表示/設定画面501は、主に、(1)各種操作を行うツールバー503、(2)システム間構成定義329(図3)とサブシステム内部構成定義群330(図3)に基づいて、システムの構成要素を上位レベルから下位レベルへの階層別ツリーとして表示するシステム構成ツリー表示画面502、(3)システム構成ツリー表示画面502で選択した構成要素(=親構成要素)の名称を表示する構成要素名称表示エリア508及び親構成要素の階層レベルの名称を表示する階層レベル名称表示エリア509、(4)同じ階層のシステムの構成要素がどのように連携しているのかを表示する連携表示画面513、(5)ボトルネック解析結果情報318(図3)もしくは影響解析結果319(図3)を表示する解析結果表示画面514、(6)多重度を修正/変更する多重度修正/変更画面531の各部分から構成される。以下に、それぞれの部分について詳細に説明する。
(1)ツールバー503は、実測値収集処理(図2のステップ201)を行う際に押下する実測値収集ボタン504、ボトルネック解析処理(図2のステップ202)を行う際に押下するボトルネック解析ボタン505、影響解析処理(図2のステップ204)を行う際に押下する影響解析ボタン506、影響解析処理(図2のステップ204)を特定の構成要素内の影響だけを解析する場合に押下する要素毎影響解析ボタン507(図5の例では、特定の構成要素として担保・保証システム6708が選択されている。)、どの時間帯に関する結果情報を表示したり、また表示時間帯を変更したりする場合に押下する時間帯リストボックス510から構成される。
なお、システム全体の影響解析処理204の処理時間が長い場合には、要素毎影響解析ボタン507を利用することにより、短い時間で、局所的な影響を把握することができ、その後、影響解析ボタン506を利用して、システム全体の影響を把握することで、多重度の設計作業時間を短縮する、すなわち、多重度によるシステムチューニングのためのトライ&エラーの試行回数を少なくできるという効果がある。
(2)システム構成ツリー表示画面502は、システム構成要素を様々なレベル(システム、サブシステム、ノード(サーバ)、プロセス、コンポーネント(スレッドやインスタンス)、業務AP)に分類し、各構成要素間の包含関係をツリーとして表現したものである。この画面502内の各四角形の枠は、システムの構成要素を表現しており、上位レベルから下位レベルへと、階層が深くなるように構成要素を表示している。各枠内には、構成要素名称を表示している。この画面502の構成要素は、図4に示す銀行システムを例として表示している。
(2)システム構成ツリー表示画面502は、システム構成要素を様々なレベル(システム、サブシステム、ノード(サーバ)、プロセス、コンポーネント(スレッドやインスタンス)、業務AP)に分類し、各構成要素間の包含関係をツリーとして表現したものである。この画面502内の各四角形の枠は、システムの構成要素を表現しており、上位レベルから下位レベルへと、階層が深くなるように構成要素を表示している。各枠内には、構成要素名称を表示している。この画面502の構成要素は、図4に示す銀行システムを例として表示している。
システム構成ツリー表示画面502により、監視対象システム運用・管理者は、システムの全体構造を視覚的に把握することができ、システム構造の理解を早めることで、設計作業を支援することができる。
また、システム構成ツリー表示画面502において、担保・保証システムアイコン6708は太枠線で囲まれているが、これは、担保・保証システム405を構成するノードレベルの構成要素(担保・保証システムの下のレベルの子構成要素)の連携状況を連携表示画面513に表示していることを示す。このように、連携表示画面513に表示されている構成要素をシステム構成ツリー表示画面502中で太枠線等により強調表示することで、当該構成要素のシステム全体における位置づけを視覚的に把握することができる。結果として、多重度を最適化すべき範囲を理解し易くすることで、設計作業を支援することができる。さらに、+ボタンを押下すると、当該システム構成要素の下のレベルの子構成要素の一覧が展開され表示され、−ボタンを押下すると、当該システム構成要素の配下の子構成要素の一覧が閉じる。
(3)図5において、構成要素名称表示エリア508には、システム構成ツリー表示画面502において選択された親構成要素の名称である“担保・保証システム”が表示され、階層レベル名称表示エリア509には、その親構成要素の階層レベルの名称である“サブシステム”と表示されている。
(4)連携表示画面513は、システム構成ツリー表示画面502において選択された構成要素(図5の場合は、担保・保証システム6708)の内部構造を示す。連携表示画面513に表示された各構成要素にマウスのポインタを移動することで、当該構成要素の簡易情報がポップアップヒントとして表示される。例えば、保証サーバアイコン6714のポップアップヒント701には、影響解析後の保証サーバ情報が表示されている。なお、このポップアップヒント701の表示内容の詳細については、図6と図7において説明する。また、保証DBアイコン6721が太枠線になっているのは、当該構成要素に関する詳細な解析結果が解析結果表示画面514に表示されていることを示す。
(3)図5において、構成要素名称表示エリア508には、システム構成ツリー表示画面502において選択された親構成要素の名称である“担保・保証システム”が表示され、階層レベル名称表示エリア509には、その親構成要素の階層レベルの名称である“サブシステム”と表示されている。
(4)連携表示画面513は、システム構成ツリー表示画面502において選択された構成要素(図5の場合は、担保・保証システム6708)の内部構造を示す。連携表示画面513に表示された各構成要素にマウスのポインタを移動することで、当該構成要素の簡易情報がポップアップヒントとして表示される。例えば、保証サーバアイコン6714のポップアップヒント701には、影響解析後の保証サーバ情報が表示されている。なお、このポップアップヒント701の表示内容の詳細については、図6と図7において説明する。また、保証DBアイコン6721が太枠線になっているのは、当該構成要素に関する詳細な解析結果が解析結果表示画面514に表示されていることを示す。
連携表示画面513により、多重度変更の影響が及ぶ可能性のある範囲を視覚的に把握することができる。結果として、多重度を最適化すべき範囲を理解し易くすることで、設計作業を支援することができる。また、このように、解析結果表示画面514に表示されている構成要素を連携表示画面513中で太枠線等により強調表示することで、当該構成要素の親構成要素中における位置づけを視覚的に把握することができる。結果として、多重度を最適化すべき範囲を理解し易くすることで、設計作業を支援することができる。
(5)解析結果表示画面514には、連携表示画面513にて選択された保証DBアイコン6721に該当する保証DB427(図4)の解析結果を示す。ボトルネック解析結果画面515には、ボトルネック解析処理(図2のステップ202)を行った結果が表示され、影響解析結果画面520には、影響解析処理(図2のステップ204)を行った結果が表示される。また、解析結果の解説画面527には、ボトルネック解析処理202もしくは影響解析処理204を行った結果の詳細な説明と結果に対する対応方法が表示される。以下に、各項目の説明を行う。なお、各項目に表示されている具体的な数値の意味、各数字間の関係については、後述する図6と図7にて説明する。また、各項目の数字の算出方法については、後述する図12〜図24の処理フローにおいて説明する。
(5−1)ボトルネック解析結果画面515は、ボトルネック解析前に多重度調整エージェントに設定されていた多重度である「元の多重度設定値」516、元の多重度設定値516から算出したリクエスト発生率である「元の上限リクエスト発生率」517、実測値を用いたボトルネック解析後に得られたリクエスト発生率である実リクエスト発生率519、及び実リクエスト発生率519から算出した必要多重度である実必要多重度518で構成される。
(5−2)影響解析結果画面520は、ボトルネック解析後に修正した多重度である「修正後の多重度設定値」521(後述する多重度修正方法534で“自動”が選択されている場合には自動的に修正値が設定され、“手動”、または“強制”が選択されている場合には、ユーザが修正値を入力する。)、修正後の多重度設定値521から算出したリクエスト発生率である「修正後の上限リクエスト発生率」522、多重度修正により新規流入するリクエストを考慮した影響解析の結果得られた、現在のリクエスト発生率である「再算出後の現在の想定リクエスト発生率」524(詳細は、後述する図21で説明する。)、再算出後の現在の想定リクエスト発生率524から算出した必要多重度である「再算出後の現在の必要多重度」523、多重度修正により将来流入するリクエストを考慮して影響解析後に得られた値であり、将来増加し、当該値に達する可能性のあると予測されるリクエスト発生率である「再算出後の将来の想定リクエスト発生率」526(詳細は、後述する図21で説明する。)、再算出後の将来の想定リクエスト発生率526から算出した必要多重度である「再算出後の将来の必要多重度」525から構成される。
(5−3)解析結果の解説画面527は、多重度設定値がリクエストを処理できる値であるか否かを示す「状況」528、多重度設定値が不足しているか、または不足すると予測される場合の対応方法を示す「指針」529、状況528や指針529を決定するに至った理由を示す「理由」530から構成される。状況528に表示される文言には、「現在、多重度が十分足りていることを示す文言」、「現在、多重度が不足していることを示す文言」、「将来、多重度が不足する可能性があることを示す文言」の3パターンが考えられる。指針529に表示される文言には、「多重度設定値を増やすよう促す文言」、「スケールアウトするよう促す文言」、「スケールアップするよう促す文言」の3パターンが考えられる。
(5)解析結果表示画面514には、連携表示画面513にて選択された保証DBアイコン6721に該当する保証DB427(図4)の解析結果を示す。ボトルネック解析結果画面515には、ボトルネック解析処理(図2のステップ202)を行った結果が表示され、影響解析結果画面520には、影響解析処理(図2のステップ204)を行った結果が表示される。また、解析結果の解説画面527には、ボトルネック解析処理202もしくは影響解析処理204を行った結果の詳細な説明と結果に対する対応方法が表示される。以下に、各項目の説明を行う。なお、各項目に表示されている具体的な数値の意味、各数字間の関係については、後述する図6と図7にて説明する。また、各項目の数字の算出方法については、後述する図12〜図24の処理フローにおいて説明する。
(5−1)ボトルネック解析結果画面515は、ボトルネック解析前に多重度調整エージェントに設定されていた多重度である「元の多重度設定値」516、元の多重度設定値516から算出したリクエスト発生率である「元の上限リクエスト発生率」517、実測値を用いたボトルネック解析後に得られたリクエスト発生率である実リクエスト発生率519、及び実リクエスト発生率519から算出した必要多重度である実必要多重度518で構成される。
(5−2)影響解析結果画面520は、ボトルネック解析後に修正した多重度である「修正後の多重度設定値」521(後述する多重度修正方法534で“自動”が選択されている場合には自動的に修正値が設定され、“手動”、または“強制”が選択されている場合には、ユーザが修正値を入力する。)、修正後の多重度設定値521から算出したリクエスト発生率である「修正後の上限リクエスト発生率」522、多重度修正により新規流入するリクエストを考慮した影響解析の結果得られた、現在のリクエスト発生率である「再算出後の現在の想定リクエスト発生率」524(詳細は、後述する図21で説明する。)、再算出後の現在の想定リクエスト発生率524から算出した必要多重度である「再算出後の現在の必要多重度」523、多重度修正により将来流入するリクエストを考慮して影響解析後に得られた値であり、将来増加し、当該値に達する可能性のあると予測されるリクエスト発生率である「再算出後の将来の想定リクエスト発生率」526(詳細は、後述する図21で説明する。)、再算出後の将来の想定リクエスト発生率526から算出した必要多重度である「再算出後の将来の必要多重度」525から構成される。
(5−3)解析結果の解説画面527は、多重度設定値がリクエストを処理できる値であるか否かを示す「状況」528、多重度設定値が不足しているか、または不足すると予測される場合の対応方法を示す「指針」529、状況528や指針529を決定するに至った理由を示す「理由」530から構成される。状況528に表示される文言には、「現在、多重度が十分足りていることを示す文言」、「現在、多重度が不足していることを示す文言」、「将来、多重度が不足する可能性があることを示す文言」の3パターンが考えられる。指針529に表示される文言には、「多重度設定値を増やすよう促す文言」、「スケールアウトするよう促す文言」、「スケールアップするよう促す文言」の3パターンが考えられる。
図5に示す例では、保証DBの影響解析の結果、多重度は現在のところ足りているが、将来は不足する可能性があるという結果が出たので、解析結果の解説画面527には、その旨が表示されている。また、解析結果表示画面514の最上段には、通知レベルが「WARING」と表示されている。もし、多重度が現在も不足していれば、通知レベルが「ERROR」、多重度が将来も足りていれば、通知レベルが「OK」と表示される。
以上のように、解析結果表示画面514により、各構成要素の多重度設定値、必要多重度、リクエスト発生率に関する現状と理想を比較することができ、多重度設計の参考情報として利用することができる。結果として、最適なパラメタ値を導き出す設計作業を支援することができるという効果がある。さらに、リソース拡充のコストと性能確保とのトレードオフにより、導き出されたパラメタ値を採用するのか否かを決めることができる。
(6)多重度修正/変更画面531は、多重度修正処理(図2のステップ203)を実行する際に押下する多重度修正ボタン532、多重度変更処理(図2のステップ205)を実行する際に押下する多重度変更ボタン533、多重度修正処理の処理方法を、自動、手動、または強制から選択するラジオボタン534、多重度変更処理の処理方法を、自動または手動から選択するラジオボタン535から構成される。
(6)多重度修正/変更画面531は、多重度修正処理(図2のステップ203)を実行する際に押下する多重度修正ボタン532、多重度変更処理(図2のステップ205)を実行する際に押下する多重度変更ボタン533、多重度修正処理の処理方法を、自動、手動、または強制から選択するラジオボタン534、多重度変更処理の処理方法を、自動または手動から選択するラジオボタン535から構成される。
なお、多重度修正方法ラジオボタン534において、「自動」を選択すれば、テキストエリア521に実必要多重度518が自動的に入力されるので、構成要素毎に多重度の修正値をテキストエリア521に入力する手間を省くことができる。また、実際には、新たなサーバの導入コストやシステム構築期間が大きいために、ボトルネックの構成要素の多重度を必要多重度以上の値に変更することができない場合がある。この場合には、多重度修正方法ラジオボタン534で“強制”を選択し、テキストエリア521に、必要多重度より小さな多重度設定値を入力することにより、当該多重度を設定した構成要素を影響解析の対象外とすることもできる。
多重度修正/変更画面531により、構成要素毎に多重度の修正/変更方法を選択することができ、監視対象システム運用・管理者の設計作業負担を軽減すると共に、リアルタイムにサーバリソースを動的に再配分することができる。さらに、リソース拡充のコストと性能確保とのトレードオフにより、導き出されたパラメタ値を採用するのか否かを決めることができる。また、最適なパラメタ値が導出されない場合に、手動でパラメタ値を決定することができる。
図6は、ボトルネック解析処理(図2のステップ202)を行った後の連携表示画面513(図5)を示す。ここでは、図4に示す銀行システムにおいて、自営業者保証インスタンス423がボトルネックになっている場合の、連携表示画面513の詳細を示す。
まず、連携表示画面513は、最上位レベルであるシステムレベルの連携表示画面である銀行システム画面6701を表示する。銀行システム画面6701では、融資システムアイコン6705と営業店システムアイコン6707から担保・保証システムアイコン6708へ延びる連携矢印が太線表示されており、担保・保証システムアイコン6708が二重線になっている。これは担保・保証システム405がボトルネックとなっていることを示す。
次に、担保・保証システム405内のどの構成要素がボトルネックとなっているのかを調べるために、担保・保証システムアイコン6708を選択すると(マウスでダブルクリック等)、担保・保証システム連携表示画面6702に遷移する。担保・保証システム連携表示画面6702は、銀行システムのサブシステムレベルの連携表示画面である(図5の連携表示画面513も、このサブシステムレベルを示している。)。担保・保証システムでは、保証サーバアイコン6714が二重線になっているので、保証サーバ414(図4)がボトルネックとなっていることを示す。
保証サーバアイコン6714のポップアップヒント601が含む情報は、元の上限リクエスト発生率が「250」(個/秒)、元の多重度設定値が「13」、実リクエスト発生率が「320」(個/秒)、実必要多重度が「16」という情報である(この解析結果は、図5のボトルネック解析結果515にも表示される)。ここで、元の多重度設定値<実必要多重度(13<16)であることから、保証サーバ414がリクエストを処理しきれていないことが分かる。また、保証DB427の状況については、ポップアップヒント602が表示されている場合は、元の多重度設定値>実必要多重度(17>13)であることから、保証DB427は、十分にリクエストを処理できていることが分かる。また、ポップアップヒント603が表示されている場合は、元の多重度設定値>実必要多重度(15>13)であることから、保証DB427は、同様に十分にリクエストを処理できていることが分かる。ここで例示した2つのケースの相違については、後述する図7において説明する。
このように、ボトルネックが生じている構成要素の上位レベルに位置する親構成要素を強調表示することにより、本システムは、より巨視的な観点から問題(ボトルネック)が発生している箇所を把握し、設計作業を支援することができる。
次に、保証サーバ414内のどの構成要素がボトルネックとなっているのかを調べるために、保証サーバアイコン6714を選択すると(マウスでダブルクリックなど)、保証サーバの下のレベルである保証プロセス415(図4)の連携表示画面513が表示され(図6では図示せず)、さらにその画面保証プロセス415を選択すると、保証プロセス画面6703に遷移する。
保証プロセス画面6703では、保証照会スレッドアイコン6715と保証登録スレッドアイコン6717の両スレッドから自営業者保証インスタンスアイコン6718へ延びる連携矢印が太線表示され、自営業者保証インスタンスアイコン6718が二重線になっている。これは自営業者保証インスタンス423(図4)がボトルネックとなっていることを示す。図6には図示していないが、自営業者保証インスタンス423の解析結果表示画面514(図5)には、例えば、元の多重度設定値516が「5」、実必要多重度518が「9」と表示された場合、元の多重度設定値516<実必要多重度518であることから、自営業者保証インスタンス423がリクエストを処理しきれていない状態であることがわかる。
また、ポップアップヒント604の状況「ボトルネック発生!」の文言より、自営業者保証インスタンス423がボトルネック発生の根本原因となる構成要素であることが分かる。さらに、指針「多重度を上げてください」の文言と、理由「CPU・メモリとも余裕あり」の文言より、自営業者保証インスタンス423の多重度設定値を増やすことで、保証サーバ414への負荷やメモリ使用量を安定に保った状態で(臨界多重度の範囲内で)、ボトルネックを解消することができることが分かる。
このように、ボトルネック解析結果を画面上に表示し、問題点(ボトルネック)の詳細な状況を理解し易くすることで、設計作業を支援することができるという効果がある。
なお、メモリ使用量については、後述する図17で説明するサーバの負荷解析処理の流れと同様の方法で解析することができる。また、CPU利用率やメモリ使用量に限らず、これらと同様のモデルを持つ他のパラメタ(IO回数等)にも、図17に示す方法と同様の方法で解析することができる。
最後に、自営業者保証インスタンス423内のどの構成要素がボトルネックとなっているのかを調べるために、自営業者保証インスタンスアイコン6718をマウス等でダブルクリックすると、自営業者保証インスタンス連携表示画面6704に遷移する。自営業者保証インスタンス連携表示画面6704では、自営業者登録APアイコン6720が二重線になっており、これは自営業者登録AP426(図4)がボトルネックとなっていることを示す。ただし、業務APレベルの構成要素に、直接、多重度を設定することはできない。従って、実際には、自営業者登録AP426の親構成要素である自営業者保証インスタンス423の設定多重度を調整することで、ボトルネックを解消する。
以上のように、最上位レベルの連携表示画面513である銀行システム画面6701から順に、担保・保証システム画面6702、保証プロセス画面6703、自営業者保証画面6704へと下位レベルのシステムの構成要素とその状況を連携表示画面513(図5)に表示していくことで、システム運用管理者は、マクロな視点からミクロな視点へと序々にブレークダウンしながら解析結果を見ることができる。このため、広い視野に立って、効率よくシステム全体の性能対策を行い、多重度によるシステムチューニングのためのトライ&エラーの試行回数を少なくできるという効果がある。
図7は、影響解析処理(図2のステップ204)を行った後の連携表示画面513を示す。図7では、ボトルネック解析により明らかになった、自営業者保証インスタンス423の多重度不足(図6の画面例)を、多重度設定値を増やすことで解決し、その後影響解析を行った結果、今度は、保証DB427に多重度不足が発生するというケースを想定して、図6の各連携表示画面(6701−6704)がどのように変化するかを詳細に説明する。
まず、保証プロセス連携表示画面6703は、図6でボトルネックとなっていると判断された自営業者保証インスタンス423(図6の例では、図5の解析結果表示画面514において、元の多重度設定値516が「5」、実必要多重度518が「9」であった。)の元の多重度設定値「5」を「10」に修正し、影響解析処理(図2のステップ204)を行った後の状態を図示する。これにより、多重度修正後の自営業者保証インスタンス423の影響解析結果表示画面520には、修正後の多重度設定値521が「10」、再算出後の現在の必要多重度523が「9」と表示され、修正後の多重度設定値>再算出後の現在の必要多重度となることから、自営業者保証インスタンス423は、十分にリクエストを処理できるようになったことが分かる。また、ポップアップヒント704の状況「ボトルネック解消!」の文言より、自営業者保証インスタンス423が原因で発生したボトルネックが解消したことが分かる。また、自営業者保証インスタンスアイコン6718の二重線もなくなっている。さらに、影響解析処理後の自営業者保証インスタンス画面6704でも、ボトルネックを示す自営業者登録APアイコン6720の二重線が消えている。従って、十分にリクエストを処理できる状態になったことが分かる。
このように、影響解析結果を画面上に表示することにより、問題点(ボトルネック)の解消状況を理解し易くすることで、設計作業を支援することができるという効果がある。
次に、担保・保証システム連携表示画面6702は、保証プロセス連携表示画面6703で影響解析処理を行った後の担保・保証システムの状態を示し、ここでは、ボトルネックを示す保証サーバアイコン6714の二重線が消えている。また、保証サーバアイコン6714のポップアップヒント701より、修正後の多重度設定値>再算出後の現在の必要多重度(18>16)であることから、保証サーバ414は、十分にリクエストを処理できる状態になったことが分かる。
一方、保証DB427の状況については、ポップアップヒント702と703に示すように、2つのケースがある。いずれのケースであっても、保証DBアイコン6721は二重線にされており、新たなボトルネックの可能性を示している。なお、ポップアップヒント702は、図6におけるポップアップヒント602のケースに相当し、ポップアップヒント703は、図6におけるポップアップヒント603のケースに相当する。
(1)ポップアップヒント702のケースでは、図示していないが、ポップアップヒント701とポップアップヒント602に含まれる数値から、保証DB427の解析結果表示画面514には、元の多重度設定値516は「17」、再算出後の現在の必要多重度523は「16」と表示される。ここで、元の多重度設定値>再算出後の現在の必要多重度となることから、保証DB427は、現在のところ、十分にリクエストを処理できる状態であることが分かる。しかしながら、元の多重度設定値(516)は「17」、再算出後の将来の実必要多重度525は「18」と表示されることから、元の多重度設定値<再算出後の将来の実必要多重度となり、保証DB427は、将来、リクエストを処理しきれなくなる可能性があることが分かる。
(1)ポップアップヒント702のケースでは、図示していないが、ポップアップヒント701とポップアップヒント602に含まれる数値から、保証DB427の解析結果表示画面514には、元の多重度設定値516は「17」、再算出後の現在の必要多重度523は「16」と表示される。ここで、元の多重度設定値>再算出後の現在の必要多重度となることから、保証DB427は、現在のところ、十分にリクエストを処理できる状態であることが分かる。しかしながら、元の多重度設定値(516)は「17」、再算出後の将来の実必要多重度525は「18」と表示されることから、元の多重度設定値<再算出後の将来の実必要多重度となり、保証DB427は、将来、リクエストを処理しきれなくなる可能性があることが分かる。
また、ポップアップヒント702の通知レベルが「WARNING」は、保証DB427は、現在はリクエストを処理できるが、将来は処理できなくなる可能性があることを意味する。また、状況「将来コネクション不足となる可能性があります!」の文言から、保証DB427が新たなボトルネック発生の原因構成要素となる可能性があることが分かる。さらに、指針「DBサーバのノード数を増やしてください。」及び、理由「CPUに余裕がありません。」の文言より、保証DB427のノード数(サーバ台数)を増やさなければ、将来、保証DB427への負荷を安定に保った状態で(つまり、臨界多重度の範囲内で)、ボトルネックを解消することはできないことが分かる。
(2)ポップアップヒント703のケースでは、図示していないが、ポップアップヒント701とポップアップヒント603に含まれる数値から、保証DB427の解析結果表示画面514には、元の多重度設定値516は「15」、再算出後の現在の必要多重度523は「16」と表示される。ここで、元の多重度設定値<再算出後の現在の必要多重度523となることから、(ボトルネック解析処理により明らかになった)自営業者保証インスタンス423の多重度不足という状態に対して、自営業者保証インスタンス423の多重度設定値を増やすと、保証DB427がリクエストを処理きれなくなる状態になることが分かる。
(2)ポップアップヒント703のケースでは、図示していないが、ポップアップヒント701とポップアップヒント603に含まれる数値から、保証DB427の解析結果表示画面514には、元の多重度設定値516は「15」、再算出後の現在の必要多重度523は「16」と表示される。ここで、元の多重度設定値<再算出後の現在の必要多重度523となることから、(ボトルネック解析処理により明らかになった)自営業者保証インスタンス423の多重度不足という状態に対して、自営業者保証インスタンス423の多重度設定値を増やすと、保証DB427がリクエストを処理きれなくなる状態になることが分かる。
また、ポップアップヒント703の通知レベルが「ERROR」となっているのは、このまま何の対策もしないで自営業者保証インスタンス423の多重度設定値を増やすと、保証DB427はリクエストを処理しきれなくなることを意味する。また、状況「コネクション不足です!」は、保証DB427が新たなボトルネック発生の原因構成要素となる可能性があることを意味する。さらに、指針「DBサーバのノード数を増やしてください。」、及び理由「CPUに余裕がありません。」の文言より、保証DB427のノード数(サーバ台数)を増やさなければ、保証DB427への負荷を安定に保つことはできないことが分かる。
このように、影響解析結果を画面上に表示することにより、新たに発生した問題点(ボトルネック)の詳細な状況を理解し易くすることで、設計作業を支援することができる。
最後に、銀行システム連携表示画面6701は、影響解析処理後の銀行システムの状態を示す。担保・保証システムアイコン6708は二重線のままであり、依然としてボトルネックが存在することが分かる。これは、上述したように、自営業者保証インスタンス423の多重度修正後の影響解析により、今度は、担保・保証システム405内の保証DB427が、リクエストを捌ききれなくなる可能性があることが判明したためである。
図8は、監視対象システム107(具体的には、銀行システム401)のシステム構造を表現したデータ構造図であり、システム間構成定義329とサブシステム内部構成定義316(ともに図3に示されている)から構成される。
システム間構成定義329は、システムの構成情報(図4においては、銀行システム401)を格納するテーブルであるシステム構成定義801、及びシステム構成定義801からサブシステム構成定義803(サブシステム内部構成定義316に含まれる)への関係を示すテーブルであるサブシステム関係802を含む。
サブシステム内部定義316は、5種類の構成定義テーブルと4種類の関係テーブルで構成される。
5種類の構成定義テーブルとは、(1)サブシステム(図4においては、融資システム402、金利・相場システム403、営業店システム404、担保・保証システム405)の構成情報を格納するテーブルであるサブシステム構成定義803、(2)サーバ(図4においては、担保・保証用負荷分散器406、担保Web407、担保サーバ408、担保DB409、保証Web411、保証サーバ414、保証DB427)の構成情報を格納するテーブルであるサーバ構成定義805、(3)プロセス(図4においては、保証HTTPデーモン412、保証プロセス415、保証DBMS428)の構成情報を格納するテーブルであるプロセス構成定義807、(4)コンポーネント(図4においては、保証照会スレッド416、保証登録スレッド419、給与所得者保証インスタンス417、自営業者保証インスタンス423)の構成情報を格納するテーブルであるコンポーネント構成定義809(なお、コンポーネントとは、スレッドやインスタンス等のプロセスよりも小さな実行単位の概念の総称である。)、(5)業務AP(図4においては、登録AP420、自営業者照会AP424、自営業者登録AP426)の構成情報を格納するテーブルである業務AP構成定義811である。
また、4種類の関係テーブルとは、(1)サブシステム構成定義803とサーバ構成定義805との関係テーブルを示すサーバ関係804、(2)サーバ構成定義805とプロセス構成定義807との関係テーブルを示すプロセス関係806、(3)プロセス構成定義807とコンポーネント構成定義809との関係テーブルを示すコンポーネント関係308、(4)コンポーネント構成定義809と業務AP定義811との関係テーブルを示す業務AP関係810である。
例えば、プロセス構成定義807に格納されている構成要素の1つである保証プロセス415(図4において、子コンポーネントは、保証照会スレッド416、保証登録スレッド419、給与所得者保証インスタンス417、自営業者保証インスタンス423の4つ)について、プロセス構成定義807からコンポーネント構成定義809へのコンポーネント関係808を具体的に示すと、コンポーネント名(ID)が「保証照会スレッド416」の場合、連携元コンポーネントリストは「保証HTTPデーモン412」、連携先コンポーネントリストは、「給与所得者保証インスタンス417」及び「保証登録スレッド419」である。ここで、連携元コンポーネントとは、図4において、コンポーネント名で指定されたコンポーネントに対して矢印を向けているコンポーネントであり、連携先コンポーネントとは、図4において、コンポーネント名で指定されたコンポーネントが矢印を向けているコンポーネントを意味する。なお、連携元にコンポーネントレベルの定義情報が存在しない場合には、上位レベルのプロセス情報を持つ。
なお、各構成定義テーブルに格納された多重度修正方法814等に含まれる情報は、多重度修正処理(図2のステップ203)において参照される。具体的には、後述する図18のステップ1801において、多重度修正方法1804として参照される。同様に、各構成定義テーブルに格納された多重度変更方法815等に含まれる情報は、多重度変更処理(図2のステップ205)において参照される。具体的には、後述する図24のステップ2301において、多重度修正方法2306として参照される。従って、監視対象システム運用・管理者の作業負担を軽減し、性能確保とシステム安定稼動とを両立させる最適なシステム構成およびパラメタ値を導き出す設計作業を支援することができる。
また、コンポーネント構成定義809からは、エージェント情報908へのリンクが張られており、これにより、多重度調整エージェント110、112(図1)を特定することができ、サーバリソースを動的に再配分することができるという効果がある。
図9は、履歴および定義情報を詳細に示したデータ構造図である。このデータ構造図は、リクエストがサブシステム内をどのように通過するのかを定義したリクエストパス定義918、リクエスト計測モジュール302、307(図3)がどのようなリクエスト情報を取得する必要があるのかについて定義した取得する実測値の送信/受信定義303、308(図3)、多重度設定値とキュー長設定値を格納した自構成要素の多重度定義311、自構成要素の多重度定義311のどの項目が多重度設定値とキュー長設定値に相当するのかを定義した多重度設定メタ定義317から構成される。
リクエストパス定義918は、リクエストパスを特定する情報を格納するテーブルであるリクエストパス特定定義901、リクエストがコンポーネントを通過する際の情報(順序、回数、分岐条件等)を格納するテーブルである連携先構成要素情報903、リクエストパス毎の性能情報(臨界多重度、平均レスポンス、臨界CPU利用率(臨界多重度における各サーバのCPU利用率)等)を格納するテーブルであるリクエストパス性能情報904、定義903から定義904への関係テーブルである構成要素関係902の4つのテーブルで構成される。なお、図9に示すように、各テーブルには、サブシステム内部構成定義316(図8)内の各テーブルへのリンクが張られている。ここで、臨界CPU利用率とは、をいう。
また、連携先構成要素情報テーブル903は、連携順序911と連携条件912を属性として含む。これにより、リクエストパス毎のリクエストがどのような順序でどのコンポーネントを何回通過するのか、また、条件分岐する場合には、どのような条件や割合でその条件分岐が発生するのかが分かり、最適なパラメタ値を導き出す設計作業を支援することができる。さらに、リクエストパス性能情報テーブル904は、臨界多重度1707、平均レスポンス1414、および臨界CPU利用率1708等の臨界パラメタ(臨界メモリ使用量、臨界IO発生率等を含む。なおこれらのパラメタの定義及び利用方法については、図17を参照)を属性として持っている。これにより、リクエスト発生率が分かるとともに、サーバ負荷解析処理1304(図13)やサーバの負荷解析の再実行処理1904(図19)において最適なパラメタ値を導き出すことができる。
次に、取得する実測値の送信/受信定義303、308は、どの多重度調整エージェント110、112(図1)で取得した実測値であるのかを特定する情報を取得するよう指定した定義したテーブルである実測値905、リクエストパスを特定するための情報を取得するよう指定した定義テーブルであるリクエスト情報906、リクエスト情報を一意に特定するための情報を取得するよう指定した定義テーブルである電文情報907の3つのテーブルで構成される。図3に示す送信/受信リクエスト計測モジュール302、307や、サブシステム別実測値収集モジュール312、実測値収集モジュール322は、この定義情報テーブル303、308に格納された情報に基づき実測値を計測、収集、仕分け、マージ作業を行う。
なお、図9に示すように、実測値テーブル905は、当該実測値を計測した多重度調整エージェント110、112を特定するエージェント名(ID)913を含む。リクエスト情報テーブル906は、リクエストのリクエストパスを特定するリクエストパス名(ID)914を含む。電文情報テーブル907は、複数の構成要素で別々に計測されたリクエスト情報を1つにつなぎ合わせる識別子である取引識別子(ID)915、取得時間帯毎に仕分ける項目である時間帯916、未送信、未処理、処理済を区別する項目である電文種別917を含む。以上の項目により、最適なパラメタ値を導き出す設計作業を支援することができる。
次に、自構成要素の多重度定義311は、多重度調整エージェント110、112を特定する情報を格納するテーブルであるエージェント情報908、同時実行多重度制御および負荷分散処理を行うのに必要な情報を格納するテーブルである多重度情報909の2つのテーブルから構成される。多重度情報テーブル909は、多重度制御モジュール301、305が同時実行多重度制御および負荷分散処理を行うために利用する情報を含む。これらの情報に基づいて、自動的かつサーバ安定稼動を確保したまま、リアルタイムにサーバリソースを再配分することができる。
最後に、多重度設定メタ定義317は、多重度調整エージェント110、112を特定する情報を格納するテーブルであるエージェント情報908、各種設定パラメタの項目を特定するための情報を格納するテーブルである多重度設定項目情報910の2つのテーブルから構成される。多重度変更指示モジュール315(図3)は、多重度設定メタ定義317に含まれる情報に基づいて、多重度設定値の変更指示処理を行う(後述する図24のステップ2305)。
図10は、リクエスト発生率とシステム構成要素の関係を示した説明図である。あるリクエストパスを持つリクエストの必要多重度1010は、図10に示す算出式1009「リクエスト発生率1011×平均レスポンス1012」で表現できる。ここで、必要多重度1010は、構成要素にて制御可能なパラメタであり、リクエスト発生率1011及び平均レスポンス1012は、構成要素にて計測可能なパラメタである。従って、各構成要素のリクエスト発生率1011と平均レスポンス1012を計測することによって、必要多重度1010を決定し、このパラメタ1010を用いて、各構成要素の同時実行多重度を制御することができる。なお、平均レスポンス1012は、各構成要素におけるリクエストの平均内部保留時間のことであり、各構成要素での内部保留時間を計測することで算出可能である。
あるリクエストパスを持つリクエストが、図10に示すように、監視対象システム利用端末106(ブラウザ)→担保・保証用負荷分散器406→保証HTTPデーモン412→保証照会スレッド416→保証登録スレッド419→自営業者保証インスタンス423内の自営業者照会AP424及び自営業者登録AP426を順に通過するというパス特性を持っているとする。そして、リクエストの電文内容が正常であり、通過パスの途中でエラーリターンすることがない場合には、リクエスト発生率1011は、図10における各構成要素のリクエスト計測点1002〜1005、1007〜1008のどこで計測しでも同じ値である。
また、計測点1006のように、1回のリクエスト処理において2度同じ構成要素(自営業者保証インスタンス423)を通過する場合には、他の計測点にて計測したリクエスト発生率1011を2倍した値と、計測点1006にて計測したリクエスト発生率1011は同じになる。逆に、計測点1006にて計測したリクエスト発生率1011を2で割った値と、他の計測点にて計測したリクエスト発生率1011は同じになる。このように、1回のリクエスト処理において、同一構成要素を複数回通過する場合には、その構成要素におけるリクエスト発生率を、各構成要素の通過回数で乗じたり除したりすることによって、互いの構成要素のリクエスト発生率と相互に変換可能となる。つまり、リクエスト発生率1011は、各構成要素間で共通に用いることが可能なパラメタとすることができる。
従って、リクエストパスの途中で多重度制御調整エージェント110、112の多重度制御モジュール301、305の多重度制御機能によってエラーリターンしたリクエストについて、そのリクエストが(エラーリターンしないで)正常に処理されたと仮定した場合における、各構成要素で本来処理すべきリクエストの数(つまりリクエスト発生率1011)を算出することができる。そして、算出したリクエスト発生率1011と平均レスポンス1012から、必要多重度の算出式1009を用いることによって、各構成要素の必要多重度1010を算出することができる。
さらに、リクエストパスの途中で何らかの業務エラーによって、あるリクエストがリターンする場合や、条件分岐によって通過するパスが複数パターン存在する場合には、エラーリターンや条件分岐の割合を過去の履歴や事前の予想値から算出することで、各構成要素でのリクエスト発生率を算出することができる。例えば、「そのリクエストがある構成要素で計測されるリクエスト発生率」=「そのリクエストが発生元で計測されるリクエスト発生率」×「そのリクエストがその構成要素を通過する割合」となる。
図11は、効率的な必要多重度の導出方法の一例を示す図である。図11は、横軸に時間軸t、縦軸に必要多重度軸をとり、自営業者照会AP424(図4)の必要多重度a(t)1103と自営業者登録AP426(図4)の必要多重度b(t)1104の時間変化を示す。
もし、照会AP424、登録AP426のリクエスト発生率の時間変化を考慮しない場合は、単純にそれぞれの業務APに必要な多重度の最大値1105、1106の合計である必要多重度1107が、自営業者保証インスタンス423の必要多重度となる。しかし、図11に示すように、実際には、どの時刻においても必要多重度1107ほど大きな多重度は必要ではない。よって、必要多重度1107は、システムリソースを効率よく利用するような必要多重度ではない。そこで、照会AP424、登録AP426の必要多重度の時間による変化を考慮し、時間間隔Δt毎に必要多重度を時間変化させる。つまり、「あるΔtにおけるa(t)の最大値」+「そのΔtにおけるb(t)の最大値」を必要多重度とする。ここで、Δtを図11のように取ることにより、自営業者保証インスタンス423の必要多重度は1110に示すグラフとなり、Δt→0にすると、必要多重度は1109に示すグラフとなる。
このように、時間帯毎のリクエスト発生率を計測し、必要多重度の算出式1009、条件分岐時のリクエスト発生率を算出したり、および時間帯毎の必要多重度を算出したりすることで、業務ミックス環境下におけるリソース有効利用ができる。
図12から図24は、図2に示す実測値収集処理(ステップ201)、ボトルネック解析処理(ステップ202)、多重度修正処理(ステップ203)、影響解析処理(ステップ204)、および多重度変更処理(ステップ205)の各ステップの詳細な処理フローを示す。なお、以降において「最下位レベルのシステム構成要素」とは、図3における構成要素のうち、スレッド、インスタンス、負荷分散器、HTTPデーモン、DBMS等をいう。これに対し「上位レベルのシステム構成要素」とは、最下位レベルのシステム構成要素の多重度設定値やリクエスト発生率を合算することで、間接的に多重度制御や負荷分散処理を行うことができるシステム構成要素(具体的には、システム、サブシステム、Webサーバ、APサーバ、DBサーバ、プロセス等)をいう。さらに、ある構成要素へ直接リクエストを送信する他の構成要素を「上流の構成要素」、ある構成要素から直接リクエストを受信する他の構成要素を「下流の構成要素」という。
図12は、実測値収集処理(図2のステップ201)の詳細なフローチャートを示す。なお、図12の各ステップにおいて、図3に図示された定義情報やリクエスト情報を適宜参照する。
まず、多重度調整エージェント110の送信リクエスト計測モジュール302は、送信側リクエスト情報を取得する(ステップ1201)。具体的には、送信リクエスト計測モジュール302は、取得する実測値の送信定義303に基づき、未送信リクエスト情報を取得し、取得した情報を時間帯・リクエストパス毎に仕分け、時間帯・リクエストパス毎の未送信リクエスト情報304に格納する。
次に、多重度調整エージェント112の受信リクエスト計測モジュール307は、受信側リクエスト情報を取得する(ステップ1202)。具体的には、受信リクエスト計測モジュール307は、取得する実測値の受信定義308に基づき、未処理リクエスト情報を取得し、取得した情報を時間帯・リクエストパス毎に仕分け、時間帯・リクエストパス毎の未処理リクエスト情報309に格納する。また、受信リクエスト計測モジュール307は、取得する実測値の受信定義308に基づき、処理済リクエスト情報を取得し、当該情報を時間帯・リクエストパス毎に仕分け、時間帯・リクエストパス毎の処理済リクエスト情報310に格納する。
なお、ステップ1201とステップ1202は並行して行うことができる処理であり、同時に実行しても、順不同で順に実行してもよい。
次に、サブシステム別多重度調整サーバ105のサブシステム別実測値収集モジュール312は、サブシステム毎の実測値を収集する(ステップ1203)。具体的には、サブシステム別実測値収集モジュール312は、サブシステム内部構成定義316に基づき、時間帯・リクエストパス毎の未送信リクエスト情報304及び時間帯・リクエストパス毎の未処理リクエスト情報309を、各構成要素の多重度調整エージェント110及び112から収集し、収集した情報を各構成要素毎に仕分け、マージし、構成要素・時間帯・リクエストパス毎の未到達リクエスト情報313に格納する。また、サブシステム別実測値収集モジュール312は、サブシステム内部構成定義316に基づき、時間帯・リクエストパス毎の処理済リクエスト情報310を各構成要素の多重度調整エージェント112から収集し、当該収集した情報を各構成要素毎に仕分け、構成要素・時間帯・リクエストパス毎の処理済リクエスト情報314に格納する。
最後に、統合多重度解析サーバ104の実測値収集モジュール322は、システム全体の実測値を収集する(ステップ1204)。具体的には、実測値収集モジュール322は、サブシステム内部構成定義群330とシステム間構成定義329に基づいて、構成要素・時間帯・リクエストパス毎の未到達リクエスト情報313と構成要素・時間帯・リクエストパス毎の処理済リクエスト情報314を各サブシステムのサブシステム別多重度調整サーバ105から収集し、統合多重度解析サーバ104内の構成要素・時間帯・リクエストパス毎のリクエスト情報332に格納する。
図13は、ボトルネック解析処理(図2のステップ202)の概要を示すフローチャートである。ボトルネック解析処理は、統合多重度解析サーバ104のボトルネック解析モジュール321(図3)が行う。
まず、各構成要素およびその上流の構成要素のリクエスト情報に基づき、最下位レベルの各構成要素・各時間帯の必要多重度を算出する(ステップ1301)。詳細は後述する図14で説明する。次に、多重度設定値と、ステップ1301で算出した最下位レベルの構成要素の必要多重度に基づいて、上位レベルの各構成要素・各時間帯の多重度設定値と必要多重度を階層別に算出する(ステップ1302)。詳細は後述する図15で説明する。次に、多重度設定値と必要多重度を比較し、各構成要素・各時間帯にて不足している多重度を算出する(ステップ1303)。詳細は後述する図16で説明する。次に、必要多重度と臨界多重度から、各サーバ・各時間帯の負荷状態を算出し、パワー不足のサーバ・時間帯を解析する(ステップ1304)。詳細は後述する図17で説明する。次に、サブシステム内部構成定義群330とシステム間構成定義329、およびボトルネック解析結果から、各階層・各時間帯のボトルネック解析結果情報を作成する(ステップ1305)。最後に、ボトルネック解析結果情報を端末に表示する(ステップ1306)。
図14は、図13のステップ1301(最下位レベルの構成要素の必要多重度算出処理)の詳細を示すフローチャートである。ステップ1301では、サブシステム内部構成定義群330とシステム間構成定義329(図3)を以下のサブステップおいて利用する。図14では、ステップ1401からステップ1407までを時間帯(時間の分割)の数だけ繰り返す。つまり、ステップ1401では、ある時間を選択し、ステップ1407では、(選択していない)他の時間帯があるか否かを判断する(繰り返し判定)。また、ステップ1402からステップ1406までを上流の構成要素から下流の構成要素に向かって、構成要素の数だけ繰り返す。つまり、ステップ1402では、未処理の構成要素の中で上位(最上位)の構成要素を選択し、ステップ1406では、未処理の構成要素があるか否かを判断する(繰り返し判定)。
まず、ボトルネック解析モジュール321は、上流からの未到達リクエスト発生率を算出する(ステップ1403)。具体的には、(1)上流の各構成要素の未到達リクエスト情報1408(図12のステップ1204においてリクエスト情報データベース332に格納される情報)に基づき、処理対象のリクエストの送信先構成要素を特定し、リクエストパス毎の未処理リクエスト数を算出する(送信先を特定できない場合には、予測値や過去の履歴から、各送信先構成要素への振り分け割合を算出し、この割合を重み付け値としてリクエストパス毎の未送信リクエストの数を算出する。)。そして、算出したリクエスト数と各リクエストの発生時刻から、リクエストパス毎のリクエスト発生率(未送信リクエスト発生率)を算出する。(2)次に、リクエストパス毎の構成要素での未処理リクエストの数を算出し、算出した未処理リクエスト数と各リクエストの発生時刻から、リクエストパス毎のリクエスト発生率(未処理リクエスト発生率)を算出する。(3)未送信リクエスト発生率と未処理リクエスト発生率を合計して、上流からの未到達リクエスト発生率を算出する。そして、その算出情報を未到達リクエスト発生率1412に格納する。
次に、構成要素で処理されたリクエスト発生率を算出する(ステップ1404)。具体的には、計算対象の構成要素の処理済リクエスト情報1409(図12のステップ1204においてリクエスト情報データベース332に格納される情報)に基づき、当該構成要素にて処理されたリクエスト発生率をリクエストパス毎に算出する。そして、その算出結果を処理済リクエスト発生率1413に格納する。
最後に、ステップ1403と1404で算出されたリクエスト発生率1412及び1413と、予め測定しておいた平均レスポンス1414から、計算対象の構成要素のリクエストパス毎の全リクエスト発生率とそれを処理するのに必要な多重度を算出する(ステップ1405)。具体的には、リクエスト発生率1412及び1413を合計して、リクエストパス毎の全リクエスト発生率を算出する。また、ある構成要素のリクエストパス毎に、図10の算出式1009により必要多重度を算出し、その構成要素に関する全てのリクエストパスの必要多重度を合計して、必要多重度を算出する。
これにより、構成要素の必要多重度をより正確に求めることができ、また異なるリクエストパスにおいて個別に算出された必要多重度を、ある構成要素のパラメタである多重度設定値と同様の値(多重度設定値として利用できる値)に変換することができ、最適なパラメタ値を導き出す設計作業を支援することができる。
図15は、図13のステップ1302(上位レベルのシステム構成要素の多重度設定値と必要多重度の算出処理)の詳細を示すフローチャートである。ステップ1302では、サブシステム内部の構成定義群330とシステム間構成定義329を以下のサブステップおいて利用する。ステップ1302も、図14のステップ1301と同様に、ステップ1501からステップ1507までを時間帯(時間の分割)の数だけ繰り返すとともに、ステップ1503からステップ1505までを上流の構成要素から下流の構成要素に向かって、構成要素の数だけ繰り返す処理を行う。さらに、ステップ1502からステップ1506までを下位レベルの構成要素から上位レベルの構成要素に向かって、階層の数だけ繰り返す。つまり、ステップ1502では、ある時間帯における下位レベル(最下位レベル)の階層を選択し、ステップ1506では、未処理の階層があるか否かを判断する(繰り返し判定)。
ステップ1504は、多重度設定値、必要多重度及び合計リクエスト発生率を算出する。ステップ1504では、全リクエスト発生率1411のうち、計算対象の構成要素(親構成要素)を構成する子構成要素へのリクエストであって、その親構成要素の外部から流入するリクエストのみを計算対象とする。ボトルネック解析モジュール321は、子構成要素の多重度設定値1509(図14で求めた最下位レベルの必要多重度1410)、予め測定しておいた平均レスポンス1414、および子構成要素の全リクエスト発生率1510(図14で求めた全リクエスト発生率1411)に基づき、計算対象の構成要素に含まれる子構成要素の多重度設定値1509を合計して、その構成要素の多重度設定値1508を算出する。また、子構成要素のリクエストパス毎の全リクエスト発生率を合計して、その構成要素のリクエストパス毎の全リクエスト発生率1411を算出する。また、図10に示した算出式1009から、リクエストパス毎の必要多重度1410を算出する。
ステップ1504において、ある階層について算出された多重度設定値1508は、上位レベルの階層におけるステップ1504の入力データである「子構成要素の多重度設定値1509」として用いられる。同様に、ある階層について算出された全リクエスト発生率1411は、上位レベルの階層におけるステップ処理1504の入力データである「子構成要素の全リクエスト発生率1510」として用いられる。
ステップ1504の処理により、解析結果表示画面514に必要な上位レベルのリクエスト発生率を導き出すことができ、多重度によるシステムチューニングのためのトライ&エラーの試行回数を少なくできる。
図16は、図13のステップ1303(不足する多重度の算出処理)の詳細を示すフローチャートである。ステップ1303でも、サブシステム内部の構成定義群330とシステム間構成定義329を以下のサブステップにおいて利用する。ステップ1303も、図15に示すステップ1302と同様に、ステップ1601からステップ1607までを時間帯(時間の分割)の数だけ繰り返すとともに、ステップ1602からステップ1606までを下位レベルの構成要素から上位レベルの構成要素に向かって、階層の数だけ繰り返す処理を行う。また、ステップ1603からステップ1605までを上流の構成要素から下流の構成要素に向かって、構成要素の数だけ繰り返す処理を行う。
ステップ1604は、図15(ステップ1504)の出力結果である多重度設定値1508と必要多重度1410を比較する。具体的には、必要多重度≦多重度設定値であれば正常と判断し、必要多重度>多重度設定値であれば、ボトルネックが発生していると判断する。そして、比較結果を多重度の解析結果1608として格納する。
ステップ1604の処理により、解析結果表示画面514に必要な上位レベルの必要多重度を導き出すことができ、多重度によるシステムチューニングのためのトライ&エラーの試行回数を少なくできるという効果がある。
図17は、図13のステップ1304(サーバの負荷解析処理)の詳細を示すフローチャートである。ステップ1304でも、サブシステム内部構成定義群330とシステム間構成定義329を以下のサブステップにおいて利用する。ステップ1304でも、ステップ1701からステップ1706までを時間帯(時間の分割)の数だけ繰り返す。また、ステップ1702からステップ1705までをサーバ(ノード)の数だけ繰り返す。ステップ1702では、ある計算対象サーバを選択し、ステップ1705では、(負荷解析処理が行われていない)他のサーバがあるか否かを判断する(繰り返し判定)。
まず、サーバの負荷割合を算出する(ステップ1703)。具体的には、予め測定されたリクエストパス毎の臨界多重度1707及び臨界CPU利用率1708、および計算対象のサーバに対応するリクエストパス毎の必要多重度1410(図15の出力結果)に基づき、(必要多重度1410)/(臨界多重度1707)×臨界CPU利用率1708という算出式によって、リクエストパス毎のサーバの負荷割合を算出し、全リクエストパスの算出結果を合計して、あるサーバの負荷割合1709を算出する。そして、その算出結果を、サーバの負荷割合1709として格納する。
次に、サーバの負荷割合1709を比較する(ステップ1704)。具体的には、サーバ負荷割合≦100%であれば正常と判断し、サーバ負荷割合>100%であればボトルネックが発生していると判断する。そして、この比較結果を、多重度に関するサーバ負荷の解析結果1710として格納する。
ステップ1304により、解析結果表示画面514の状況528、指針529、理由530の表示に必要な情報を導き出すことができ、性能確保とシステム安定稼動とを両立させる最適なシステム構成およびパラメタ値を導き出す設計作業を支援することができる。なお、ステップ1703(サーバの負荷割合の解析処理)においては、多重度と臨界CPU利用率との関係を用いたが、臨界CPU利用率の代わりに、臨界メモリ使用率(臨界多重度におけるメモリ使用量/サーバに搭載している実メモリの全容量)や、臨界IO率(臨界多重度における単位時間当たりのIO発生回数/IO発行のみのプログラムを実行した際に発行可能な単位時間当たりのIO発行回数)を用いてもよい。そして、その解析結果が「ボトルネック発生」となった場合は、指針529には「メモリ増強」または「サーバのスケールアウト」等が表示される。
図18は、多重度修正モジュール326が行う多重度修正処理(図2のステップ203)の詳細に示すフローチャートである。
まず、処理対象の構成要素の多重度を手動修正するのか自動修正するのかを判断する(ステップ1801)。具体的には、構成要素毎に多重度を手動修正するのか自動修正するのかを定義した多重度修正方法1804(図8に示す多重度修正方法814、816等に相当)、および構成要素の子構成要素をどの範囲まで自動修正するのかを定義した多重度修正適用ポリシー325(図3)に基づいて判断する。
ステップ1801において手動修正すると判断された場合は、サブシステム内部構成定義316およびシステム間構成定義329に基づいて検索された、処理対象の構成要素の多重度設定値に、端末から入力された多重度の値1805を設定する(ステップ1802)。
ステップ1801において自動修正すると判断した場合は、サブシステム内部構成定義316およびシステム間構成定義329に基づいて探索された、処理対象の構成要素の多重度設定値1508に、ボトルネック解析処理202または影響解析処理204において算出された必要多重度1410を設定する。
図19は、影響解析モジュール324が行う影響解析処理(図2のステップ204)の概要を示すフローチャートである。
まず、最下位レベルの必要多重度を再算出する(ステップ1901)。ステップ1901では、ある構成要素の多重度を修正したことにより影響を受ける他の最下位レベルの各構成要素・各時間帯の多重度を再算出する。ステップ1901の処理の詳細は、後述する図20−22で説明する。次に、最下位レベルの構成要素の多重度設定値と、ステップ1901において再算出された必要多重度に基づいて、上位レベルの各構成要素・各時間帯の多重度設定値と必要多重度を階層別に再算出する(ステップ1902)。次にステップ1901もしくはステップ1902において再算出した多重度設定値と必要多重度を比較し、各構成要素・各時間帯において不足している多重度を再算出する(ステップ1903)。次に、臨界多重度と、ステップ1902により算出した必要多重度をもとに、各サーバ・各時間帯の負荷状態を算出し、パワー不足のサーバ・時間帯を再解析する(ステップ1904)。次に、サブシステム内部構成定義群330とシステム間構成定義329、およびステップ1901−1904の影響解析結果から、各階層・各時間帯の影響解析結果情報を作成する(ステップ1905)。最後に、ステップ1905で作成された影響解析結果情報を端末に表示する(ステップ1906)。
以上の処理のうち、ステップ1902−1904は、ステップ1901で再算出した多重度設定値と必要多重度を入力として用いる以外は、図13に示すボトルネック解析処理のステップ1302−1304と同様の処理を行う。また、ステップ1905−1906は、表示画面図5(特に影響解析結果520)に表示する項目の違い以外は、図13のステップ1305−1306と同様の処理を行う。従って、ステップ1902の詳細は図15に、ステップ1903の詳細は図16に、ステップ1904の詳細は図17にそれぞれ図示されている。
図20は、図19のステップ1901(最下位レベルの必要多重度の再算出処理)の詳細を示すフローチャートである。ステップ1901では、サブシステム内部構成定義群330とシステム間構成定義329を以下のサブステップにて利用する。また、ステップ1901では、図14と同様に、ステップ2001からステップ2007までを時間帯(時間の分割)の数だけ繰り返し、また同様にステップ2002からステップ2006までを上流の構成要素から下流の構成要素に向かって、構成要素の数だけ繰り返す。
まず、上流から流入する追加リクエスト発生率を算出する(ステップ2003)。具体的には、上流の各構成要素からの追加リクエスト発生率2008(後述するステップ2005にて説明する)に基づいて、上流の構成要素から計算対象の構成要素に追加流入すると予測される追加リクエスト発生率2012をリクエストパス毎に算出し、その算出結果を、構成要素・時間帯・リクエストパス毎のリクエスト発生率323(図3)に格納する。ステップ2003の処理の詳細は、後述する図21で説明する。(((図25???)
次に、合計リクエスト発生率と必要多重度を再算出する(ステップ2004)。具体的には、未到達リクエスト発生率1412、処理済リクエスト発生率1413、平均レスポンス1414(いずれも、図15のステップ1405で用いるものと同様)、およびステップ2003で算出した追加リクエスト発生率2012をもとに、計算対象の構成要素のリクエストパス毎の全リクエスト発生率と、全リクエストを処理するのに必要な多重度を再算出し、それぞれ再算出後の全リクエスト発生率2010と再算出後の必要多重度2009に格納する。
次に、合計リクエスト発生率と必要多重度を再算出する(ステップ2004)。具体的には、未到達リクエスト発生率1412、処理済リクエスト発生率1413、平均レスポンス1414(いずれも、図15のステップ1405で用いるものと同様)、およびステップ2003で算出した追加リクエスト発生率2012をもとに、計算対象の構成要素のリクエストパス毎の全リクエスト発生率と、全リクエストを処理するのに必要な多重度を再算出し、それぞれ再算出後の全リクエスト発生率2010と再算出後の必要多重度2009に格納する。
次に、下流へ流出する追加リクエスト発生率を算出する(ステップ2005)。具体的には、ステップ2004で再算出された算出後の全リクエスト発生率2010、修正後の多重度327(図18の多重度修正処理により修正された必要多重度)、多重度設定値1508、および元の全リクエスト発生率1411に基づいて、計算対象の構成要素の多重度設定値を修正したことにより、下流の構成要素に追加流入すると予測される追加リクエスト発生率を算出し、下流への追加リクエスト発生率2011として格納する。そして、この算出結果である下流への追加リクエスト発生率2011は、その構成要素より下流の構成要素に対するステップ2003の処理において、情流からの追加リクエスト発生率2008として利用される。
図21及び図22は、図20のステップ2003(上流の構成要素から流入する追加リクエスト発生率の算出処理)における追加リクエスト発生率の算出方法を詳細に示した説明図である。図21は、修正後の多重度が依然として必要多重度に達していない場合を示し、図22は、修正後の多重度が必要多重度を上回っている場合を示す。
図21では、ある前方ティア(上流)の多重度変更前の状態2101において、元の全リクエスト発生率2104と、多重度設定値から算出した上限リクエスト発生率2105が図のような関係である場合、その差が未到達リクエスト発生率2103となる。多重度設定値の変更後の状態2113において、上限リクエスト発生率2109が図のように増加したとすると、元の上限リクエスト発生率2105との差が、後方ティア(下流)に流出する追加リクエスト発生率2107となる。また、元の全リクエスト発生率2108(=2104)と修正後の上限リクエスト発生率2109の差が再算出後の未到達リクエスト発生率2106となる。
この状況において、後方ティア(下流)の元の全リクエスト発生率2111が図のような値であるとすると、前方ティアの多重度を変更したことにより(状態2113)、追加リクエスト発生率2107が、後方ティアに新たに流入する追加リクエスト発生率2110となる。また、将来、前方ティアの多重度をさらに増加させた場合、前方ティアの再算出後の未到達リクエスト発生率2106も、さらに後方ティアに流入する可能性がある。これらのリクエスト発生率2107と2106を合算したものが、将来後方ティアに流入する可能性がある追加リクエスト発生率2112である。
図22では、ある前方ティア(上流)の多重度変更前の状態2102において、元の全リクエスト発生率2115と、多重度設定値から算出した上限リクエスト発生率2116が図のような関係である場合、その差が未到達リクエスト発生率2114となる。多重度設定値の変更後の状態2124において、上限リクエスト発生率2120が図のように増加したとすると、元の上限リクエスト発生率2116との差が、後方ティア(下流)に流出する追加リクエスト発生率2117となる。また、元の全リクエスト発生率2118(=2115)<上限リクエスト発生率2120となるので、再算出後は、未到達リクエスト発生率は存在しない(この点が、図21と異なる)。
この状況において、後方ティア(下流)の元の全リクエスト発生率2122が図のような値であるとすると、前方ティアの多重度を変更したことにより(状態2124)、追加リクエスト発生率2117が、後方ティアに新たに流入する追加リクエスト発生率2121となる。また、将来、前方ティアに流入するリクエストが増加した場合、前方ティアの多重度変更後(多重度再算出後)の上限リクエスト発生率2120と、元の全リクエスト発生率2118(=2115)との差分2119も、さらに後方ティアに追加流入する可能性がある。従って、これらのリクエスト発生率2117と2119を合算したものが、将来後方ティアに流入する可能性がある追加リクエスト発生率2123である。
なお、前方ティアの多重度を変更することにより新たに流入するリクエスト発生率を示す「現在の想定追加リクエスト発生率」や、前方ティアの多重度を変更することにより将来流入する可能性のあるリクエスト発生率を示す「将来の想定追加リクエスト発生率」は、0やマイナスになることがある。これらの数値が「0」である場合は、「追加リクエストが発生しない」ことを意味し、これらの数値が「マイナス」である場合は、「元の全リクエスト発生率と負の追加リクエスト発生率との合計分だけ、リクエスト発生率が減少する」ことを意味する。
ここで、図20のステップ2005に示す、多重度修正後の、リクエストパス毎の下流に流出する追加リクエスト発生率の算出方法の一例を示す。なお、あるリクエストパスkの多重度変更後の上限リクエスト発生率Rkaは、全リクエスト発生率に対するkの全リクエスト発生率の占める割合に比例すると仮定する。または、上限リクエスト発生率Rkaは、処理済全リクエスト発生率に対するkの処理済全リクエスト発生率に占める割合に比例する、もしくは、未到達全リクエスト発生率に対するkの未到達全リクエスト発生率に占める割合に比例すると考えても良い。つまり、あるリクエストパスkの多重度変更後の上限リクエスト発生率Rkaは、
Rka=α(Rkt/Rt)…式1
と表せる。ここで、αは比例定数(全てのリクエストパスで共通と仮定する。)、Rktはリクエストパスkの全リクエスト発生率、Rtは全リクエスト発生率である。従って、多重度変更後にリクエストパスkのリクエスト処理に利用される多重度mkaは、リクエストパスkの平均レスポンスをTkとして、
mka=Rka・Tk=α(Rkt/Rt)Tk…式2
と表せる(図10の式1009、およびRkaに式1を代入)。一方、リクエストパスがn種類ある場合、トータルの変更後の多重度(実際に設定するパラメタ)をMtaとすると、
Rka=α(Rkt/Rt)…式1
と表せる。ここで、αは比例定数(全てのリクエストパスで共通と仮定する。)、Rktはリクエストパスkの全リクエスト発生率、Rtは全リクエスト発生率である。従って、多重度変更後にリクエストパスkのリクエスト処理に利用される多重度mkaは、リクエストパスkの平均レスポンスをTkとして、
mka=Rka・Tk=α(Rkt/Rt)Tk…式2
と表せる(図10の式1009、およびRkaに式1を代入)。一方、リクエストパスがn種類ある場合、トータルの変更後の多重度(実際に設定するパラメタ)をMtaとすると、
図23は、図20のステップ2003および2005で算出される追加リクエスト発生率が、下流の構成要素や上位レベルの構成要素に伝わる様子を示した説明図である。図23におけるシステム構成は、図4と同様に、DBサーバはDBMSからなり、スレッドとインスタンスには業務APが存在し、プロセスはスレッドとインスタンスからなり、APサーバはプロセスとHTTPデーモンからなり、サブシステムは、負荷分散器、APサーバ、DBサーバからなる。そしてリクエストは、最下位レベルのシステム構成要素を、負荷分散器→HTTPデーモン→スレッド→インスタンス→DBMSの順に伝わると仮定する。
フローチャート2201は、各構成要素で算出される追加リクエスト発生率が、下流の構成要素に伝わる様子を示したものである(図10のステップ1901に相当し、詳細は20参照)。フローチャート2201の各ステップは、影響解析モジュール(図3)が処理を行う。
まず、負荷分散器の上流の構成要素における未到達・処理済リクエスト発生率2203に基づいて、負荷分散器の再算出後の全リクエスト発生率2205と、下流(HTTPデーモン)への追加リクエスト発生率2206を算出する(ステップ2204)。次に、負荷分散器からの追加リクエスト発生率2206と、負荷分散器における未到達・処理済リクエスト発生率2207に基づいて、HTTPデーモンの再算出後の全リクエスト発生率2209と、下流(スレッド)への追加リクエスト発生率2210を算出する(ステップ2208)。次に、HTTPデーモンからの追加リクエスト発生率2210と、HTTPにおける未到達・処理済リクエスト発生率2211に基づいて、スレッドの再算出後の全リクエスト発生率2213と下流への追加リクエスト発生率2214を算出する(ステップ2212)。
次に、スレッドからの追加リクエスト発生率2214と、スレッドにおける未到達・処理済リクエスト発生率2215に基づいて、インスタンスの再算出後の全リクエスト発生率2217と、下流(インスタンス)への追加リクエスト発生率2218を算出する(ステップ2216)。最後に、インスタンスからの追加リクエスト発生率2218と、インスタンスからの未到達・処理済リクエスト発生率2219に基づいて、DBMSの再算出後の全リクエスト発生率2221を算出する(ステップ2220)。
なお、フローチャート2201において、未到達・処理済リクエスト発生率2203、2207等は、図20における未到着リクエスト発生率1412及び処理済リクエスト発生率1413に相当し、再算出後の全リクエスト発生率2205、2209等は、図20における再算出後の全リクエスト発生率2010に相当し、下流への追加リクエスト発生率2206、2210等は、図20における下流への追加リクエスト発生率2011に相当する。
フローチャート2202は、上位レベルの構成要素の全リクエスト発生率が、再算出により変化していく様子を示したフローチャート(図19のステップ1902に相当し、詳細は図15参照)である。フローチャート2202の各ステップは、影響解析モジュール324(図3)が処理を行う。
まず、サーバ外部からDBサーバへ流入する全リクエスト発生率2221に基づいて、DBサーバの再算出後の全リクエスト発生率2223を算出する(ステップ2222)。次に、業務AP外部から業務APへ流入する全リクエスト発生率2213もしくは2217に基づいて、業務APの再算出後の全リクエスト発生率2225を算出する(ステップ2224)。ここで、全リクエスト発生率2213を利用する場合は、スレッド内の業務APについて計算することを意味し、全リクエスト発生率2217を利用する場合は、インスタンス内の業務APについて計算することを意味する。
次に、プロセス外部からプロセスへ流入する全リクエスト発生率2213と2217に基づいて、プロセスの再算出後の全リクエスト発生率2227を算出する(ステップ2226)。次に、サーバ外部からAPサーバへ流入する全リクエスト発生率2209と、全リクエスト発生率2227(ステップ2226で算出されたもの)に基づいて、APサーバの再算出後の全リクエスト発生率2229を算出する(ステップ2228)。最後に、サブシステム外部からサブシステムへ流入する全リクエスト発生率2205と、全リクエスト発生率2229(ステップ2228で算出されたもの)に基づいて、サブシステムの再算出後の全リクエスト発生率2231を算出する(ステップ2230)。
図24は、図2のステップ205(多重度変更処理)の詳細を示すフローチャートである。
まず、多重度変更モジュール328は、変更対象の構成要素の多重度変更が手動変更であるか自動変更であるかを判断する(ステップ2301)。具体的には、多重度変更モジュール328は、構成要素毎に多重度を手動変更するのか自動変更するのかを定義した多重度変更方法2306(図8の多重度変更方法815、817等に相当)、および構成要素の子構成要素をどの範囲まで自動変更するのかを定義した多重度変更適用ポリシー331(図3)に基づいて判断する。
ステップ2301で自動変更であると判断した場合は、多重度変更モジュール328は、多重度変更を行う(ステップ2303)。具体的には、多重度修正処理(図2のステップ203)及び影響解析処理(図2のステップ204)により修正された修正後の多重度327を、サブシステム内部構成定義316およびシステム間構成定義329に基づいて検索された、処理対象の構成要素の多重度設定値1508に変更するように、多重度変更モジュール328は、サブシステム別多重度調整サーバ105の多重度変更指示モジュール315に対して、多重度変更を指示する情報を送信する。
多重度変更モジュール328から多重度変更指示情報を受信した多重度変更指示モジュール315は、対象の構成要素に対して多重度設定値の変更指示を行う(ステップ2305)。具体的には、受信した多重度変更指示情報、サブシステム内部構成定義316および多重度設定メタ定義317に基づいて、構成要素毎の多重度定義311を変更し、多重度調整エージェント110、112に多重度定義311の再ロードを指示する。
ステップ2301で手動変更であると判断した場合には、多重度変更モジュール328は、監視対象システム運用・管理者からの変更後の多重度の入力を受付け、変更された多重度に関する情報を多重度変更指示モジュール315に送信する(ステップ2302)。そして、多重度変更指示モジュール315は、上述したステップ2305の処理を行う。
図24に示す処理により、手動・自動いずれの場合も、各製品に分散する多重度設定のための定義情報を、一箇所で、製品横断的に管理することができるため、個別製品の定義ファイルの詳細な仕様を理解する手間を省くことができる。
なお、受信多重度制御モジュール305(図3:多重度調整エージェント112)が、負荷分散方式として入力キュー方式を採用した場合の、必要なキュー長の算出方法の例として(1)履歴を積分するか、または履歴を合算する。(2)キュー長を実測し、標準偏差から求める。(3)キュー長を既存の確率関数にてモデル化し、正規化標準偏差から求める。(4)確率を先に決め、検定によって求める、等が考えられる。
実施例1によれば、あるシステム構成要素の多重度を変更したことにより、他のシステム構成要素のリクエスト発生率がどのように変化し、それにより必要多重度(システム構成要素にて処理することを期待されているリクエストを全て処理するのに必要な多重度)がどのように変化するのかを算出し、結果をシステム利用者に提示するため、新規に追加するリクエストパスや多重度の変更がシステム全体に与える負荷等の影響を調査することができるという効果がある。
特に、インターネットを用いたビジネスにおいては、企業の成長やサービスの拡大と共に、サービスの利用者(顧客)が増大するのが常である。このようにビジネスの規模にしたがってシステムのキャパシティ(多重度)を増やす際の設計ノウハウに対するニーズは高く、本発明はそれに対するソリューションを提供できるという効果がある。
図25は、本発明をグリッドコンピューティングへ応用した例を示したシステム構成図である。なお、グリッドコンピューティングとは、ネットワークを介して複数のコンピュータを結ぶことで仮想的に高性能コンピュータをつくり、利用者はそこから必要な処理能力や記憶容量を取り出して使うシステムであり、複数のコンピュータに並列処理を行わせることで、高速に大量の処理を実行できるシステムである。
図25では、科学技術計算依頼端末2401からのリクエストを、グリッドスケジューラ2402が受け付け、サーバプール2406内の複数の計算ホスト2403、計算PC2404、計算サーバ2405に対して、適切に負荷分散しながらリクエストを中継するという構成となっている。多重度調整エージェントを各計算機2403、2404、2405に配置し、統合多重度解析サーバ相当の機能をグリッドスケジューラ2402に配置することで、リソースの有効利用とサーバの安定稼動を両立するような、負荷分散処理を行うことが可能となる。なお、対象システムが異なる以外は、実施例1で述べた構造、処理と同様である。
本実施例に示すように、本発明はグリッドコンピューティングにも応用可能であり、この例のようにビジネスの規模にしたがってシステムのキャパシティ(多重度)が増えるようなシステム設計のソリューションを提供できるという効果がある。
102:多重度調整端末、103:同時実行多重度調整システム、105:サブシステム別多重度調整サーバ、104:統合多重度解析サーバ、106:監視対象システム利用端末、107:監視対象システム、108:サブシステム、110:多重度調整エージェント(送信側)、112:多重度調整エージェント(受信側)、113:監視対象システム構成要素(送信側)、115:監視対象システム構成要素(受信側)、114:リクエスト情報
Claims (8)
- 監視対象システムに対するリクエストの多重度を調整する多重度調整システムにおいて、
前記監視対象システムに含まれる構成要素に対するリクエストをもとに、該構成要素ごとのリクエストの多重度を判断する多重度調整エージェントと、
前記リクエストの多重度に関する情報を前記多重度調整エージェントから取得して、前記構成要素ごとのリクエスト情報として記憶する多重度調整サーバと、
該多重度調整サーバから、前記記憶された構成要素ごとのリクエスト情報を取得し、該取得したリクエスト情報をもとに、前記構成要素ごとのリクエストの多重度を解析するとともに、該解析結果に応じて前記構成要素ごとのリクエストの多重度を変更する統合多重度解析サーバとを備えることを特徴とする多重度調整システム。 - 前記統合多重度解析サーバは、前記変更された多重度に関する情報を前記多重度調整サーバに送信し、
前記多重度調整サーバは、前記統合多重度解析サーバから受信した情報をもとに、前記多重度調整エージェントに対して、前記多重度の変更指示を行うことを特徴とする請求項1記載の多重度調整システム。 - 前記リクエストの多重度に関する情報は、該リクエストが行われる時間帯ごと、及び前記リクエストが前記監視対象に含まれるどの構成要素を通過するかを示すリクエストパスごとに定義される情報であることを特徴とする請求項1記載の多重度調整システム。
- 前記多重度調整エージェントは、前記監視対象システムに含まれる構成要素に対するリクエストを、未送信リクエスト情報、未処理リクエスト情報及び処理済リクエスト情報に分類して記憶することを特徴とする請求項1記載の多重度調整システム。
- 監視対象システムにおけるリクエストの多重度を修正するサーバにおいて、
該リクエストが対象とする構成要素、該リクエストの時間帯、該リクエストが通過する構成要素を示すリクエストパスに関する情報に基づいて、該リクエストの多重度の実測値を収集するリクエスト実測値収集部と、
該収集された実測値を解析して、前記監視対象システムに含まれる構成要素のうち、リクエスト処理のボトルネックになっている構成要素を解析するボトルネック解析部と、
該解析結果をもとに、該ボトルネックを解消するよう多重度を修正する多重度修正部と、
該修正された多重度に基づいてリクエスト処理が行われた場合の影響を解析する影響解析部と、
該影響解析結果に基づいて、前記リクエストに関する多重度を変更する多重度変更部とを備えることを特徴とするサーバ。 - 前記サーバは、
監視対象システムに含まれるサブシステム間の関係を定義するシステム間構成定義、及び前記サブシステムそれぞれに含まれる構成要素を定義するサブシステム内部構成定義に基づいて、前記多重度の変更を行うことを特徴とする請求項5記載のサーバ。 - 前記サーバは、
前記ボトルネック解析結果、前記多重度修正結果、および前記影響解析結果を表示する表示情報を作成することを特徴とする請求項5記載のサーバ。 - 監視対象システムに対するリクエストの多重度を調整する多重度調整システムにおける多重度調整方法において、
前記多重度調整システムの多重度調整エージェントは、前記監視対象システムに含まれる構成要素に対するリクエストをもとに、該構成要素ごとのリクエストの多重度を判断し、
前記多重度調整システムの多重度調整サーバは、前記リクエストの多重度に関する情報を前記多重度調整エージェントから取得して、前記構成要素ごとのリクエスト情報として記憶し、
前記多重度調整システムの統合多重度解析サーバは、前記多重度調整サーバから前記記憶された構成要素ごとのリクエスト情報を取得し、該取得したリクエスト情報をもとに、前記構成要素ごとのリクエストの多重度を解析するとともに、該解析結果に応じて前記構成要素ごとのリクエストの多重度を変更することを備えることを特徴とする多重度調整方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005016250A JP2006209165A (ja) | 2005-01-25 | 2005-01-25 | 同時実行多重度調整システム及び方法 |
US11/129,332 US7756978B2 (en) | 2005-01-25 | 2005-05-16 | Multiplicity adjustment system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005016250A JP2006209165A (ja) | 2005-01-25 | 2005-01-25 | 同時実行多重度調整システム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006209165A true JP2006209165A (ja) | 2006-08-10 |
Family
ID=36696644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005016250A Pending JP2006209165A (ja) | 2005-01-25 | 2005-01-25 | 同時実行多重度調整システム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7756978B2 (ja) |
JP (1) | JP2006209165A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008250631A (ja) * | 2007-03-30 | 2008-10-16 | Hitachi Ltd | ストレージ装置及びその制御方法 |
JP2010028529A (ja) * | 2008-07-22 | 2010-02-04 | Nec Corp | 通信制御装置および通信制御方法 |
JPWO2008078593A1 (ja) * | 2006-12-22 | 2010-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation | メッセージ・ハブ装置、プログラム、および方法 |
JP2011028464A (ja) * | 2009-07-24 | 2011-02-10 | Hitachi Ltd | バッチ処理多重化方法 |
JP2012099062A (ja) * | 2010-11-05 | 2012-05-24 | Hitachi Ltd | サービス連携システムおよび情報処理システム |
JP2018147141A (ja) * | 2017-03-03 | 2018-09-20 | 三菱電機インフォメーションシステムズ株式会社 | スレッド数変動通信装置及びスレッド数変動通信プログラム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100866857B1 (ko) * | 2003-10-29 | 2008-11-04 | 인터내셔널 비지네스 머신즈 코포레이션 | 정보 시스템, 부하 제어 방법, 부하 제어 프로그램 및 기록매체 |
JP4117299B2 (ja) * | 2005-02-28 | 2008-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバの多重度の上限値を制御するための方法、管理サーバ、サーバ、およびプログラム |
JP4906686B2 (ja) * | 2007-11-19 | 2012-03-28 | 三菱電機株式会社 | 仮想マシンサーバサイジング装置及び仮想マシンサーバサイジング方法及び仮想マシンサーバサイジングプログラム |
US10011789B2 (en) * | 2010-01-12 | 2018-07-03 | Sasol Technology (Pty) Ltd. | Fischer-tropsch jet fuel process |
JP5811706B2 (ja) * | 2011-09-05 | 2015-11-11 | 富士通株式会社 | ストレージ装置,データ転送方法及びプログラム |
FR2982973B1 (fr) * | 2011-11-21 | 2014-05-23 | Bull Sas | Procedes de surveillance de grandeurs de dispositifs informatiques, programme d'ordinateur et dispositif associes |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05143559A (ja) | 1991-04-17 | 1993-06-11 | Toshiba Corp | 分散処理システムにおける負荷分散方法 |
JPH05173807A (ja) | 1991-12-20 | 1993-07-13 | Nec Corp | ジョブスケジュール方式 |
US6850530B1 (en) * | 2000-02-04 | 2005-02-01 | Cisco Technology, Inc. | Methods and apparatus for providing and obtaining resource usage information |
US7877435B2 (en) * | 2002-06-20 | 2011-01-25 | International Business Machines Corporation | Method and system for transaction pipeline decomposition |
US7272820B2 (en) * | 2002-12-12 | 2007-09-18 | Extrapoles Pty Limited | Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity |
JP4071668B2 (ja) * | 2003-04-16 | 2008-04-02 | 富士通株式会社 | システムの使用資源を調整する装置および方法 |
US20050027858A1 (en) * | 2003-07-16 | 2005-02-03 | Premitech A/S | System and method for measuring and monitoring performance in a computer network |
-
2005
- 2005-01-25 JP JP2005016250A patent/JP2006209165A/ja active Pending
- 2005-05-16 US US11/129,332 patent/US7756978B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2008078593A1 (ja) * | 2006-12-22 | 2010-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation | メッセージ・ハブ装置、プログラム、および方法 |
JP4988766B2 (ja) * | 2006-12-22 | 2012-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メッセージ・ハブ装置、プログラム、および方法 |
US8478810B2 (en) | 2006-12-22 | 2013-07-02 | International Business Machines Corporation | Message hub apparatus, program product, and method |
JP2008250631A (ja) * | 2007-03-30 | 2008-10-16 | Hitachi Ltd | ストレージ装置及びその制御方法 |
US8086773B2 (en) | 2007-03-30 | 2011-12-27 | Hitachi, Ltd. | Disk array subsystem and control method thereof |
US8407384B2 (en) | 2007-03-30 | 2013-03-26 | Hitachi, Ltd. | Disk array subsystem and control method thereof |
JP2010028529A (ja) * | 2008-07-22 | 2010-02-04 | Nec Corp | 通信制御装置および通信制御方法 |
JP2011028464A (ja) * | 2009-07-24 | 2011-02-10 | Hitachi Ltd | バッチ処理多重化方法 |
JP2012099062A (ja) * | 2010-11-05 | 2012-05-24 | Hitachi Ltd | サービス連携システムおよび情報処理システム |
JP2018147141A (ja) * | 2017-03-03 | 2018-09-20 | 三菱電機インフォメーションシステムズ株式会社 | スレッド数変動通信装置及びスレッド数変動通信プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20060165000A1 (en) | 2006-07-27 |
US7756978B2 (en) | 2010-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006209165A (ja) | 同時実行多重度調整システム及び方法 | |
Floratou et al. | Dhalion: self-regulating stream processing in heron | |
Coutinho et al. | Elasticity in cloud computing: a survey | |
US7783468B2 (en) | Automated system and method for service and cost architecture modeling of enterprise systems | |
US11736372B2 (en) | Collecting samples hierarchically in a datacenter | |
US20200034216A1 (en) | Router management by an event stream processing cluster manager | |
US20100299128A1 (en) | Automatic generation of hybrid performance models | |
US20060109857A1 (en) | System, method and computer program product for dynamically changing message priority or message sequence number in a message queuing system based on processing conditions | |
US11265231B2 (en) | Real-time ranking of monitored entities | |
Radhika et al. | A review on prediction based autoscaling techniques for heterogeneous applications in cloud environment | |
Moghaddam et al. | ACAS: An anomaly-based cause aware auto-scaling framework for clouds | |
Lin et al. | Cloud computing system risk estimation and service selection approach based on cloud focus theory | |
CN114490086A (zh) | 资源动态调整方法、装置、电子设备、介质和程序产品 | |
US10644971B2 (en) | Graph search in structured query language style query | |
Bacigalupo et al. | An investigation into the application of different performance prediction methods to distributed enterprise applications | |
Rahmani et al. | Architectural reliability analysis of framework-intensive applications: A web service case study | |
US10769218B2 (en) | Display for network time series data with adaptable zoom intervals | |
JP2007265244A (ja) | ウェブシステムの性能監視装置 | |
Prakash et al. | Hybrid reliability model to enhance the efficiency of composite web services | |
Rao et al. | CoSL: A coordinated statistical learning approach to measuring the capacity of multi-tier websites | |
Wilhelm | Capacity Planning for SAP-Concepts and tools for performance monitoring and modelling | |
Traore et al. | Performance analysis of distributed software systems: A model-driven approach | |
Luo et al. | An epidemic model based temporal violation prediction strategy for large batch of parallel business cloud workflows | |
Litoiu et al. | Object allocation for distributed applications with complex workloads | |
Müller et al. | Collaborative software performance engineering for enterprise applications |