(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024135794
(43)【公開日】2024-10-04
(54)【発明の名称】情報処理装置、分割条件の設定方法およびプログラム
(51)【国際特許分類】
G06F 11/30 20060101AFI20240927BHJP
【FI】
G06F11/30 155
G06F11/30 140A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023046663
(22)【出願日】2023-03-23
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】寺坂 智之
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042JJ23
5B042MA08
5B042MA11
5B042MC33
(57)【要約】
【課題】トランザクショングループを振り分けることができる分割条件を設定する方法を提供する。
【解決手段】情報処理装置は、トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する分割条件設定手段、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する分割条件設定手段、
を備える情報処理装置。
【請求項2】
前記分割条件設定手段は、前記トランザクションの識別情報および前記トランザクションの処理に用いられるデータを組み合わせた情報と、前記レスポンス時間と、に基づいて、前記分割条件を設定する、
請求項1に記載の情報処理装置。
【請求項3】
前記トランザクションの処理に用いられるデータはSQLである、
請求項2に記載の情報処理装置。
【請求項4】
前記分割条件設定手段は、前記レスポンス時間が長い前記トランザクションと、前記レスポンス時間が短い前記トランザクションと、を別々の前記トランザクショングループに振り分けるような前記分割条件を作成する、
請求項1又は請求項2に記載の情報処理装置。
【請求項5】
前記分割条件設定手段は、前記トランザクションの処理が遅延したときの前記レスポンス時間が閾値を超える前記トランザクションを抽出し、それらを1つの前記トランザクショングループに振り分けるような前記分割条件を作成する、
請求項4に記載の情報処理装置。
【請求項6】
前記分割条件設定手段は、前記トランザクションの処理が遅延していないときの前記レスポンス時間が閾値を超える場合に前記分割条件を作成する、
請求項1又は請求項2に記載の情報処理装置。
【請求項7】
前記分割条件設定手段は、前記トランザクションの処理が遅延したときの前記レスポンス時間が閾値未満となる場合に前記分割条件を作成する、
請求項1又は請求項2に記載の情報処理装置。
【請求項8】
前記分割条件設定手段が設定した前記分割条件に基づいて、前記トランザクションを前記トランザクショングループに振り分ける振分制御部、
をさらに備える請求項1又は請求項2に記載の情報処理装置。
【請求項9】
トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する、
分割条件の設定方法。
【請求項10】
コンピュータに、
トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する処理、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、分割条件の設定方法およびプログラムに関する。
【背景技術】
【0002】
アプリケーションが稼働するシステムの状態を把握するために、そのシステムで実行されるトランザクションに要する時間(レスポンス時間と呼ぶ。)を監視し、トランザクションの遅延を検出することがある。
【0003】
一般的に、トランザクションの遅延を監視する場合、レスポンス時間が、そのトランザクションに対して設定されている閾値を超える場合に遅延として検出する。遅延の判定に用いる閾値は、過去のレスポンス時間を分析し、標準偏差分析等を用いて算出されることが多い。
【0004】
しかし、分析対象の過去のトランザクションには、処理内容やトランザクションの特性によって、レスポンス時間が短いケースやレスポンス時間が長くなるケースが混在することがある。すると、レスポンス時間が長くても遅延ではない正常なトランザクションの影響で、過去のレスポンス時間から標準偏差分析等を用いて算出された閾値は、大きな値となってしまい、短いトランザクションの遅延が埋もれて検出できない可能性がある。短いレスポンス時間のトランザクションに対し、適切に遅延発生を検出するためには、できるだけレスポンス時間のばらつきが無いようにトランザクションをグループ化し、グループ毎に閾値を設定して、トランザクション遅延を検出することが望ましい。
【0005】
図1に、トランザクションの遅延を検出するシステムの一般的な構成例を示す。トランザクション処理システム1´は、トランザクション要求を行う端末100と、端末100から要求されたトランザクション処理およびトランザクション遅延検出を行うトランザクション処理装置200´を含む。トランザクション処理装置200´は、トランザクション入力部210と、トランザクションログ211と、トランザクショングループ振分制御部220と、トランザクショングループ設定部230と、トランザクション処理部250と、トランザクショングループ遅延検出部260と、トランザクショングループ集計プログラム部270と、トランザクショングループ集計値280と、を備える。
【0006】
トランザクション入力部210は、端末100からのトランザクション処理の要求を受け付ける。トランザクションログ211は、トランザクション入力部210が受け付けたトランザクション処理の入力履歴を保持する。トランザクショングループ振分制御部220は、トランザクション入力部210が受け付けたトランザクション処理を振分設定231に従って、トランザクショングループ毎に振り分ける。トランザクショングループ振分制御部220は、トランザクショングループ毎に振り分けたトランザクション処理をトランザクション処理部250に出力する。トランザクショングループ設定部230は、トランザクション処理をトランザクショングループ毎に振り分けるための設定を受け付ける。例えば、運用者は、トランザクショングループAに分類されるトランザクションの識別情報をトランザクション処理装置200に入力する。トランザクショングループ設定部230は、入力された情報を振分設定231として記憶する。上記のトランザクショングループ振分制御部220は、この振分設定231を参照して、該当する識別情報を有するトランザクションをトランザクショングループAに振り分ける。トランザクション処理部250は、端末100から要求されたトランザクション処理を実行する。トランザクショングループ遅延検出部260は、トランザクション処理部250でのトランザクション処理にかかったレスポンス時間を計測し、計測したレスポンス時間を次に説明するベースライン閾値282と比較して、この閾値以上であればトランザクションに遅延が生じていると判定する。トランザクショングループ集計プログラム部270は、トランザクショングループ遅延検出部260によって計測されたレスポンス時間をトランザクショングループ毎に集計し、トランザクショングループ集計値280を算出する。トランザクショングループ集計値280には、レスポンス集計値281とベースライン閾値282が含まれる。レスポンス集計値281とは、レスポンス時間の平均値などである。ベースライン閾値282は、レスポンス時間の平均値に標準偏差を加算する等して計算される。
【0007】
例えば、
図1に例示するトランザクション処理システム1´の場合、トランザクション遅延を精度よく検出するためには、長いレスポンス時間のトランザクションと、短いレスポンス時間のトランザクションが別々にグループ化されるように、振分設定231にトランザクションの識別情報を設定する必要がある。
【0008】
しかし、一般的に、トランザクション処理を行うアプリケーションは、様々な処理が複合してできており、レスポンス時間を考慮してトランザクションを分割することは困難である。その為、同じアプリケーションから発行されるトランザクションであってもレスポンス時間のばらつきが大きくなる場合がある。トランザクション遅延を精度よく検出できるように振分設定231の設定を行うためには、トランザクションの処理内容の詳細な把握や、グループ分け設計の調整など煩雑な作業を行うことになるが、そのためには多くの時間や労力が必要である。
【0009】
なお、特許文献1には、トランザクションをアプリケーションによって分類し、分類したグループごとにレスポンス時間の統計値などを算出する監視装置が開示されている。しかし、特許文献1には、上記の問題を解決する技術は開示されていない。
【先行技術文献】
【特許文献】
【0010】
【発明の概要】
【発明が解決しようとする課題】
【0011】
精度よくトランザクション遅延を検出するためには、レスポンス時間が同程度となるトランザクションを同じトランザクショングループに振り分ける必要があるが、この振り分け効率よく行う技術が必要とされている。
【0012】
そこでこの発明は、上述の課題を解決する情報処理装置、分割条件の設定方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0013】
本発明の一態様によれば、情報処理装置は、トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する分割条件設定手段を備える。
【0014】
本発明の一態様によれば、分割条件の設定方法は、トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する。
【0015】
本発明の一態様によれば、プログラムは、コンピュータに、トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する処理を実行させる。
【発明の効果】
【0016】
本発明によれば、自動的にトランザクショングループを振り分けることができる。
【図面の簡単な説明】
【0017】
【
図1】一般的なトランザクション処理システムの一例を示す図である。
【
図2】第一実施形態に係るトランザクション処理システムの一例を示す図である。
【
図3A】第一実施形態に係るトランザクショングループの振り分け処理を説明する第1の図である。
【
図3B】第一実施形態に係るトランザクショングループの振り分け処理を説明する第2の図である。
【
図4】第二実施形態に係るトランザクション処理システムの一例を示す図である。
【
図5A】第二実施形態に係るトランザクショングループの振り分け処理を説明する第1の図である。
【
図5B】第二実施形態に係るトランザクショングループの振り分け処理を説明する第2の図である。
【
図6】最小構成を有する情報処理装置の構成を示すブロック図である。
【
図7】最小構成を有する情報処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明の各実施形態に係るトランザクション遅延検出のためのトランザクショングループ振り分け処理(グループの振り分けのことをグループ分割ともいう。)について図面を参照して説明する。以下の説明に用いる図面において本発明に関係ない部分の構成については、記載を省略し、図示しない場合がある。
【0019】
<第1実施形態>
(構成)
図2は、本発明の実施形態に係るトランザクション処理システムの一例を示す図である。トランザクション処理システム1は、端末100と、トランザクション処理装置200を含む。トランザクション処理装置200は、トランザクション入力部210と、トランザクションログ211と、トランザクショングループ振分制御部220と、トランザクショングループ設定部240と、トランザクション処理部250と、トランザクショングループ遅延検出部260と、トランザクショングループ集計プログラム部270と、トランザクショングループ集計値280と、を備える。
【0020】
図2のトランザクション処理システム1と、
図1に示す一般的なトランザクション処理システム1´との違いは、本実施形態に係るトランザクション処理システム1が、トランザクショングループ設定部230に代えて、トランザクショングループ設定部240を備えていることである。トランザクショングループ設定部240以外の構成については、
図1を用いて説明したとおりである。トランザクショングループ設定部240は、トランザクショングループ分割プログラム部241と、トランザクショングループ分割条件242を備える。以下、トランザクショングループ設定部240を中心にトランザクション処理システム1の機能・動作の概要を説明する。
【0021】
(動作の概要)
端末100からトランザクション処理装置200に対して、トランザクション処理が要求される。トランザクション入力部210は、この要求を受け付け、要求されたトランザクション処理の履歴をトランザクションログ211に記録するとともに、トランザクショングループ振分制御部220に受け付けたトランザクション処理を送る。
【0022】
トランザクショングループ振分制御部220は、トランザクショングループ設定部240にて定義されるトランザクショングループ分割条件242に従い、送られてきたトランザクション処理を何れかのトランザクショングループに振り分け、トランザクション処理をトランザクション処理部250に送る。トランザクション処理部250は、要求されたトランザクション処理を実行する。トランザクション処理の結果は端末100へ送信される。
【0023】
トランザクショングループ遅延検出部260は、トランザクション処理部250での処理時間(つまり、レスポンス時間)を計測し、レスポンス集計値281とベースライン閾値282によって遅延を検出する。
【0024】
トランザクショングループ集計プログラム部270は、レスポンス時間をトランザクショングループ毎に集計し、トランザクショングループ集計値280を算出する。トランザクショングループ集計値280には、レスポンス集計値281とベースライン閾値282が含まれる。例えば、レスポンス集計値281は、レスポンス時間の平均値、最大値、最小値などである。ベースライン閾値282は、例えば、レスポンス集計値281のうちのレスポンス時間の平均値にレスポンス時間の標準偏差×2を加算した値である。
【0025】
トランザクショングループ集計値280として算出された結果は、トランザクショングループ設定部240のトランザクショングループ分割プログラム部241にフィードバックされる。トランザクショングループ分割プログラム部241は、レスポンス集計値281とベースライン閾値282を検証し、ベースライン閾値282の精度が悪い場合は、トランザクショングループの分割条件(振り分け条件)を作成する。トランザクショングループ分割プログラム部241は、作成した分割条件を、トランザクショングループ分割条件242に反映させて、トランザクショングループ分割条件242を更新する。
【0026】
なお、トランザクションログ211、トランザクショングループ集計値280、レスポンス集計値281、ベースライン閾値282、トランザクショングループ分割条件242は、トランザクション処理装置200の記憶部にて記憶されている。
【0027】
(動作の詳細)
次に
図3A,
図3Bを参照して、HTTP(Hypertext Transfer Protocol)リクエストによるトランザクションを処理するWebサーバが、トランザクション処理装置200である場合を例として、トランザクショングループの振り分けおよびトランザクショングループ分割条件の更新処理について説明する。
【0028】
図3Aにトランザクション入力部210が受け付けるトランザクションの内容(
図3Aの表の「トランザクション説明用識別コード」、「トランザクション識別情報」)、トランザクショングループ分割プログラム部241の処理内容(
図3Aの表の「トランザクションパターン抽出」)、トランザクショングループ分割条件242の内容(
図3Aの「最遅パターン抽出処理」)を示す。
【0029】
図3Bにトランザクション入力部210が受け付けたトランザクションの識別情報(
図3Bの表の「トランザクション説明用識別コード」)、トランザクショングループ振分制御部220による振り分け条件(
図3Bの表の「トランザクショングループ分割条件」)、トランザクショングループ集計プログラム部270の処理結果(
図3Bの表の「トランザクショングループ集計値 最小/平均/最大 閾値」)、トランザクショングループ遅延検出部260がトランザクション遅延の検出に用いる情報(
図3Bの表の「レスポンス時間(正常)」~「遅延検出(閾値との比較結果)」)を示す。
【0030】
なお、
図3A、
図3Bの表は、本来1つの表であって、便宜上2つの図に分割して記載している。例えば、
図3Aの1行目(「トランザクショングループ分割処理(1回目)」の「A」の行)は、
図3Bの1行目(「トランザクショングループ分割処理(1回目)」の「A」の行)に続く。
【0031】
(1回目の処理)
トランザクション処理装置200は、URL(Uniform Resource Locator)で識別されるトランザクションとして、「http://localhost/requestA」から「http://localhost/requestF」までの6つの異なるトランザクションを受け付ける。以降、各トランザクションをトランザクションA~Fと記載する。各トランザクションのレスポンス時間の正常値と遅延値を、それぞれ、レスポンス時間(正常時)、レスポンス時間(遅延時)と記載する。
【0032】
トランザクションA~Fを最初に処理したときの状況を、
図3A~
図3Bの「トランザクショングループ分割処理(1回目)」の行(6行分)に示す。1回目の処理では、トランザクションA~Fは全てレスポンス時間(正常時)で処理できたとする。1回目の処理の場合、トランザクショングループ分割プログラム部241では、抽出パターンが無いため(
図3Aの「トランザクショングループ分割処理(1回目)」の行、「トランザクションパターン抽出」の列)、トランザクショングループ分割は行われず、トランザクショングループ振分制御部220によるトランザクショングループ分割条件も“なし”となる(
図3Bの「トランザクショングループ分割条件」列)。その結果、トランザクションA~Fの全てが同じトランザクショングループとして振り分けられる。
【0033】
トランザクショングループ遅延検出部260にて計測されたレスポンス時間は、トランザクショングループ集計プログラム部270で集計され、例えば、レスポンス時間の最小値、平均値、最大値と、閾値が計算される(
図3Bの「トランザクショングループ集計値 最小~」の列)。閾値は、例えば、計測されたレスポンス時間の平均値+計測されたレスポンス時間の標準偏差×2によって計算される。
【0034】
これらの集計値は、トランザクショングループ遅延検出部260に渡され、トランザクション遅延の有無が検出される。この例では、計算された閾値は500msとなる。トランザクションFは、遅延の無い正常なレスポンス時間(1200ms)であり、閾値を超えるため遅延と判定されるが、これは誤検知である。誤検知とは、レスポンス時間を閾値と比較した場合に、レスポンス時間が閾値よりも長くなるためトランザクション遅延が生じていると判定されるが、実際には遅延が生じていないことを意味する。
【0035】
また、上記の各種集計値は、トランザクショングループ分割プログラム部241に渡され、閾値の精度がチェックされる。トランザクションA~Eのレスポンス時間(遅延時)は、短い処理時間のため(それぞれ、30ms,40ms、30ms、240ms、260ms)、これらのトランザクションで遅延が生じたとしても、500msに設定された閾値では、遅延が検出できない。また、トランザクションFについては、正常なトランザクションであるにもかかわらず、遅延と検出されてしまう(誤検知)。このような場合、閾値の精度に問題があるため、トランザクショングループ分割プログラム部241にて、トランザクショングループの分割条件を抽出する処理が実行される。例えば、トランザクショングループ分割プログラム部241は、閾値よりもレスポンス時間(遅延時)が短い場合に、閾値の精度に問題があると判定する。あるいは、トランザクショングループ分割プログラム部241は、閾値よりもレスポンス時間(正常時)が長い場合に、閾値の精度に問題があると判定する。トランザクショングループ分割プログラム部241は、閾値の精度に問題があると判定すると、新たな分割条件を作成する。
【0036】
(2回目)
次に、トランザクショングループ分割処理(2回目)の動作について説明する。まず、トランザクショングループ分割プログラム部241は、新たな分割条件を抽出する。具体的には、トランザクショングループ分割プログラム部241は、トランザクションA~Fのうちのレスポンス時間の長い上位のトランザクションから、トランザクション識別情報のパターンを抽出する。上位のトランザクションとは、例えば、レスポンス時間(遅延時)が閾値を超えるトランザクションである。この例では、トランザクションFが上位のレスポンス時間のトランザクションとして検出される。トランザクションFを抽出するために、トランザクショングループ分割プログラム部241は、トランザクション識別情報の特長点から”requestF”が含まれる場合は、別トランザクションに振り分けることを意味する分割条件を抽出する(
図3Aの「トランザクショングループ分割処理(2回目)」の行の「最遅パターン抽出処理」列の”requestF”)。
【0037】
次に、トランザクショングループ振分制御部220は、新たに抽出された分割条件に従い、トランザクションFをトランザクションA~Eとは別のグループに分割する(
図3Bの「トランザクショングループ分割処理(2回目)」の行の「トランザクション説明用識別コード」および「トランザクショングループ分割条件」列)。
【0038】
次にトランザクショングループ集計プログラム部270は、分割されたトランザクショングループ毎(トランザクションA~EとトランザクションFごと)に集計を行い、レスポンス時間の最小値、閾値、最大値、閾値を算出する。この例では、トランザクションA~Eのトランザクショングループの閾値は180ms、トランザクションFのグループの閾値は1500msに設定される(
図3Bの「トランザクショングループ分割処理(2回目)」の行の「トランザクショングループ集計値~」列)。
【0039】
これらの集計値は、トランザクショングループ分割プログラム部241に渡され、閾値の精度がチェックされる。この例の場合、トランザクションFの遅延とトランザクションD、Eの遅延は正しく検出されるが、トランザクションA~Cの遅延時は、それぞれのレスポンス時間(遅延時)が30ms、30ms,40msのため、閾値180msでは遅延を検出できない。トランザクショングループ遅延検出部260は、トランザクションA~Cの閾値の精度に問題があると判断し、トランザクショングループA~Eについての新たな分割条件を抽出する。
【0040】
(3回目)
トランザクショングループ分割処理(3回目)の動作について説明する。まず、トランザクショングループ分割プログラム部241は、新たな分割条件の抽出を行う。トランザクショングループ分割プログラム部241は、トランザクションA~Eのうちのレスポンス時間の長い上位のトランザクションから、トランザクション識別情報のパターンを抽出する。この例では、遅延を検出することができる(つまり、閾値がレスポンス時間(正常時)より長く、閾値がレスポンス時間(遅延時)が閾値より短い)トランザクションD,Eを上位のレスポンス時間のトランザクションとして検出する。トランザクションD,Eを抽出するために、トランザクショングループ分割プログラム部241は、トランザクション識別情報の特長点から、”request(D|E)”に一致する場合は、別トランザクションとする分割条件を新たに作成する。ここでは、便宜上、分割条件を正規表現で記載している。
【0041】
次に、トランザクショングループ振分制御部220は、抽出された分割条件に従い、トランザクションA~CとトランザクションD,EとトランザクションFの各グループに分割する(
図3Bの「トランザクショングループ分割処理(3回目)」の行の「トランザクション説明用識別コード」および「トランザクショングループ分割条件」列)。
【0042】
次に、トランザクショングループ集計プログラム部270は、分割されたトランザクショングループ毎に集計を行い、レスポンス時間の最大値、平均値、最小値、閾値を算出する。この例では、トランザクションA~Cのグループの閾値は26ms、トランザクションD,Eのグループの閾値は150ms、トランザクションFのグループの閾値は1500msに設定される。
【0043】
集計値は、トランザクショングループ分割プログラム部241に渡され、閾値の精度がチェックされる。この例では、トランザクションA~C遅延時のレスポンス時間(遅延)は、それぞれ、30ms、30ms、40msであり、閾値26msによってトランザクションの遅延を検出でき、正しい精度の閾値が設定される。
【0044】
他にもトランザクションがあれば、同様にして閾値の精度に問題があるトランザクショングループはトランザクショングループ分割プログラム部241で、分割条件が抽出され、最終的に適切な精度にまでトランザショングループが自動で分割される。
【0045】
(効果)
以上説明したように、本実施形態によれば、自動的に、レスポンス時間が同程度となるトランザクション処理を、同じトランザクショングループに振り分けることができる。より具体的には、(1)トランザクショングループ分割プログラム部241において、トランザクションの処理時間を意識することなく、トランザクショングループの分割を再帰的に行うことで、トランザクションの適切な遅延閾値精度となるように、自動でグループを分割できる。(2)また、トランザクションの適切な閾値精度となるよう自動でグループを分割できることから、これまで長い正常なトランザクションに埋もれて検出が困難だった短い時間の遅延トランザクションを検出することができる。
【0046】
<第2実施形態>
次に
図4~
図5Bを参照して、本発明の他の実施形態(第2実施形態)について説明する。第2実施形態では、トランザクショングループ分割プログラム部241において、トランザクション説明用識別コードを拡張し、トランザクション処理中のデータ(例えば、SQL(Structured Query Language)文字列)をトランザクション説明用識別コードと合わせることで、トランザクション識別の細部化を実現する。
【0047】
(構成)
図4に、第二実施形態に係るトランザクション処理システム1Aを示す。トランザクション処理システム1Aは、端末100と、トランザクション処理装置200Aを含む。トランザクション処理装置200Aは、トランザクショングループ集計値280にSQL集計値283が追加されている点で、第1実施形態に係るトランザクション処理装置200と異なる。他の構成については、第一実施形態と同様である。
【0048】
トランザクショングループ集計プログラム部270は、トランザクショングループ集計値280として、レスポンス集計値281、ベースライン閾値282に加え、トランザクショングループで処理されるSQL文とSQLのレスポンス時間を集計して、SQL集計値283を算出する。
【0049】
トランザクショングループ集計値280として算出された結果は、トランザクショングループ設定部240のトランザクショングループ分割プログラム部241にフィードバックされ、レスポンス集計値281とベースライン閾値282が検証され、ベースライン閾値282の精度が悪い場合は、新たなトランザクショングループの分割条件を抽出する。新たに抽出された分割条件は、トランザクショングループ分割条件242に反映される。
【0050】
(動作)
次に
図5A,
図5Bを参照して、HTTPリクエストによるトランザクションを処理するWebサーバが、トランザクション処理装置200である場合を例として、第二実施形態におけるトランザクショングループの振り分けおよびトランザクショングループ分割条件の更新処理について説明する。
【0051】
図5Aにトランザクション入力部210が受け付けるトランザクションの内容(
図5Aの表の「トランザクション説明用識別コード」、「トランザクション識別情報」、「トランザクション内識別文字列情報」)、トランザクショングループ分割プログラム部241の処理内容(
図5Aの表の「トランザクションパターン抽出」)を示す。
【0052】
図5Bにトランザクション入力部210が受け付けたトランザクションの識別情報(
図5Bの表の「トランザクション説明用識別コード」)、トランザクショングループ分割条件242の内容(
図5Bの「最遅パターン抽出処理」)、トランザクショングループ振分制御部220による振り分け条件(
図5Bの表の「トランザクショングループ分割条件」)、トランザクショングループ集計プログラム部270の処理結果(
図5Bの表の「トランザクショングループ集計値 最小/平均/最大 閾値」)、トランザクショングループ遅延検出部260がトランザクション遅延の検出に用いる情報(
図5Bの表の「レスポンス時間(正常)」~「遅延検出(閾値との比較結果)」)を示す。
【0053】
なお、
図5A、
図5Bの表は、本来1つの表であって、便宜上2つの図に分割して記載している。例えば、
図5Aの1行目(「トランザクショングループ分割処理(1回目)」の「A1」の行)は、
図5Bの1行目(「トランザクショングループ分割処理(1回目)」の「A1」の行)に続く。
【0054】
(1回目)
トランザクション処理装置200のトランザクション入力部210は、URLで識別されるトランザクションとして、「http://localhost/requestA」から「http://localhost/requestB」の2つの異なるトランザクションを受け付ける。トランザクションA,Bでは、トランザクション処理内でトランザクション内データに応じたSQL文を実行しており、SQL文とレスポンス時間は、トランザクショングループ集計プログラム部270のSQL集計値283として集計されている。トランザクション識別情報には、トランザクション識別子のURLに、トランザクション内識別文字列情報としてSQL文を加えたものとする。以降、各トランザクションと各トランザクションで行われるSQL文のパターンに応じて、トランザクションをA1~A3、B1~B3と記載する。
【0055】
トランザクションA~Fを最初に処理したときの状況を、
図5A、
図5Bの「トランザクショングループ分割処理(1回目)」の行にて示す。1回目の処理では、トランザクションA~Fは全てレスポンス時間(正常時)で処理できたとする。1回目では、トランザクショングループ分割プログラム部241では、抽出パターンは無いため分割は行われず、トランザクショングループ振分制御部220におけるトランザクショングループ分割条件も“なし”となる。その結果、トランザクションA1~A3、B1~B3の全てが同じトランザクショングループとしてトランザクショングループ集計プログラム部270で集計され、レスポンス時間の集計値(最小値、平均値、最大値)と、閾値が計算される。
【0056】
集計値は、トランザクショングループ分割プログラム部241に渡され、閾値の精度をチェックする。この例では、集計された閾値は100msとなる。トランザクションA2,B2は、正常なレスポンス時間であるが閾値を超えるため誤検知となる。また、トランザクションA1,A3,B1,B3のレスポンス時間(遅延時)は、100ms未満のため、閾値100msによって遅延を検出することができない。閾値の精度に問題があるため、トランザクショングループ分割プログラム部241は、トランザクショングループの新たな分割条件を抽出する。
【0057】
(2回目)
トランザクショングループ分割処理(2回目)の動作について説明する。トランザクションA1~A3,B1~B3のうちのレスポンス時間の長い上位のトランザクションから、トランザクション識別情報のパターンを抽出する。このケースでは、トランザクションA2,B2が上位レスポンス時間のトランザクションとして検出され、トランザクション識別情報の特長点から、“update ? Set ? where id=?”が含まれる場合は、別トランザクションとする分割条件が新たに抽出される。トランザクショングループ振分制御部220は、抽出された分割条件に従い、トランザクションA1,A3,B1,B3とトランザクションA2,B2の2つのグループに分割する。
【0058】
次にトランザクショングループ集計プログラム部270では、分割されたトランザクショングループ毎に集計を行い、閾値などを算出する。この例では、トランザクションA1,A3、B1,B3のグループの閾値は25ms、トランザクションA2,B2のグループの閾値は150msに設定される。集計値は、トランザクショングループ分割プログラム部241に渡され、閾値の精度がチェックされる。この例では、トランザクションA2,B2の正常時の誤検知が解消され、トランザクションA1,A3,B1,B3の遅延時の検出も正しく行われるため、正しい精度にトランザクショングループの分割が行われている。
【0059】
(効果)
第二実施形態によれば、第一実施形態の効果に加え、トランザクション処理内の情報を利用して、トランザクションを細分化することによって、より精度の高い、レスポンス時間のばらつきを最小化するトランザクショングループへの分割を行うことができる。
【0060】
なお、上記の説明では、第一実施形態、第二実施形態に係るトランザクション遅延検出のためのトランザクショングループ振り分け処理を、Webアプリケーションを実行するトランザクション処理システムおけるトランザクション遅延の監視用に利用する場合を例に説明を行ったが、これに限定されない。例えば、Webサービスにおける提供サービスの遅延監視としての利用、モバイル機器のアプリケーションにおけるトランザクション処理の遅延監視としての利用、IoT(Internet of Things)分野のデータ収集処理システムにおける遅延監視としての利用などに適用することができる。
【0061】
また、上記の説明では、レスポンス時間の集計値(最小値、平均値、最大値)と、閾値の検証をトランザクショングループ分割プログラム部241で行うこととしたが、この検証自体は、トランザクショングループ遅延検出部260にて行い、閾値の精度に問題がある場合には、トランザクショングループ遅延検出部260が、トランザクショングループの分割条件を抽出するようトランザクショングループ分割プログラム部241へ指示するように構成してもよい。
【0062】
(最小構成)
図6は、最小構成を有する情報処理装置の構成を示すブロック図である。
情報処理装置800は、分割条件設定手段810を備える。
分割条件設定手段810は、トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する。
トランザクション処理装置200は、情報処理装置800の一例である。トランザクショングループ分割プログラム部241は、分割条件設定手段810の一例である。トランザクショングループ分割条件242は、分割条件の一例である。
【0063】
例えば、分割条件設定手段810は、トランザクションシステムでのトランザクション処理遅延を検出するために、過去のトランザクションレスポンス時間から閾値を算出、設定するシステムにおいて、過去のトランザクションレスポンス時間のばらつきが大きい場合に、レスポンス時間が長いトランザクションから共通的なトランザクションの特長情報を抽出し、長いレスポンス時間のトランザクションとそれ以外のトランザクションを別々のトランザクショングループに振り分けるような分割条件を作成する。すると、システムにより、トランザクションの遅延閾値がトランザクショングループごとに設定される。これにより、ユーザはトランザクション毎に変動するレスポンス時間を意識せずに、トランザクションの適切なグループ化することができ、グループ化による閾値の精度向上と、短いトランザクション処理における遅延の適切な検出が可能になる。
【0064】
また、分割条件設定手段810は、トランザクションのレスポンス時間のばらつきが大きい場合、レスポンス時間の長いトランザクションにグループの分割を行い、さらに、分割されたグループ毎に対しても、レスポンス時間のばらつきが大きい場合には、再度分割を行う。このように、再帰的にグループを分割することで、トランザクションの遅延得kン検出の検出精度が適切な精度になるまでグループの分割が行われる。これにより、ユーザがトランザクションのグループを意識せずに、全てのトランザクションを精度の高い閾値での監視を実現し、ユーザによるグループ化設定や設定見直しにかかる煩雑な作業を大幅に削減することができる。
【0065】
図7は、最小構成を有する情報処理装置の動作を示すフローチャートである。
分割条件設定手段810は、トランザクションの識別情報と、前記トランザクションを処理したときのレスポンス時間と、に基づいて、前記トランザクションをトランザクショングループに振り分けるための分割条件を設定する(ステップS801)。
【0066】
なお、上述した実施形態におけるトランザクション処理装置200、200´、200A、端末100の一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、トランザクション処理装置200、200´、200A、端末100に内蔵されたコンピュータシステムであって、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
【0067】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0068】
また、上述した実施形態におけるトランザクション処理装置200、200´、200A、端末100の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。トランザクション処理装置200、200Aの各機能部は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0069】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、本発明の一態様は、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。また、上記各実施形態や変形例に記載された要素であり、同様の効果を奏する要素同士を置換した構成も含まれる。
【符号の説明】
【0070】
1、1A、1´・・・トランザクション処理システム
100・・・端末
200、200A、200´・・・トランザクション処理装置
210・・・トランザクション入力部
211・・・トランザクションログ
220・・・トランザクショングループ振分制御部
230・・・トランザクショングループ設定部
231・・・振分設定
240・・・トランザクショングループ設定部
250・・・トランザクション処理部
260・・・トランザクショングループ遅延検出部
270・・・トランザクショングループ集計プログラム部
280・・・トランザクショングループ集計値
240・・・トランザクショングループ設定部
241・・・トランザクショングループ分割プログラム部
242・・・トランザクショングループ分割条件