JP5565181B2 - Prediction device, prediction method, and prediction program - Google Patents
Prediction device, prediction method, and prediction program Download PDFInfo
- Publication number
- JP5565181B2 JP5565181B2 JP2010176023A JP2010176023A JP5565181B2 JP 5565181 B2 JP5565181 B2 JP 5565181B2 JP 2010176023 A JP2010176023 A JP 2010176023A JP 2010176023 A JP2010176023 A JP 2010176023A JP 5565181 B2 JP5565181 B2 JP 5565181B2
- Authority
- JP
- Japan
- Prior art keywords
- executed
- prediction
- probability
- notification
- processing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 169
- 238000012545 processing Methods 0.000 claims description 243
- 230000008569 process Effects 0.000 claims description 162
- 230000007704 transition Effects 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 17
- 238000013461 design Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 24
- 238000004458 analytical method Methods 0.000 description 20
- 239000000872 buffer Substances 0.000 description 9
- 238000000605 extraction Methods 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、複数の処理装置を含むシステムにおいて、複数の処理装置に要求される処理量の予測を行なう装置、方法及びプログラムに関する。 The present invention relates to an apparatus, a method, and a program for predicting a processing amount required for a plurality of processing apparatuses in a system including a plurality of processing apparatuses.
複数の処理装置を含むシステムに対して要求される処理量が、システム内で稼働中の処理装置によって処理可能な処理量よりも少なく、稼働中の処理装置のうちの一部を除いても要求された処理を実行可能な場合は、その一部の処理装置を稼動状態にしておくために過分に電力や、CPUやメモリといったマシンリソースを消費してしまう。また、複数の処理装置のうちの一部を待機状態とした場合には、要求される処理量が増加することにより、要求される処理量が稼働中の処理装置の処理能力を超えてしまうことも考えられる。 The amount of processing required for a system including multiple processing devices is smaller than the processing amount that can be processed by the processing devices operating in the system, and is required even if some of the operating processing devices are excluded. When the processed processing can be executed, excessive power and machine resources such as CPU and memory are consumed in order to keep some of the processing devices in an operating state. In addition, when a part of a plurality of processing devices is set in a standby state, the required processing amount increases and the required processing amount exceeds the processing capacity of the operating processing device. Is also possible.
例えば、特許文献1には、コンピュータシステムの稼動状態に関する情報を収集し、収集された情報間の相関関係を示す相関情報を記録し、前記相関情報を参照して、前記収集された情報から、前記コンピュータシステムで実行されるサービスに生じた障害を検出し、前記検出された障害を回復するための処理を生成し、相関情報を参照して、生成された処理の実行によって前記コンピュータシステムに与えられる効果及び影響を判定し、前記効果及び影響が判定された処理の実行の要否、実行順序及び実行時刻を決定する技術が開示されている。
For example,
また、例えば特許文献2には、クライアント端末からの要求のうち、アプリケーションサーバからの応答時間が規定時間を超え、クライアント端末で受け付けられなくなるような、アプリケーションサーバでのデータベースの検索処理が発生した場合、エラーとなる要求の処理をすることなくエラー応答をするアプリケーションサーバの処理方法が開示されている。
Also, for example, in
また、例えば特許文献3には、一定時間間隔毎に、バッファプール管理テーブルより、基本確保バッファ数、現在のバッファ数、イメージ保有バッファ数といった、バッファプール毎の負荷情報を取得し、取得した負荷情報をもとに欠くバッファプールに必要とされているバッファの最低数を決定し、データの出力が行なわれていないタイミングで、各バッファプールに対してバッファを追加あるいは削除することが開示されている。
Further, for example, in
また、例えば特許文献4には、ログファイルを通してユーザーによるパーソナルコンピュータの使用量を測定し、コンピュータ使用傾向を予測することが開示されている。
For example,
しかしながら、システムに要求される処理量が増加した際に、待機状態にある処理装置を稼動状態にさせたとしても、処理装置が稼動状態になるために時間を要するため、システムに要求された処理量がシステム内の稼働中の処理装置群の処理能力を超えたことが明らかになったとしても、その時点においてその状態を改善することができなかった。 However, when the processing amount required for the system increases, even if the processing device in the standby state is put into operation, it takes time for the processing device to be in operation. Even if it became clear that the quantity exceeded the processing capacity of the active processing equipment group in the system, the situation could not be improved at that time.
本発明は、システムに要求された処理量が、システム内の稼働中の処理装置群の処理能力を超過することの予測を目的とする。 An object of the present invention is to predict that the amount of processing required for a system will exceed the processing capacity of an active processing device group in the system.
第1の案として、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第1の処理を実行してから前記複数種類の処理のうちの第2の処理を実行するまでの予測時間を算出し、前記第1の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第2の処理が実行されることを予測することをコンピュータに実行させることを特徴とする予測プログラムを用いる。 As a first proposal, based on an order relationship between the processes of the plurality of types of processes defined in the source code that defines a plurality of types of processes executed in response to a request, the first of the plurality of types of processes The estimated time from the execution of the first process to the execution of the second process among the plurality of types of processes is calculated, and when the first process is detected, the calculated time is calculated. A prediction program that causes a computer to predict that the second process is executed after the time indicated by the prediction time is used.
第2の案として、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第1の処理を実行してから前記複数種類の処理のうちの第2の処理を実行するまでの予測時間を算出し、前記第1の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第2の処理が実行されることを予測することを含むことを特徴とする予測方法を用いる。 As a second proposal, based on the order relationship between the processes of the plurality of types of processes defined in the source code that defines a plurality of types of processes executed in response to the request, the first of the plurality of types of processes The estimated time from the execution of the first process to the execution of the second process among the plurality of types of processes is calculated, and when the first process is detected, the calculated time is calculated. A prediction method including predicting that the second process is executed after the time indicated by the prediction time is used.
第3の案として、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第1の処理を実行してから前記複数種類の処理のうちの第2の処理を実行するまでの予測時間を算出する算出手段と、前記第1の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第2の処理が実行されることを予測する予測手段とを含むことを特徴とする予測装置を用いる。 As a third proposal, based on the order relationship between the processes of the plurality of types of processes defined in the source code that defines a plurality of types of processes executed in response to the request, the first of the plurality of types of processes A calculation means for calculating a predicted time from execution of the first process to execution of the second process of the plurality of types of processes, and when detecting that the first process has been executed, And a prediction unit that predicts that the second process is executed after the time indicated by the calculated prediction time.
第4の案として、稼働中の第1の装置及び待機中の第2の装置、並びに前記第1の装置及び前記第2の装置と通信可能な第3の装置であって、要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第1の処理を実行してから前記複数種類の処理のうちの第2の処理を実行するまでの予測時間を算出する算出手段と、前記第1の処理が実行されたことを検知した場合に、算出した前記予測時間に示される時間後に前記第2の処理が実行されることを予測する予測手段と前記予測手段の予測結果に応じて、前記第2の装置に稼動指示を出力する出力手段とを含むことを特徴とする予測システムを用いる。 As a fourth plan, a first device that is in operation and a second device that is on standby, and a third device that can communicate with the first device and the second device, in response to a request. Based on the order relationship between the processes of the plurality of types of processes defined in the source code that defines the plurality of types of processes to be executed, the plurality of types of processes are executed, and then the plurality of processes are performed. The calculation means for calculating the predicted time until the second process of the types of processes is executed, and after detecting the execution of the first process, after the time indicated by the calculated predicted time A prediction system comprising: a prediction unit that predicts that the second process is executed; and an output unit that outputs an operation instruction to the second device according to a prediction result of the prediction unit. Use.
本発明は、システムに要求された処理量が、システム内の稼働中の処理装置群の処理能力を超過することを予測する。 The present invention predicts that the amount of processing required for the system exceeds the processing capacity of the active processing device group in the system.
以下、図面を参照しつつ本発明の実施形態について説明する。
[第1の実施形態]
まず、本実施形態のシステムの概容を説明する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
First, an overview of the system of this embodiment will be described.
図1は、本実施形態の装置の配置例を示す。1は管理装置を示し、2a〜2eのそれぞれは処理装置を示し、3a〜3eのそれぞれは記憶装置を示し、4は負荷分散装置を示し、5、6はネットワークを示し、7は端末装置を示す。 FIG. 1 shows an arrangement example of the apparatus of the present embodiment. 1 is a management device, 2a to 2e are processing devices, 3a to 3e are storage devices, 4 is a load distribution device, 5 and 6 are networks, and 7 is a terminal device. Show.
管理装置1は、ネットワーク5を介した通信により、処理装置2a〜2eから取得した情報に基づいて、処理装置2a〜2e及び記憶装置3a〜3eのそれぞれに指示を送信可能なコンピュータである。もしくは、管理装置1の機能を処理装置2a〜2eのいずれかが備えても良い。
The
処理装置2a〜2eのそれぞれは、端末装置7に要求された処理を実行するサーバとしての役割を果たしうるコンピュータである。例えば、処理装置2a〜2eが果たす役割として、端末装置7からのアクセスに応じてWebアプリケーションを提供する役割などが考えられる。図1では、例として、稼働中の処理装置2a〜2cを実線で示し、待機中の処理装置2d,2eを点線で示している。また、図1においては、5台の処理装置を例示しているが、台数をこれに制限するものでない。
Each of the
稼働中の処理装置とは、端末装置7からの要求に応じた処理を実行可能な状態にある処理装置であり、待機中の処理装置とは、端末装置7からの要求に応じた処理を実行可能な状態に移行するまでに時間を要する状態にある処理装置である。待機中の処理装置は、例えば、スタンバイ状態にある処理装置、停止している処理装置などである。スタンバイ状態は、運用上の定義によるが、例えば、主電源がONであり、且つ部分的に給電を停止した状態などのことであり、運用上スタンバイ状態を複数種類定義しても良い。
An active processing device is a processing device in a state where processing according to a request from the
記憶装置3a〜3eのそれぞれは、例えば、HHD(Hard Disk Drive)、SSD(Solid State Drive)などを含む記憶装置である。また、処理装置2a〜2eと同様に、例として、稼働中の記憶装置3a〜3cを実線で示し、待機中の記憶装置3d,3eを点線で示している。
Each of the
負荷分散装置4は、稼動中の処理装置2a〜2cのいずれかに端末装置7からの処理の要求の振り分け処理を行なう装置である。
The
端末装置7は、処理装置2a〜2eに処理の要求を送信するクライアント側の装置を例示したものである。端末装置7はコンピュータなどであって良い。また、図示しないが、端末装置7は、無線によってネットワーク6に接続可能な携帯電話又は携帯型情報端末(PDA)でも良い。端末装置7の台数は、図1に示す台数に限るものでない。
The
本実施形態における管理装置1の処理を説明する前に、図2、図3を用いて、本実施形態のシステムによって行なわれる処理の概容を説明する。
Before explaining the processing of the
図2は、本実施形態のシステムを用いて行なわれる処理の一例を示す。図2のA1〜A9は、端末装置7、処理装置2a及び記憶装置3aのそれぞれにおいて行われる処理を時系列に示している。
FIG. 2 shows an example of processing performed using the system of this embodiment. A1 to A9 in FIG. 2 indicate processing performed in each of the
A1は、ユーザにより端末装置7が、記憶装置3aに格納されたデータの参照要求(例えば、Webページの取得要求など)の指示を入力されることを示す。A2は、端末装置7が参照要求を含むデータを処理装置2a〜2eに送信することを示す。
A1 indicates that the
A3は、A2で端末装置7が送信し、負荷分散装置4により振り分けられたデータを処理装置2aが受信することを示す。A4は、処理装置2aが受信したデータに応じて、記憶装置3aに読み出し要求を含むデータを送信することを示す。
A3 indicates that the
A5は、記憶装置3aが、A4において処理装置2aが送信した読み出し要求を含むデータを受信することを示す。A6は、記憶装置3aが、受信したデータに含まれる読み出し要求に応じて読み出したデータを処理装置2aに送信することを示す。
A5 indicates that the
A7は、処理装置2aが、記憶装置3aがA6で送信したデータを受信することを示す。A8は、処理装置2aが、A7で受信したデータを端末装置7に送信することを示す。
A7 indicates that the
A9は、端末装置7が、処理装置2aがA8で送信したデータを受信することを示す。例えばA1での入力がWebページの取得要求であった場合には、端末装置7は、A9で受信したデータに基づいて、画面の表示を切り替えるなどの処理を行なう。
A9 indicates that the
図2に示す処理はあくまで一例であるが、処理装置2b〜2eも処理装置2aと同様の処理を実行可能であり、記憶装置3b〜3eも記憶装置3aと同様の処理を実行可能である。
The processing illustrated in FIG. 2 is merely an example, but the
図2において、記憶装置3aは、A5〜A6の期間で読出し要求によって要求されたデータの読み出し処理を行なう。この読み出し処理にかかる時間は、読み出し要求の内容に応じて異なる。例えば、記憶装置3aが、記憶装置3aに格納している1つのテーブルを参照してデータ読み出すよりも、1つのデータテーブルを参照して読み出したデータに基づいて、さらに別のテーブルを参照してデータを読み出す(SQL文においては、joinなどを含む処理)の方が、読出し処理に時間がかかると考えられる。従って、処理装置2aが送信する読出し要求の内容によっては、時間がかかる読み出し処理であるかを予想可能である。以下において、特に時間がかかる読み出し処理を「重い処理」と呼ぶ。
In FIG. 2, the
図2において、処理装置2aは、A3〜A8の期間で、端末装置7からの参照要求に応じた処理を行なう。この処理は、端末装置7から参照要求を含むデータを受信すること(A3)を契機として実行される。以下において、このような処理装置が実行する処理の契機をイベント(E)と呼ぶ。
In FIG. 2, the
さらに、処理装置2aにイベント(E)を発生させた端末装置7がどのデータを取得しているか(イベント(E)が端末装置7からのWebページの参照要求であれば、どのWebページを表示しているか)を状態(S)と呼ぶ。即ち、図2において処理装置2aのイベント(E)に応じた一連の処理(A3〜A8)は、イベント(E)を発生させた端末装置7の状態(S)を遷移させる処理であるといえる。つまり、処理装置2aに一連の処理(A3〜A8)を実行させるプログラムは、イベント(E)に応じて状態(S)を遷移される処理が規定されたものであり、そのプログラムを解析すれば、イベント(E)に応じたプログラムの処理によって遷移する前の状態(Sb)を示す情報と後の状態(Sa)を示す情報を取得できる。
Further, what data is acquired by the
処理装置2a〜2eが構造化されたWebページ群を提供するプログラムを実行する処理装置群であるとした場合、イベント(E)は例えばWebページ間のリンクによるジャンプの指示などであり、状態(S)は端末装置7にWebページのデータを送信することによって遷移する。この場合、イベント(E)と遷移前の状態(Sb)及び遷移後の状態との関係は、Webページ群の構成に基づいて決まっている。また、Webページ中の入力フォームへの文字入力をイベント(E)として、その文字入力前後の状態を、遷移前の状態(Sb)と遷移後の状態(Sa)としても良い。このイベント(E)と遷移前の状態(Sb)及び遷移後の状態との関係については、図3を用いて説明する。
When the
図3は、処理装置2a〜2eが実行するプログラムに規定された状態遷移の例をモデル化した図である。S1〜S7のそれぞれは状態を示し、E1〜E7のそれぞれはイベントを示す。
FIG. 3 is a diagram modeling an example of state transition defined in a program executed by the
図3は、各イベント(E1〜E7)の矢印は、各イベントの発生による状態の遷移を表している。例えば、図3のイベント(E1)の矢印は、状態(S1)であるときに、イベント(E1)が発生することにより、処理装置2a〜2eのいずれかでイベント(E1)に応じた処理A3〜A8が行なわれて状態(S2)に遷移することを示している。
In FIG. 3, the arrows of the events (E1 to E7) represent state transitions due to the occurrence of each event. For example, the arrow of the event (E1) in FIG. 3 indicates that the process (A1) corresponding to the event (E1) occurs in any of the
イベント(E)は、処理装置2a〜2eのいずれかが、端末装置7からWebページの取得要求を含むデータを受信することだけでなく、例えばユーザが所定のWebページにおいてデータ入力し、入力したデータを受信することであっても良い。その場合は、所定のページにおいてデータ入力されたことも状態(S)として定義される。他にもWebページの取得から所定時間経過したことをイベント(E)としても良いし、セッションの接続要求、切断要求などをイベント(E)としても良い。
The event (E) is input not only by any of the
次に、本実施形態における管理装置1の処理について説明する。
[管理装置1の構成]
図4に管理装置1の機能ブロック構成を示す。11は通信手段を示し、12は解析手段を示し、13は記憶手段を示し、14は指示手段を示す。
Next, the process of the
[Configuration of Management Device 1]
FIG. 4 shows a functional block configuration of the
通信手段11は、ネットワーク6を介して処理装置2a〜2eとデータを送受信する処理を行なう。また、通信手段11は、処理装置2a〜2eに加えて記憶装置3a〜3eともデータを送受信する処理を行なうようにしても良い。
The
データの送受信として、例えば、処理装置2a〜2eで実行されるプログラムのソースコード(C1)の受信、ソースコード(C1)に解析手段12がコードを追加して作成したソースコード(C2)の送信、処理装置2a〜2eからのイベント通知の受信、指示手段14から処理装置2a〜2eのいずれかへの指示の送信などを行なう。
As data transmission / reception, for example, reception of a source code (C1) of a program executed by the
解析手段12は、通信手段11が受信したソースコード(C1)に、ソースコード(C1)を実行する処理装置が、処理装置に発生したイベントに応じてどういった処理を実行することが規定されているかを解析する。また、解析手段12は、ソースコード(C1)に、イベント(Ei)が発生した場合に、発生したイベント(Ei)を識別するデータ(イベントID)と、イベントが発生させたクライアントを識別するデータ(例えば、セッションID)とをイベント通知として管理装置1に送信させることを規定したコードを追加したソースコード(C2)を生成する。さらに、解析手段12は、ソースコード(C1)を解析した結果に基づいて、1〜m(ソースコード(C1)に規定されたイベントの総数をmとする)の範囲内の整数i,jについて、イベント(Ei)が発生した後に他のイベント(Ej)が発生するまでの時間(Tij)と発生する確率(Pij)とを見積もり、記憶手段13に記憶させる。解析手段12の具体的な処理については、図5を用いて後述する。
The analysis means 12 is defined in the source code (C1) received by the communication means 11 as to what processing the processor that executes the source code (C1) executes according to an event that has occurred in the processor. Analyzes whether or not In addition, when the event (Ei) occurs in the source code (C1), the
時間(Tij)、確率(Pij)は、ソースコード(C1)でなく、例えばソースコード(C1)の作成に用いた画面遷移図などの設計情報に基づいて見積もられても良い。ソースコード(C1)又は設計情報のいずれに基づくにしても、処理装置は、処理装置で実行するプログラムを更新する際に、更新されたプログラムに対応するソースコード又は設計情報を保持しておく。 The time (Tij) and the probability (Pij) may be estimated based on design information such as a screen transition diagram used for creating the source code (C1) instead of the source code (C1). Based on either the source code (C1) or the design information, the processing device retains the source code or design information corresponding to the updated program when the program executed by the processing device is updated.
記憶手段13は、解析手段12によって求められた時間(Tij)と確率(Pij)とを記憶する。また、指示手段14の読出し要求に応じて、時間(Tij)又は確率(Pij)を読み出す。
The
指示手段14は、通信手段11が受信したイベント通知と記憶手段13に記憶した時間(Tij)及び確率(Pij)とに基づき、所定のイベントの発生タイミングを予測し、さらに、予測したタイミングで発生するイベントの処理に必要な台数の処理装置が稼動していない場合に、待機中の処理装置2d、2eに、稼動に必要な時間を見込んで通信手段11に稼動指示を送信させる。もしくは、稼働中の処理装置の一部を停止させても予測されるイベントの処理を充分に実行可能である場合に、通信手段11に一部の処理装置にスタンバイ状態への移行又は停止の指示を送信させる。具体的には図10を用いて後述する。
The instructing
図4に示す管理装置1を用いることで、処理装置2a〜2eが実行するプログラムと処理装置2a〜2eに対して行なわれているアクセスの状況とに基づいて、処理装置2a〜2eの処理負荷を事前に予測し、予測した処理負荷に応じて必要な台数の処理装置を、処理装置の起動時間を見込んで起動させることができる。
[解析手段12の構成]
図5は、解析手段12についての機能ブロックを示す。121は制御手段を示し、122は記憶手段を示し、123は抽出手段を示し、124は生成手段を示し、125は算出手段を示す。
By using the
[Configuration of Analysis Unit 12]
FIG. 5 shows functional blocks for the analyzing means 12. 121 denotes a control means, 122 denotes a storage means, 123 denotes an extraction means, 124 denotes a generation means, and 125 denotes a calculation means.
制御手段121は、記憶手段13に格納されたテーブルB8(図15参照)に基づき稼働中の処理装置を判定し、稼働中の処理装置からプログラムのソースコード(C1)を取得する処理、記憶手段122にデータの書込み・読出し処理、処理装置2a〜2eへのソースコード(C2)の送信を通信手段11に指示する処理などを行なう。
The
テーブルB8は、図15に示すように、処理装置ごとにレコードを有し、処理装置のアドレス、処理装置の稼動状態などの情報を格納するフィールドを有している。このテーブルB8に含まれる情報は、管理者によって設定されても良いし、管理装置1が処理装置を自動検出して追加設定しても良い。また、管理装置1が、テーブルB8のテーブルの各レコードに登録された処理装置に対し、定期的に稼動状態の問い合わせを行ない、更新することとしても良い。
As shown in FIG. 15, the table B8 has a record for each processing device, and has fields for storing information such as the processing device address and the operating state of the processing device. The information included in this table B8 may be set by the administrator, or the
抽出手段123は、制御手段121が記憶手段122から読み出したソースコード(C1)から、イベント発生を検知する旨を規定したコードと、そのコードにより検知されるイベントが発生した後に実行する処理の内容を規定したコードを抽出する。
The
抽出手段123は、抽出したコードにより検知するイベントのイベントIDを生成し、さらに、そのイベントに応じて実行される処理によって遷移する前の状態(遷移前状態:Sb)を示すデータと、遷移した後の状態(遷移後状態:Sa)を示すデータとを抽出する。
The
制御手段121は、イベントIDと、遷移前状態(Sb)を示すデータと、遷移後状態(Sa)を示すデータとを含むレコードを記憶手段122に記憶されているテーブルB1に追加する。例えば、イベントの発生が端末装置7からのWebページの取得要求である場合、遷移前状態(Sb)を示すデータは、取得要求を受信する前に提供していたWebページのアドレスなどが考えられ、遷移後状態(Sa)を示すデータは取得要求に応じて提供するWebページのアドレスなどが考えられる。
The
生成手段124は、抽出手段123が抽出したコードと抽出手段123が生成したイベントIDとに基づいて、抽出したコードが実行された場合にイベントIDとセッションIDとを管理装置1に通知する処理を規定したコードを生成する。セッションIDは、イベントを発生させたアクセスを含むセッションを他のセッションと識別する情報である。セッションIDでなくとも、処理装置にアクセスしているアクセス元を識別可能なデータを用いれば良い。例えば、セッションIDの代わりに処理装置2a〜2eが提供するWebサイトへのログインIDなどを用いても良い。生成したコードは、制御手段121によって記憶手段122に記憶したソースコード(C1)に追加される。
Based on the code extracted by the
記憶手段122は、イベントID毎に、イベントIDと、遷移前状態(Sb)と遷移後状態(Sa)を示すデータとを含むレコードを有するテーブルB1を記憶する。また、記憶手段122は、算出手段125の処理で用いる設定データを記憶しておく。設定データは、例えば、ソースコード(C1)に規定された各状態がどれくらいの時間継続するかを示す値を予め定めたものなどを含む。
The
算出手段125は、記憶手段122に記憶されたテーブルB1と設定データとに基づいて、1〜nの整数i,jのそれぞれについて、イベント(Ei)が発生してからイベント(Ej)が発生するまでの時間(Tij)と、イベント(Ei)が発生した後にイベント(Ej)が発生する確率(Pij)を算出する。制御手段121は、算出手段125が算出した時間(Tij)と確率(Pij)を、記憶手段13に記憶させる。
Based on the table B1 and setting data stored in the
算出手段125が時間(Tij)と確率(Pij)とを算出する処理について、ソースコード(C1)に図3に示すような状態(S)とイベント(E)との関係が規定されていた場合を例として説明する。 When the calculation means 125 calculates the time (Tij) and the probability (Pij), the relationship between the state (S) and the event (E) as shown in FIG. 3 is defined in the source code (C1). Will be described as an example.
図6は、記憶手段122に記憶されるイベントIDと状態(Sb)と状態(Sa)を示すデータとを関連付けたテーブルB1を示したものである。図6のテーブルB1は、図3に示されたイベント(E1〜E7)のそれぞれについてレコードを有し、イベントIDがE1〜E7のレコードはそれぞれ遷移前状態(Sb)と遷移後状態(Sa)を含む。
FIG. 6 shows a table B1 in which event IDs stored in the
算出手段125は、制御手段121が記憶手段122から読み出したテーブルB1に含まれるデータから、プログラムに規定された状態を抽出する。算出手段125は、抽出した状態(S1〜S7)のそれぞれについて、保持時間(Ti)を設定する。保持時間(Ti)は、状態(Si)に遷移した場合に、状態(Si)に遷移してから別の状態に遷移するまでの時間を示す指標である。この保持時間(Ti)は、記憶手段122に格納した設定データに基づいて定める。本実施形態においては、各状態(Si)についての保持時間(Ti)に同一の値を設定する。なお後述するが、第2の実施形態、第3の実施形態においては、イベント通知の統計に基づいて保持時間(Ti)を更新する処理を行なう。
The
また、算出手段125は、プログラムに規定されたイベント(E1〜E7)のそれぞれについて、遷移前状態(Sb)に至った場合にイベント(Ei)が発生する確率(Pi)を設定する。この確率(Pi)の設定は、遷移前状態(Sb)が同一であるイベントの数(分岐数)に応じて設定すれば良い。例えば、遷移前状態(Sb)が状態(S1)であるイベントの数は、イベント(E1)とイベント(E2)の2つである(状態(S1)の分岐が2つである)ことから(図6参照)、確率(P1)と確率(P2)をそれぞれ0.5と設定することなどが考えられる。また、確率(Pi)についても保持時間(Ti)と同様に、第2の実施形態、第3の実施形態では、イベント通知の統計に基づいて確率(Pi)を更新する。 Further, the calculation means 125 sets the probability (Pi) that the event (Ei) occurs when the pre-transition state (Sb) is reached for each of the events (E1 to E7) defined in the program. The probability (Pi) may be set according to the number of events (number of branches) having the same pre-transition state (Sb). For example, the number of events whose state (Sb) before transition is state (S1) is two (event (E1) and event (E2)) (state (S1) has two branches) ( It is conceivable to set the probability (P1) and the probability (P2) to 0.5, respectively. As for the probability (Pi), similarly to the holding time (Ti), in the second and third embodiments, the probability (Pi) is updated based on the event notification statistics.
制御手段121は算出手段125が算出した保持時間(Ti)と確率(Pi)とに基づいて、記憶手段122に記憶した図6のテーブルB1に、各イベント(E1〜E7)に対応する確率(Pi)と、各イベント(E1〜E7)の遷移前状態(Sb)に対応する保持時間(Ti)とを追加する。図7に保持時間(Ti)と確率(Pi)とを追加した図7のテーブルB2を示す。 Based on the holding time (Ti) and probability (Pi) calculated by the calculation means 125, the control means 121 stores the probability (E1 to E7) corresponding to each event (E1 to E7) in the table B1 of FIG. Pi) and a holding time (Ti) corresponding to the pre-transition state (Sb) of each event (E1 to E7) is added. FIG. 7 shows the table B2 of FIG. 7 in which the holding time (Ti) and the probability (Pi) are added.
さらに、算出手段125は、図7に示したテーブルB2に基づいて、制御手段121に指定されたイベント(Ei)から制御手段121に指定されたイベント(Ej)への遷移についての時間(Tij)と確率(Pij)とを算出する。 Furthermore, the calculation means 125 calculates the time (Tij) for the transition from the event (Ei) designated by the control means 121 to the event (Ej) designated by the control means 121 based on the table B2 shown in FIG. And the probability (Pij).
まず、算出手段125は、制御手段121が記憶手段122から読み出したテーブルB2の情報に基づいて、イベント(Ei)からイベント(Ej)に至るまでに経過するルートを特定する。例えば、イベント(E6)からイベント(E3)に至るには、「イベント(E6)→状態(S6)→イベント(E7)→状態(S1)→イベント(E1)→(状態S2)→イベント(E3)」といったルートを経過する。この特定方法については、図20に示すフローを用いて後述する。
First, the
次に、制御手段121は、特定したルートについて、イベント(Ei)が発生した後に発生するイベント(Ek)(イベント(Ej)を含む)のそれぞれについて、テーブルB2にイベント(Ek)と対応付けて記憶した保持時間(Tk)と確率(Pk)とを読み出す。算出手段125は、制御手段121が読み出した保持時間(Ek)の合計を算出して、イベント(Ei)からイベント(Ej)に遷移する時間(Tij)とする。さらに、算出手段125は、制御手段121が読み出した確率(Pk)の積を算出し、イベント(Ei)からイベント(Ej)に遷移する確率(Pij)とする。例えば、イベント(E6)からイベント(E3)に遷移する時間(T63)はT6+T1+T2で表され、確率(P63)はP7×P1×P3で表される。
Next, the
上述の通り、算出手段125が算出した時間(Tij)と確率(Pij)は、制御手段121によって記憶手段13に書き込まれる。記憶手段13は、時間(Tij)をと確率(Pij)とをそれぞれ図8,図9に示すデータ形式で記憶する。図8に示すテーブルをテーブルB3、図9に示すテーブルをテーブルB4とする。
As described above, the time (Tij) and the probability (Pij) calculated by the
上記の説明の通り、解析手段12は、通信手段11が受信したソースコード(C1)に基づいて、ソースコード(C1)にイベント通知を管理装置1に送信するコードを追加したソースコード(C2)を生成し、ソースコード(C1)に規定されたイベント間の遷移についての予測時間(Tij)と確率(Pij)とを算出して記憶手段13に記憶させる。
[指示手段14の構成]
図10は、指示手段14の機能ブロック構成を示す。図10において、141は制御手段を示し、142は記憶手段を示し、143は生成手段を示し、144は算出手段を示し、145は集計手段を示し、146は判定手段を示し、147は生成手段を示す。
As described above, based on the source code (C1) received by the
[Configuration of Instruction Unit 14]
FIG. 10 shows a functional block configuration of the instruction means 14. 10,
指示手段14は、所定のイベント(Ej)が発生するタイミングを予測し、予測に応じて処理装置に稼動指示を出力させる処理を行なう。先述した「重い処理」を発生させるイベントを所定のイベント(Ej)とすると、「重い処理」が発生するタイミングを予測できる。また、イベント(Ej)のみでなく、イベント(Ej)、イベント(Ek)など複数のイベントについても、同様の処理を行なうことで、それぞれのイベントの発生タイミング、発生確率を予想できる。複数のイベントの発生タイミング、発生確率を合算することで、単一の処理に限定せずに処理負荷を予想することが出来る。
The instructing
制御手段141は、通信手段11が受信したイベント通知に含まれるイベントID(Ei)に基づいて、そのイベント(Ei)からイベント(Ej)までの時間(Tij)と、イベント(Ei)からイベント(Ej)に至る確率(Pij)とを記憶手段13から読み出し、通信手段11が受信したイベント通知に含まれるセッションID(Zi)、イベント通知を受信した時刻(Hi)と関連付けて記憶手段142に記憶する。これらは、図11に示すテーブルB5の形式で記憶手段142に記憶される。
Based on the event ID (Ei) included in the event notification received by the
記憶手段142に記憶する際に、同じセッションID(Zi)についてのデータが記憶されていた場合には、記憶手段142に記憶されていたセッションID(Zi)についてのデータを、予測時間(Tij)、確率(Pij)及び時刻(Hi)に更新するようにしても良い。また、イベント通知がセッションの切断を示す場合には、イベント通知に含まれるセッションIDについてのデータを記憶手段142から消去するようにしても良い。もしくは、記憶手段142に記憶されるテーブルB5の各レコードにフラグを設けておき、各レコードを有効とするか否かをフラグのON/OFFにより制御するように構成しても良い。例えば、同じセッションID(Zi)についてのデータを受信した場合に、既に格納してあったレコードのフラグをOFFにする制御を行っても良いし、セッションの切断を示すデータを受信した場合に、そのセッションIDを含むレコードのフラグをOFFにする制御を行っても良い。
When data about the same session ID (Zi) is stored when storing in the
図11に示すテーブルB5について説明する。図11に示すテーブルB5は、セッションID(Zk)、確率(Pij)、時間(Tij)、受信時刻(Hk)、時間範囲ID(Rs)及びフラグについてのフィールドを設けている。それぞれのレコードは、セッションID(Zk)で識別されるセッション(Zk)についてのデータが格納されている。それぞれのレコードは、最新のイベント通知に基づいて、確率(Pij)、時間(Tij)、受信時刻(Hk)及びフラグが設定される。 The table B5 shown in FIG. 11 will be described. The table B5 shown in FIG. 11 includes fields for session ID (Zk), probability (Pij), time (Tij), reception time (Hk), time range ID (Rs), and flag. Each record stores data on the session (Zk) identified by the session ID (Zk). Each record has a probability (Pij), time (Tij), reception time (Hk), and flag set based on the latest event notification.
ちなみにテーブルB5の時間範囲ID(Rs)のフィールドには、時間(Tij)と受信時刻(Hk)とに基づいて図12のテーブルB6に示す情報のうちのいずれかが格納される。この時間範囲(Rs)の選択は、生成手段143と算出手段144とにより行われる。このテーブルB6は、記憶手段142に予め記憶しておく。
Incidentally, in the time range ID (Rs) field of the table B5, any one of the information shown in the table B6 of FIG. 12 is stored based on the time (Tij) and the reception time (Hk). The selection of the time range (Rs) is performed by the
例えば、スタンバイ状態にある処理装置が稼働状態になるまでに要する時間が30秒であるとした場合に時間範囲を図12のテーブルB6のように区切ることが考えられる。その場合、管理装置1が行なう指示を、時間範囲(R3)に予想される処理量が多い場合にはスタンバイ状態の処理装置を稼動させる指示とし、時間範囲(R3)に予想される処理量が少なく、時間範囲(R4)が多い場合には、30秒待機させてから稼動指示をスタンバイ状態にある処理装置を稼動させる指示とすることなどが考えられる。
For example, when the time required for the processing apparatus in the standby state to be in the operating state is 30 seconds, the time range may be divided as shown in the table B6 of FIG. In this case, the instruction given by the
生成手段143は、所定時間経過するたびに所定時間経過した旨を示すデータを制御手段141に出力する。制御手段141は、生成手段143から取得したデータに基づいて集計処理を開始する。集計処理を開始した時刻を時刻(H0)とする。
The
算出手段144は、記憶手段142に記憶されたテーブルB5の各レコードについて、時刻(H0)と受信時刻(Hk)との差(H0−Hk)を算出し、さらに、予測時間(Tij)と算出した差との差(Tij−(H0−Hk))を算出する。制御手段141は、それぞれのレコードについて算出した差(Tij−(H0−Hk))を含む時間範囲を示す時間範囲ID(Rs)をテーブルB6から読み出し、時間範囲IDフィールドに格納する。 The calculation means 144 calculates the difference (H0−Hk) between the time (H0) and the reception time (Hk) for each record in the table B5 stored in the storage means 142, and further calculates the predicted time (Tij). A difference (Tij− (H0−Hk)) from the calculated difference is calculated. The control means 141 reads the time range ID (Rs) indicating the time range including the difference (Tij− (H0−Hk)) calculated for each record from the table B6 and stores it in the time range ID field.
集計手段145は、テーブルB5を参照し、R1〜R5までの時間範囲ID(Rs)ごとに、時間範囲ID(Rs)が一致するレコードについて確率(Pij)を読み出し、読み出した確率(Pij)の合計(Psums)を算出する。
The tabulating
例として、図11に示したテーブルB5について、集計手段145が処理を行なった場合を説明する。まず、テーブルB5の時間範囲IDについてのフィールドを参照し、時間範囲IDがR1であるレコードを抽出する。図11に示したテーブルB5の場合、まずセッションIDがZ1であるレコードが抽出される。次に、セッションIDがZ1のレコードの確率のフィールドからP5jを示すデータが読み出される。図11に示す限りでは、時間範囲IDがR1であるレコードは、セッションIDがZ1であるレコードのみであるので、読み出した確率(Pij)の合計値(Psum1)は、P5jとなる。
As an example, a case will be described in which the
次に、集計手段145はテーブルB5で時間範囲IDがR2であるレコードについての確率(Pij)の合計値(Psum2)を算出する。その場合、時間範囲IDがR2であるレコードとして、セッションIDがZ3のレコードとZ5のレコードが該当し、セッションIDがZ3のレコードから確率(P1j)を読出し、セッションIDがZ5のレコードから確率(P3j)を読み出す。図11に示す限りでは、読み出した確率(Pij)の合計値(Psum)はP1j+P3jとなる。R3〜R5についても同様に処理する。算出した合計値(Psums)は、それぞれ対応する時間範囲ID(Rs)と対応付けて、図13に示すテーブルB7の形式で記憶手段142に記憶される。
Next, the
判定手段146は、記憶手段142に記憶されたテーブルB7を参照し、各時間範囲(Rs)についての合計値(Psums)が、稼働中の処理装置の処理能力を超えるかを判定する。判定手段146は、処理能力を超えると判定した場合、処理能力を超える時間範囲についての時間範囲ID(Rs)を読み出す。このとき、所定のイベント(Ej)を複数設定していた場合には、それぞれについての合計値(Psums)を合算して判定する。
The
生成手段147は、判定手段146が読み出した時間範囲ID(Rs)に基づいて、処理装置2a〜2eに稼動を指示するデータを生成する。
The
例えば、それぞれの処理装置2a〜2eの起動に起動指示を生成してから30秒かかるとして、時間範囲R1,R2において処理能力を超えると判断された場合には、処理能力が足りない事態になりうるので、生成手段147は、稼動していない処理装置に対しての稼動指示を生成する。また、時間範囲R3において処理能力を超えると判断された場合には、時刻(H0)から30秒経過後に、稼働中の処理装置の処理能力が不足することが予測されるので、生成手段147は、稼動していない処理装置に対しての稼動指示を生成する。
For example, if it is determined that it takes 30 seconds from the generation of the activation instruction to activate each of the
時間範囲R4又はR5において処理能力を超えると判断された場合には、時刻(H0)から60秒又は90秒経過してから稼動中の処理装置の処理能力が不足することが予想される。そのため、生成手段147は、時間範囲R4において処理能力を超えると判断された場合には、30秒経過してから稼動していない処理装置に対しての稼動指示を生成し、時間範囲R5において処理能力を超えると判断された場合には、60秒経過してから稼動していない処理装置に対しての稼動指示を生成する。
When it is determined that the processing capacity is exceeded in the time range R4 or R5, it is expected that the processing capacity of the processing apparatus in operation is insufficient after 60 seconds or 90 seconds have elapsed from the time (H0). Therefore, when it is determined that the processing capacity is exceeded in the time range R4, the
制御手段141は、生成手段147が生成した稼動指示を通信手段に送信させる処理を行なう。
The
指示手段14が上述の処理を行なうことにより、管理装置1は、時刻(H0)の時点で処理装置2a〜2eに対して行なわれているアクセスに基づいて時刻(H0)から所定時間経過後の処理負荷を予測し、処理装置の起動時間を見込んで処理装置を追加稼動させることができる。
また、例えば、上述の管理装置1の処理は確率を用いずに実行されても良い。その場合は、イベント通知の受信時刻から時間値経過した時点で、所定の処理が実行されることとすれば良い。確率を用いて予測を行うことにより、イベント通知の後に必ず実行されるわけでないことを考慮できるため、処理量を過分に予測することを低減する効果が得られる。
When the instructing
For example, the process of the
図14は、管理装置1の装置構成の一例を示す。1aはプロセッサを示し、1bはメモリを示し、1cは通信インターフェースを示し、1dは記憶装置を示し、1eはバスを示す。
FIG. 14 shows an example of the device configuration of the
プロセッサ1としてCPU(Central Processing Unit)などを含み、メモリ1bとしてRAM(Random Access Memory)などを含み、通信インターフェースとしてNIC(Network Interface Card)などを含み、記憶装置1dとしてHDD(Hard Disk Drive)、SSD(Solid State Drive)、CDやDVDなどのディスクについてのディスクドライブなどを含む。
The
プロセッサ1aは、管理装置1全体の制御を行なう。メモリ1bに一時的に格納されたプログラムを読み出し、読み出したプログラムに従って演算処理を行なう。メモリ1bは、OS(Operation System)やアプリケーションプログラムの少なくとも一部を一時的に格納し、プロセッサ1aが処理に用いるデータを格納する。通信インターフェース1cは、他の装置との通信処理を行なう。記憶装置1dは、OSやアプリケーションプログラムを格納し、プロセッサの制御に応じてデータを記憶する。
The
図4、図5、図10に示した機能ブロックの処理は、それぞれ図14に示す装置構成によっても実現可能である。 The processing of the functional blocks shown in FIGS. 4, 5, and 10 can also be realized by the device configuration shown in FIG.
通信手段11の処理は、通信インターフェース1cがプロセッサ1aの制御に応じた処理を行なうことで実現される。
The process of the communication means 11 is implement | achieved when the
解析手段12に含まれる各機能ブロックの処理は、以下のように実現される。
Processing of each functional block included in the
制御手段121の処理は、プロセッサ1aが、メモリ1b又は記憶装置1dに記憶されたデータについて、メモリ1bから読み出したプログラムに従って、読み出し・書込みの制御を行なうことにより実現される。記憶手段122の処理は、メモリ1b又は記憶装置1dがプロセッサ1aの制御に応じてデータを書込み・読出しを行なうことにより実現される。抽出手段123の処理は、プロセッサ1aが、メモリ1b又は記憶装置1dから読み出したデータに、メモリ1b又は記憶装置1dから読み出したプログラムに応じた処理を行なうことにより実現される。生成手段124の処理は、プロセッサ1aがメモリ1b又は記憶装置1dからデータを読み出すことにより実現される。算出手段125の処理は、プロセッサ1aがメモリ1b又は記憶装置1dから読み出したデータ(イベントIDなど)に応じてメモリ1b又は記憶装置1dからデータ(設定データなど)を読み出し、読み出したデータにプログラムに応じた演算処理を行なうことにより実現される。
The processing of the control means 121 is realized by the
記憶手段13の処理は、記憶装置1d又はメモリ1bがプロセッサの指示に応じてデータを書込み・読出しを行なうことにより実現される。
The processing of the storage means 13 is realized when the
指示手段14に含まれる各機能ブロックの処理は、以下のように実現される。
The processing of each functional block included in the
制御手段141の処理は、プロセッサ1aが、メモリ1b又は記憶装置1dに記憶されたデータについて、メモリ1bから読み出したプログラムに従った処理を行なうことにより実現される。記憶手段142の処理は、メモリ1b又は記憶装置1dが、プロセッサ1aの指示に応じてデータを記憶することにより実現される。生成手段143の処理は、プロセッサ1aが、プロセッサ1aに含まれるクロックに基づいて所定時間を判断することにより実現される。算出手段144の処理は、プロセッサ1aが、メモリ1b又は記憶装置1dからデータを読み出し、読み出したデータにプログラムに従った演算処理を行なうことにより実現される。集計手段145の処理は、プロセッサ1aが、メモリ1b又は記憶装置1dからデータを読み出し、読み出したデータにプログラムに従った演算処理を行なうことにより実現される。判定手段146の処理は、プロセッサ1aが、メモリ1b又は記憶装置1dからデータを読み出し、読み出したデータに基づいてメモリ1b又は記憶装置1dからさらにデータを読み出すことにより実現される。生成手段147の処理は、メモリ1b又は記憶装置1dから読み出したデータと、プロセッサ1aに含まれるクロックに基づいた時刻情報とに基づいてデータを生成することにより実現される。
[管理装置1の処理]
図16は、ソースコード(C1)を解析し、イベント発生を通知する処理を規定したコードを追加する処理のフローを示す。
The processing of the control means 141 is realized by the
[Processing of Management Device 1]
FIG. 16 shows a flow of processing for analyzing the source code (C1) and adding a code that defines processing for notifying event occurrence.
管理装置1に開始指示が入力される(S101)と、制御手段121が、通信手段11にソースコード(C1)の取得要求を処理装置2a〜2eのいずれかに送信させる(S102)。通信手段11がソースコード(C1)を受信すると、制御手段121は受信したソースコード(C1)を記憶手段122に格納する(S103)。
When a start instruction is input to the management device 1 (S101), the
まず、制御手段121は、ソースコード(C1)からコードを読み出す単位を指定する番号iを0に設定する(S104)。このコードを読み出す単位は、ソースコード(C1)の1行ごとでも良いし、ソースコード(C1)に規定されたルーチン単位でも良い。次に、制御手段121は、番号iに1加えて(S105)、その番号iに指定される読み出し単位に、読み出すべきコードがあるかを確認する(S106)。読み出すコードがない場合(S106:NO)は、確率値(Pij)と時間値(Tij)を算出する処理が実行される(S113)。読み出すコードがある場合(S106:YES)は、制御手段121は、記憶手段122から番号iで指定されるコードを読み出す(S107)。 First, the control means 121 sets a number i specifying a unit for reading a code from the source code (C1) to 0 (S104). The unit for reading out the code may be one line of the source code (C1) or a routine unit defined in the source code (C1). Next, the control means 121 adds 1 to the number i (S105), and checks whether there is a code to be read in the reading unit designated by the number i (S106). When there is no code to be read (S106: NO), a process of calculating a probability value (Pij) and a time value (Tij) is executed (S113). If there is a code to be read (S106: YES), the control means 121 reads the code designated by the number i from the storage means 122 (S107).
抽出手段123は、制御手段121が読み出したコードがイベントの発生を検知するコードであるかを判断する(S108)。このS108は、読み出したコードが外部アクセスに応じて処理を行なうことが規定されたコードであるかどうかによって判断される。読み出したコードがイベントを検知するコードでない場合(S108:NO)は、S105の処理が実行される。
The
読み出したコードがイベントを検知するコードである場合(S108:YES)に、抽出手段123は、検知されるイベントを他のイベントと識別可能なイベントIDを生成する(S109)。S109後に、制御手段121は、抽出したイベントに関してソースコード(C1)を解析するフローを実行する(S110)。
When the read code is a code for detecting an event (S108: YES), the
次に、生成手段124は、イベントを検知するコードが実行された場合にそのイベントを示すイベントIDを管理装置1に通知させるコードを生成する(S111)。制御手段121は、生成手段124が生成したコードを、記憶手段122に格納されているソースコード(C1)に追加する処理を行なう(S112)。S112の実行後、S105に戻る。
Next, when the code for detecting an event is executed, the
図17に、S108で抽出したイベントに関してソースコード(C1)を解析するフローを示す。 FIG. 17 shows a flow of analyzing the source code (C1) regarding the event extracted in S108.
S110が実行される(S201)と、制御手段121は、S109で生成したイベントIDに示されるイベントを検知した後に実行される処理を規定したコードを、記憶手段122に格納したソースコード(C1)から読み出す(S202)。
When S110 is executed (S201), the
制御手段121は、S202で読み出したコードから、イベント発生後に実行される処理によって遷移する前の状態(Sb)及び遷移した後の状態(Sa)のそれぞれを示す情報を抽出する(S203)。さらに制御手段121は、S203で抽出した遷移前状態(Sb)及び遷移後状態(Sa)を示す情報と、イベントIDとを含むレコードを記憶手段122のテーブルB1に追加する(S204)。S204が実行されると、コードの解析フローは終了となりS111が実行される(S205)。
The
図18、図19に確率値(Pij)と時間値(Tij)を算出するフローを示す。 18 and 19 show a flow for calculating the probability value (Pij) and the time value (Tij).
S113が実行される(S301)と、算出手段125は、S203で抽出された遷移前状態(Sb)と遷移後状態(Sa)のうちの全種類の状態(Si:i=1〜n)に対して保持時間(Ti)を設定する(S302)。抽出された状態の数が全部でnであるとした場合、1〜nまでの各整数iに対応する状態(Si)について保持時間(Ti)を設定する。この保持時間(Ti)は、前述の通り、状態(Si)に遷移してから、別の状態(S)に遷移するまでの時間を示す。 When S113 is executed (S301), the calculation means 125 sets all types of states (Si: i = 1 to n) in the pre-transition state (Sb) and the post-transition state (Sa) extracted in S203. On the other hand, a holding time (Ti) is set (S302). When the total number of extracted states is n, the holding time (Ti) is set for the states (Si) corresponding to the respective integers i from 1 to n. As described above, the holding time (Ti) indicates the time from the transition to the state (Si) to the transition to another state (S).
S302が実行されると、制御手段121は、記憶手段122に格納されたテーブルB1の各レコードに、遷移前状態(Sb)に対応する保持時間(Ti)を追加する(S303)。
When S302 is executed, the
また、算出手段125は、S203で抽出された状態(Si)のそれぞれについて、それぞれの状態(Si)が記憶手段122に格納されたテーブルB1に遷移前状態(Sb)とされている数に応じて、確率(Pi)を設定する(S304)。S304で設定する確率(Pi)は、管理者の指示に応じて重み付けされたものでも良い。 Further, the calculation means 125, for each of the states (Si) extracted in S203, according to the number of the respective states (Si) set as the pre-transition state (Sb) in the table B1 stored in the storage means 122. Then, the probability (Pi) is set (S304). The probability (Pi) set in S304 may be weighted according to an instruction from the administrator.
S304が実行されると、制御手段121は、記憶手段122に格納されたテーブルB2の各レコードに、遷移前状態(Sb)に対応する確率(Pi)を追加する(S305)。テーブルB1に、S303、S305で保持時間(Ti)、確率(Pi)を追加したテーブルが、図7に示すテーブルB2である。このS302及びS303と、S304及びS305とは順番を入れ替えても構わない。
When S304 is executed, the
S305が実行されると、イベント間(イベント(Ei)〜イベント(Ej))の時間値(Tij)及び確率値(Pij)を算出するフローが実行される(S306,S401)。抽出されたイベントの数(テーブルB1、テーブルB2のレコードの数)が全部でmであるとした場合、解析手段12は、1〜mの整数i,jについて、イベントEiが発生してからイベントEjが発生するまでの時間を予測した時間値(Tij)と、イベント(Ei)が発生して後にイベント(Ej)が発生する確率を予想した確率値(Pij)を算出する。
When S305 is executed, a flow for calculating a time value (Tij) and a probability value (Pij) between events (event (Ei) to event (Ej)) is executed (S306, S401). Assuming that the total number of extracted events (number of records in table B1 and table B2) is m, the
制御手段121は、イベント(Ei)を示す番号iを0に設定し(S402)、番号iに1を加える(S403)。番号iがm以下であるかを判断し(S404)、番号iがよりも大きい場合(S404:NO)、このフローは終了となる(S413)。 The control means 121 sets the number i indicating the event (Ei) to 0 (S402), and adds 1 to the number i (S403). It is determined whether the number i is less than or equal to m (S404). If the number i is larger (S404: NO), this flow ends (S413).
番号iがm以下である場合(S404:YES)、制御手段121は、番号jを0に設定し(S405)、番号jに1を加える(S406)。制御手段121は、番号jがm以下であるかを判断し(S407)、番号jがmよりも大きい場合(S407:NO)、S403の処理が実行される。 When the number i is less than or equal to m (S404: YES), the control means 121 sets the number j to 0 (S405) and adds 1 to the number j (S406). The control means 121 determines whether the number j is less than or equal to m (S407). If the number j is greater than m (S407: NO), the process of S403 is executed.
番号jがm以下である場合(S407:YES)、制御手段121は、番号iと番号jが異なるか判断する(S408)。番号iと番号jが同じである場合(S408:NO)、S406の処理が実行される。
When the number j is less than or equal to m (S407: YES), the
番号iと番号jが異なる場合(S408:YES)、イベント(Ei)が発生してからイベント(Ej)が発生するまでに、発生するイベント(E)を抽出するフローを実行させる(S409)。イベント(Ei)が発生してからイベント(Ej)が発生するまでに発生するイベントのパターンが複数ある場合は、それぞれのパターンについて経過するイベントを抽出する。抽出されたイベントのパターンそれぞれをルート情報とする。 When the number i is different from the number j (S408: YES), the flow for extracting the event (E) that occurs after the event (Ei) occurs until the event (Ej) occurs is executed (S409). When there are a plurality of event patterns that occur from the occurrence of the event (Ei) to the occurrence of the event (Ej), the events that pass for each pattern are extracted. Each extracted event pattern is used as route information.
制御手段121は、S409で抽出したルート情報のそれぞれについて、イベント(Ei)からイベント(Ej)に至るまでに経過するイベント(E)のそれぞれに対応する保持時間(T)を読み出し、算出手段125は、読み出した保持時間(T)の総和をS409で抽出したルート情報ごとに算出し、それぞれのルート情報についての総和の平均をTijとする(S410)。
The
また、制御手段121は、S409で抽出したルート情報のそれぞれについてイベント(Ei)からイベント(Ej)に至るまでに経過するイベント(E)のそれぞれに対応する確率(P)をテーブルB1から読み出し、算出手段125は、読み出した確率の総乗をルート情報ごとに算出し、それぞれのルート情報についての総乗の和をPijとする(S411)。S410とS411は順序を入れ替えて実行しても構わない。
Further, the control means 121 reads, from the table B1, the probability (P) corresponding to each event (E) that passes from the event (Ei) to the event (Ej) for each of the route information extracted in S409, The calculating
制御手段121は、S410で算出した時間値Tijを記憶手段13のテーブルB4に格納し、S411で算出した確率値Pijを記憶手段13のテーブルB3に格納する(S412)。S412のフローが実行されると、S406のフローに戻る。
The
図20に、イベント(Ei)が発生してからイベント(Ej)が発生するまでに、経過するイベント(E)を抽出するフローを示す。 FIG. 20 shows a flow for extracting an event (E) that elapses from the occurrence of the event (Ei) to the occurrence of the event (Ej).
S409が実行される(S501)と、制御手段121は、イベントID(Ei)を、イベント(Ei)〜イベントID(Ej)間のルート情報の第1の経過ポイントとして、記憶手段122に格納する(S503)。
When S409 is executed (S501), the
さらに、制御手段121は、記憶手段122のテーブルB1のイベント(Ej)を含むレコードに格納された遷移前状態(Sb)を示す情報を取得し、この情報を(Sy)とする(S504)。
Further, the
次に、制御手段121は、記憶手段122に格納されたルート情報で確定していないものがあるかを判断する(S505)。S505で確定していないルート情報がないと判断した場合(S505:NO)、このフローは終了される(S513)。
Next, the
S505で確定していないルート情報がある場合(S505:YES)、制御手段121は、確定していないルート情報のいずれかを選択し、選択したルート情報のうち、末尾の経過ポイントを示すイベントIDを読み出す(S506)。読み出したイベントIDを(Ex)とする。
When there is route information that has not been confirmed in S505 (S505: YES), the
制御手段121は、記憶手段122のテーブルB1において、S506で読み出したイベントID(Ex)と同一のレコードに含まれる遷移後状態(Sa)を示す情報を読み出し、読み出した情報を(Sx)とする(S507)。
The
次に、制御手段121は、S507で読み出した情報(Sx)と、S504で取得した情報(Sy)が異なるかどうかを判断する(S508)。情報(Sx)と情報(Sy)が同じであるとした場合(S508:NO)、イベント(Ej)をルート情報に追加する(S511)。このルート情報は、イベント(Ei)からイベント(Ej)に至るまでに発生するイベントを列挙できたとして、そのルート情報を確定する(S512)。S512が実行されると、S505の処理が再度実行される。
Next, the
情報(Sx)と情報(Sy)が異なる場合(S508:YES)、制御手段121は、記憶手段122に格納されたテーブルB1を参照し、情報(Sx)と同じ情報を遷移前状態(Sb)とするレコードのイベントIDを抽出する(S509)。
When the information (Sx) is different from the information (Sy) (S508: YES), the
抽出したイベントID(E)を、S505で選択したルート情報の末尾に追加する(S510)。制御手段121は、S509で抽出したイベントIDが複数ある場合、S505で選択したルート情報を複製し、それぞれのルート情報の末尾に抽出したイベントIDのそれぞれを追加する。
The extracted event ID (E) is added to the end of the route information selected in S505 (S510). When there are a plurality of event IDs extracted in S509, the
図21に、指示手段14の処理を実行させるフローを示す。フローが開始すると、制御手段141は、所定時間経過したか(S602)と、通知データを受信したか(S603)の判定を行なう。制御手段141は、所定時間経過したことを検知した場合(S602:YES)は、所定時間を計測する計測タイマをクリアし、再度所定時間の計測を開始する(S605)。S605の処理の後、統計・指示フロー(図23を用いて後述する)が開始される(S606)。
FIG. 21 shows a flow for executing the processing of the
制御手段141は、通知テータの受信を検知した場合(S603:YES)、蓄積フロー(図22を用いて後述する)を開始する(S604)。
When the
図22に、処理装置2a〜2eから受信する通知データを蓄積するフローを示す。
FIG. 22 shows a flow for accumulating notification data received from the
S604が実行される(S701)と、制御手段141は、受信時刻(Hk)を取得する(S702)。また、制御手段141は、通信手段11が受信したデータから、イベントID及びセッションIDを取得する(S703)。さらに制御手段141は、記憶手段13に格納されたテーブルB3及びテーブルB4を参照し、取得したイベントID(Ei)に対応する時間値(Tij)及び確率値(Pij)を読み出す(S704)。
When S604 is executed (S701), the
S704が実行されると、制御手段141は、記憶手段142に格納されたテーブルB5を参照し、S703で取得したセッションIDを含むレコードが存在するかを判断する(S705)。テーブルB5に、S703で取得したセッションIDを含むレコードが存在しない場合(S705:NO)、S704で取得した時間値(Tij)及び確率値(Pij)、並びにS703で取得したセッションID及びイベントIDを含むレコードを、テーブルB5に追加する(S708)。S708の処理が実行されると、S602の処理が実行される。
When S704 is executed, the
テーブルB5に、S703で取得したセッションIDを含むレコードが存在する場合(S705:NO)、取得したセッションIDを含むレコードを、S704で取得した時間値(Tij)及び確率値(Pij)、並びにS703で取得したイベントIDを含むレコードに更新する(S706)。S706の処理が実行されると、S602の処理が実行される。 When a record including the session ID acquired in S703 exists in the table B5 (S705: NO), the record including the acquired session ID includes the time value (Tij) and the probability value (Pij) acquired in S704, and S703. The record is updated to the record including the event ID acquired in (S706). When the process of S706 is executed, the process of S602 is executed.
S705、S706、S707の処理は、付加的なフローであり、これにより統計の精度の向上を図ることができる。 The processing of S705, S706, and S707 is an additional flow, which can improve the accuracy of statistics.
S606が実行される(S801)と、制御手段141は、その時点における時刻(H0)を示す情報を取得する(S802)。また、記憶手段142に格納されるテーブルB5のレコードの数は、時刻(H0)においてsであるとする。
When S606 is executed (S801), the
次に、制御手段141は、記憶手段142のテーブルB5のそれぞれのレコードについて(1〜sの整数rについて)、時間値(Tij)と受信時刻(Hk)を読み出す(S806)。算出手段144は、制御手段141が読み出した時間値(Tij)と、受信時刻(Hk)と、時刻(H0)とに基づいて、Ur=Tij−(H0−Hk)という数式を満たす時間値(Ur)に相当する値を算出する(S807)。
Next, the
制御手段141は、記憶手段142に格納されたテーブルB6に示す時間範囲を参照して、算出した時間値(Us)を含む時間範囲の時間範囲ID(R)を読み出す(S808)。制御手段141は、読み出した時間範囲(R)をテーブルB5の各レコードに格納する(S809)。S804からS809までのフローが1〜sの整数rについて繰り返し実行される。
The
次に、制御手段142は、記憶手段142に格納されたテーブルB5の各レコードについて(1〜sの整数rについて)、確率値(Pij)と時間範囲(Rq)を読み出す(S813)。集計手段145は、制御手段141が読み出した時間範囲(Rq)に対応する統計値(Psumq)に、制御手段141が読み出した確率値(Pij)を加える処理を行なう(SPsumq)。S811からS814までのフローが、1〜sの整数rについて繰り返し実行される。
Next, the
次に、整数rを再度0とし(S810)、整数rに1を加え(S811)、整数rと整数sとの大小を比較し(S812)、整数rが整数sよりも大きい場合(S812:NO)は、S815の処理が実行される。 Next, the integer r is set to 0 again (S810), 1 is added to the integer r (S811), the magnitudes of the integer r and the integer s are compared (S812), and the integer r is greater than the integer s (S812: If NO), the process of S815 is executed.
整数rが整数s以下の数である場合(S812:YES)は、制御手段121が、記憶手段142に格納されたテーブルB5のr番目のレコードから、確率値(Pij)と時間範囲ID(Rq)を読み出す(S813)。読み出した時間範囲ID(Rq)に対応する合計値(Psumq)に読み出した確率値(Pij)を加算する(S814)。
When the integer r is a number equal to or less than the integer s (S812: YES), the
次に、判定手段146は、1〜pの整数qについての合計値(Psumq)と、処理装置2a〜2eの稼働状況とに応じて、処理装置2a〜2eへの指示内容を決定し(S815)、生成手段147は、判定手段146が決定した指示内容に応じて、処理装置に送信する指示データを生成する(S816)。S816が実行されると、S602の処理が実行される(S817)。
Next, the
S815で判定手段146が実行する判断の例を、図24を用いて説明する。図24において、1台の処理装置で処理可能な処理量をMとする。
An example of the determination performed by the
例えば、処理装置2a〜2eのうち、時刻(H0)の時点で2台の処理装置が稼働中であり、2台の処理装置が稼動状態になるまでに30秒かかるスタンバイ状態であり、1台の処理装置が稼動状態になるまでに60秒かかる休止状態であるとする。
For example, among the
その場合、図23に示す統計・指示フローによって算出した合計値(Psum)が図24に示す通りだとすると、例えば、30〜60秒後に3台以上の処理装置が必要とされることが予想されるため、スタンバイ状態の2台の処理装置への稼動指示を生成するなどの対応が考えられる。さらに、60から90秒後に4台以上の処理装置が必要とされることが見込まれるため、スタンバイ状態の処理装置への稼動指示とほぼ同じタイミングで休止状態の処理装置への稼動指示を生成するなどの対応が考えられる。 In this case, assuming that the total value (Psum) calculated by the statistics / instruction flow shown in FIG. 23 is as shown in FIG. 24, it is expected that, for example, three or more processing devices are required after 30 to 60 seconds. For this reason, it is possible to take measures such as generating operation instructions for the two processing devices in the standby state. Furthermore, since it is expected that four or more processing devices will be required after 60 to 90 seconds, an operation instruction is generated for the processing device in the idle state at almost the same timing as the operation instruction to the processing device in the standby state. The correspondence such as is considered.
上述の合計値(Psum)に基づく判断の説明はあくまで例示であり、処理量の見込みに応じて他の判断を行いうる。 The above description of the determination based on the total value (Psum) is merely an example, and other determinations can be made according to the likelihood of the processing amount.
上述の第1の実施形態によれば、処理装置が実行するソースコード(C1)に規定された内容と、処理装置から受信するイベント通知とに基づいて、処理量を見込むことができる。
[第2の実施形態]
第2の実施形態では、テスト運用期間を設け、テスト運用期間に管理装置1が受信したイベント通知を集計した結果に基づいて、イベント間の時間値(Tij)と確率(Pij)とを定める。
According to the first embodiment described above, the processing amount can be estimated based on the contents defined in the source code (C1) executed by the processing device and the event notification received from the processing device.
[Second Embodiment]
In the second embodiment, a test operation period is provided, and a time value (Tij) and a probability (Pij) between events are determined based on a result of totaling event notifications received by the
第2の実施形態の解析手段12と記憶手段13とのそれぞれは、第1の実施形態と同様の機能ブロックであれば良い。
Each of the
図25に、第2の実施形態における指示手段14の機能ブロックを示す。第2の実施形態における指示手段14は、第1の実施形態の指示手段14に、集計手段148を加えた構成である。集計手段148は、イベント通知を集計し、集計結果に基づいてテーブルB2を作成し、記憶手段122に格納する。イベント通知の集計処理を図26に示すテーブルB10と、図27に示すフローを用いて説明する。
FIG. 25 shows a functional block of the
記憶手段142は、図26に示すテーブルB10をさらに格納する。テーブルB10は、イベントID(Ei)毎にレコードを有し、イベントID、遷移前状態(Sb)、遷移後状態(Sa)、該当回数、発生回数、時間累積値、平均時間、平均確率のフィールドを有する。図25のテーブルB10の該当回数、発生回数、時間累積値、平均時間、平均確率のフィールドに格納されている値は、テスト期間におけるイベント通知の集計結果の例である。
The
イベントID、遷移前状態(Sb)、遷移後状態(Sa)のフィールドについては、図7のB2と同じ内容の情報を格納する。該当回数は、テスト期間内に、同じレコードに格納されている遷移前状態(Sb)に至った回数を示す。発生回数は、テスト期間内に、同じレコードに格納されているイベントIDが示すイベントが発生した回数を示す。時間累積値は、各イベントが発生するまでに、そのイベントに対応する遷移前状態(Sb)が保持された時間をイベント発生のたびに累積した値を示す。 In the event ID, pre-transition state (Sb), and post-transition state (Sa) fields, information having the same contents as B2 in FIG. 7 is stored. The number of hits indicates the number of times that the pre-transition state (Sb) stored in the same record is reached within the test period. The number of occurrences indicates the number of times the event indicated by the event ID stored in the same record has occurred within the test period. The time accumulated value indicates a value obtained by accumulating the time during which the pre-transition state (Sb) corresponding to the event is held before each event occurs, every time the event occurs.
時間累積値をイベント発生回数で割った値を平均時間とし、イベントが発生するまでに遷移前状態(Sb)が保持された期間の平均を示す指標として用いる。さらに、イベント発生回数をSb該当回数で割った値を平均確率とし、遷移前状態(Sb)からイベントが発生する確率として用いる。 A value obtained by dividing the accumulated time value by the number of event occurrences is used as an average time, and is used as an index indicating an average of a period in which the pre-transition state (Sb) is held until the event occurs. Further, a value obtained by dividing the number of event occurrences by the number of corresponding Sb is used as an average probability, and is used as a probability that an event will occur from the state before transition (Sb).
図27は、図26に示すテーブルB10に基づいて平均時間と平均確率を算出するフローを示す。平均時間と平均確率は、図22のフローでS705の処理とS706の処理との間に図27に示すフローを実行することにより、算出される。 FIG. 27 shows a flow for calculating the average time and average probability based on the table B10 shown in FIG. The average time and average probability are calculated by executing the flow shown in FIG. 27 between the processing of S705 and the processing of S706 in the flow of FIG.
まず、テスト運用を開始する前に、テーブルB10のイベントID、遷移前状態(Sb)、遷移後状態(Sa)のフィールドに、テーブルB2の情報をコピーしておく。さらに、各レコードの該当回数のフィールドに1を格納しておく。 First, before starting the test operation, the information of the table B2 is copied to the event ID, pre-transition state (Sb), and post-transition state (Sa) fields of the table B10. Furthermore, 1 is stored in the field of the number of times of each record.
S705でYESと判定された場合(S901)、制御手段141は、イベント通知に含まれるセッションIDと同じセッションIDを含むレコードをテーブルB5から読出し、読み出したテーブルから受信時刻(Hk)を抽出する(S902)。
When it is determined YES in S705 (S901), the
次に、集計手段148は、イベント通知に含まれる受信時刻と、S902で抽出した受信時刻(Hk)との差を算出する(S903)。集計手段148は、S903で算出した差を、テーブルB10に含まれるレコードであって、イベント通知と同じIDを含むレコードの累積時間値に加算する(S904)。
Next, the
さらに、集計手段148は、テーブルB10のレコードのうち、イベント通知とイベントIDが一致するレコード(S904で更新したレコード)の発生回数フィールドに1加算する(S905)。S905の処理後、集計手段148は、イベント通知とイベントIDが一致するレコードの発生回数を、そのレコードの該当回数で割り算し、算出した値を平均確率フィールドに格納する(S906)。さらに、集計手段148は、そのレコードの累積時間値を発生回数で割り算し、算出した値を平均時間のフィールドに格納する(S907)。
Further, the
集計手段148は、S904〜S907で値を更新したレコードの遷移後状態(Sa)を読み出し、読み出した状態を遷移前状態(Sb)として含むレコードをテーブルB10から読み出す。集計手段148は、読み出したレコードのそれぞれの該当回数フィールドの値に1ずつ加算する(S908)。S908の処理後、S706の処理が実行される(S909)。
The
管理装置1がテスト運用期間中に上述のフローを実行した後、集計手段148は、テーブルB10の各レコードに格納した平均時間をテーブルB2の保持時間(Ti)に格納し、テーブルB10の各レコードに格納した平均確率をテーブルB2の確率(Pi)に格納する。その後は、解析手段12が、テーブルB2に格納した保持時間(Ti)と確率(Pi)とに基づいて、第1の実施形態と同様の手順で時間値(Tij)と確率値(Pij)を算出する。
After the
第2の実施形態のように、プログラムを解析した結果のみでなく、運用時のイベント通知の統計を利用することで、処理装置群にアクセスするクライアントの傾向を、処理量の予測に反映させることが出来る。 As in the second embodiment, not only the result of analyzing the program but also the statistics of event notification during operation are used to reflect the tendency of clients accessing the processing device group in the prediction of the processing amount. I can do it.
この集計手段148が行う処理は、図14に示す装置によって実現可能である。プロセッサ1aが、メモリ1b又は記憶装置1dにテーブルB2、テーブルB5、テーブルB10を格納し、テーブルB2、テーブルB5、テーブルB10に格納された情報を読み出し、読み出した情報にプログラムに従った演算を行い、テーブルB2、テーブルB10に情報を格納するなどにより集計手段148が行なう処理を実現する。
The processing performed by the
また、予めイベント間の時間値(Tij)と確率値(Pij)とを設定して運用し、運用中に受信したイベント通知の集計結果に基づいて時間値(Tij)と確率値(Pij)とが更新されるようにしても良い。実施形態を運用する期間中にイベント間の時間と確率とが変化する場合も、時間値(Tij)と確率値(Pij)を更新することで、見積もりの精度向上が見込まれる。 Further, the time value (Tij) and the probability value (Pij) between events are set and operated in advance, and the time value (Tij) and the probability value (Pij) are determined based on the total result of the event notification received during the operation. May be updated. Even when the time and probability between events change during the period in which the embodiment is operated, the accuracy of estimation is expected to be improved by updating the time value (Tij) and the probability value (Pij).
本発明の実施は、上述の実施形態のみにかぎらず、その他の実施形態をとりうる。 The embodiment of the present invention is not limited to the above-described embodiment, and may take other embodiments.
1 管理装置
2a〜2e 処理装置
3a〜3e 記憶装置
4 負荷分散装置
5,6 ネットワーク
7 端末装置
11 通信手段
12 解析手段
13 記憶手段
14 指示手段
121 制御手段
122 記憶手段
123 抽出手段
124 生成手段
125 算出手段
141 制御手段
142 記憶手段
143 生成手段
144 算出手段
145 集計手段
146 判定手段
147 生成手段
1a プロセッサ
1b メモリ
1c 通信インターフェース
1d 記憶装置
1e バス
148 集計手段
DESCRIPTION OF
Claims (14)
前記第1の処理の実行に併せて前記第1の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加し、
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶手段に記憶し、
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第1の処理が実行されたことを検知し、
前記第1の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出し、
前記第2の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測すること
をコンピュータに実行させることを特徴とする予測プログラム。 Based on an order relationship between the processes of the plurality of types of processes defined in the source code that defines a plurality of types of processes executed in response to the request, the first process of the plurality of types of processes is executed. A predicted time until the execution of the second process among the plurality of types of processes and the probability of executing the second process after executing the first process ,
In addition to the execution of the first process, a notification code that specifies notification of an identifier for identifying the first process is added to the source code,
Storing the calculated predicted time and the probability in the storage unit in association with the identifier;
Detecting that the first process has been executed by obtaining the notification of the identifier performed based on the source code to which the notification code is added;
When it is detected that the first process has been executed, the prediction time and the probability stored in the storage unit associated with the same identifier as the identifier included in the notification are read out,
A prediction program for causing a computer to predict that the second process is executed with the read probability after the read prediction time .
前記ソースコードを、前記ソースコードに基づく処理を行なう処理装置から取得し、Obtaining the source code from a processing device that performs processing based on the source code;
取得したソースコードに基づいて、前記予測時間を算出することCalculate the predicted time based on the obtained source code.
を実行させることを特徴とする請求項1に記載の予測プログラム。The prediction program according to claim 1, wherein:
前記第2の処理が実行されることの予測結果に応じて、前記ソースコードに基づいて処理を実行可能であり、待機中である処理装置に、稼動指示を出力することAccording to a prediction result that the second process is executed, the process can be executed based on the source code, and an operation instruction is output to a waiting processing apparatus.
を実行させることを特徴とする請求項1又は請求項2に記載の予測プログラム。The prediction program according to claim 1, wherein the prediction program is executed.
前記第2の処理が実行されることの予測結果に応じて、前記ソースコードに基づいて処理を実行可能であり、稼働中である処理装置に、待機指示を出力することAccording to the prediction result that the second process is executed, the process can be executed based on the source code, and a standby instruction is output to a processing apparatus that is in operation.
を実行させることを特徴とする請求項1〜請求項3のいずれかに記載の予測プログラム。The prediction program according to claim 1, wherein the prediction program is executed.
前記通知を複数取得した場合に、通知を取得してから前記予測時間経過した時刻が所定の時刻範囲に含まれる通知のそれぞれについて、それぞれの通知に含まれる前記識別子に関連付けて前記記憶手段に記憶した確率を読み出し、When a plurality of notifications are acquired, each of notifications in which the estimated time has elapsed since the notification was acquired is included in a predetermined time range, and stored in the storage unit in association with the identifier included in each notification. Read the probability
読み出した確率を合算した確率で、前記所定の時刻範囲に前記第2の処理が実行されることを予測することPredicting that the second process is executed in the predetermined time range with the probability of adding the read probabilities
を実行させることを特徴とする請求項1〜請求項4に記載の予測プログラム。The prediction program according to claim 1, wherein the prediction program is executed.
前記複数種類の処理のそれぞれを識別する識別子の通知を、それぞれの処理の実行に併せて行なうことを規定したコードを前記ソースコードに追加し、Adding to the source code a code specifying that notification of an identifier for identifying each of the plurality of types of processing is performed in conjunction with execution of each processing;
前記複数種類の処理のそれぞれについて、それぞれの処理を実行してから前記第2の処理を実行するまでの予測時間と、それぞれの処理を実行した後に前記第2の処理を実行する確率とを算出し、For each of the plurality of types of processes, the estimated time from the execution of each process to the execution of the second process and the probability of executing the second process after executing each process are calculated. And
算出したそれぞれの処理についての予測時間及び確率を、それぞれの処理を識別する識別子に関連付けて記憶手段に記憶することStoring the calculated predicted time and probability for each process in the storage means in association with an identifier for identifying each process.
を実行させることを特徴とする請求項1〜請求項5に記載の予測プログラム。The prediction program according to claim 1, wherein the prediction program is executed.
前記コンピュータに、In the computer,
前記通知に含まれるアクセス識別子に、前記通知に含まれる識別子と、前記通知に含まれる識別子に関連付けて前記記憶手段に記憶した前記予測時間及び前記確率とを関連付けて第2の記憶手段に記憶し、The access identifier included in the notification is stored in the second storage unit in association with the identifier included in the notification and the predicted time and the probability stored in the storage unit in association with the identifier included in the notification. ,
前記第2の記憶手段に記憶した予測時間及び確率に、同じアクセス識別子に関連付けられた予測時間及び確率が複数存在する場合は、最後に取得した通知に含まれるアクセス識別子に関連付けられた予測時間及び確率に、複数存在する予測時間及び確率を集約し、In the case where there are a plurality of prediction times and probabilities associated with the same access identifier in the prediction times and probabilities stored in the second storage means, the prediction time associated with the access identifier included in the last acquired notification and Aggregate multiple prediction times and probabilities into probabilities,
前記第2の記憶手段に記憶した前記予測時間及び前記確率に基づいて、前記第2の処理が実行されることを予測することPredicting that the second process is executed based on the prediction time and the probability stored in the second storage unit.
を実行させることを特徴とする請求項1〜請求項6のいずれかに記載の予測プログラム。The prediction program according to claim 1, wherein the prediction program is executed.
前記第2の記憶手段に記憶した予測時間及び確率に、同じアクセス識別子に関連付けられた予測時間及び確率が複数存在する場合に、同じ識別子に関連付けられた予測時間同士の差と、同じ識別子に関連付けられた前記確率のうち先に取得した通知に含まれる確率とを第3の記憶手段に記憶し、When there are a plurality of prediction times and probabilities associated with the same access identifier in the prediction times and probabilities stored in the second storage means, the difference between the prediction times associated with the same identifier and the association with the same identifier Storing the probability included in the notification acquired earlier in the third storage means,
前記第3の記憶手段に記憶した前記時間値同士の差に基づいて、前記複数種類の処理のそれぞれについて、それぞれの処理が実行されてから前記複数種類の処理のうちの他の処理が実行されるまでの時間の平均を算出し、Based on the difference between the time values stored in the third storage means, each of the plurality of types of processing is executed, and then another processing of the plurality of types of processing is executed. Calculate the average time to
前記第3の記憶手段に記憶した確率に基づいて、前記複数種類の処理のそれぞれについて、それぞれの処理が実行された後に前記複数種類の処理のうちの他の処理が実行される遷移確率を算出し、Based on the probabilities stored in the third storage means, for each of the plurality of types of processing, a transition probability in which another processing among the plurality of types of processing is executed after each processing is executed is calculated. And
前記時間値を、算出した前記平均に更新し、前記確率を、算出した前記遷移確率に更新することUpdating the time value to the calculated average and updating the probability to the calculated transition probability.
を実行させることを特徴とする請求項7に記載の予測プログラム。The prediction program according to claim 7, wherein:
を特徴とする請求項1〜請求項8のいずれかに記載の予測プログラム。The prediction program according to claim 1, wherein:
を特徴とする請求項1〜8のいずれかに記載の予測プログラム。The prediction program according to claim 1, wherein:
を特徴とする請求項1〜請求項10のいずれかに記載の予測プログラム。The prediction program according to claim 1, wherein:
前記第1の処理の実行に併せて前記第1の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加し、In addition to the execution of the first process, a notification code that specifies notification of an identifier for identifying the first process is added to the source code,
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶手段に記憶し、Storing the calculated predicted time and the probability in the storage unit in association with the identifier;
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第1の処理が実行されたことを検知し、Detecting that the first process has been executed by obtaining the notification of the identifier performed based on the source code to which the notification code is added;
前記第1の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出し、When it is detected that the first process has been executed, the prediction time and the probability stored in the storage unit associated with the same identifier as the identifier included in the notification are read out,
前記第2の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測することPredicting that the second process is executed with the read probability after the read prediction time.
を含むことを特徴とする予測方法。The prediction method characterized by including.
前記第1の処理の実行に併せて前記第1の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加する追加手段と、Adding means for adding to the source code a notification code that prescribes notification of an identifier for identifying the first process in conjunction with the execution of the first process;
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶する記憶手段と、Storage means for storing the calculated predicted time and the probability in association with the identifier,
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第1の処理が実行されたことを検知する検知手段と、Detecting means for detecting that the first process has been executed by acquiring the notification of the identifier performed based on the source code to which the notification code is added;
前記第1の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出す読み出し手段と、A reading means for reading out the predicted time and the probability stored in the storage means in association with the same identifier as the identifier included in the notification when it is detected that the first process has been executed;
前記第2の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測する予測手段とPrediction means for predicting that the second process is executed with the read probability after the read prediction time;
を含むことを特徴とする予測装置。The prediction apparatus characterized by including.
前記第3の装置は、The third device includes:
前記第1の装置上で要求に応じて実行される複数種類の処理を規定したソースコードに規定された前記複数種類の処理の処理間の順序関係に基づいて、前記複数種類の処理のうちの第1の処理を実行してから前記複数種類の処理のうちの第2の処理を実行するまでの予測時間および前記第1の処理を実行した後に前記第2の処理を実行する確率を算出する算出手段と、Based on the order relationship between the processes of the plurality of types of processes defined in the source code that defines a plurality of types of processes to be executed in response to the request on the first device, The predicted time from the execution of the first process to the execution of the second process among the plurality of types of processes and the probability of executing the second process after the execution of the first process are calculated. A calculation means;
前記第1の処理の実行に併せて前記第1の処理を識別する識別子の通知を行なうことを規定した通知コードを前記ソースコードに追加する追加手段と、Adding means for adding to the source code a notification code that prescribes notification of an identifier for identifying the first process in conjunction with the execution of the first process;
前記識別子に、算出した前記予測時間及び前記確率を関連付けて記憶する記憶手段と、Storage means for storing the calculated predicted time and the probability in association with the identifier,
前記通知コードを追加したソースコードに基づいて行われた前記識別子の通知の取得によって前記第1の処理が実行されたことを検知する検知手段と、Detecting means for detecting that the first process has been executed by acquiring the notification of the identifier performed based on the source code to which the notification code is added;
前記第1の処理が実行されたことを検知した場合に、前記通知に含まれる前記識別子と同一の識別子に関連付けられて前記記憶手段に記憶した前記予測時間と前記確率を読み出す読み出し手段と、A reading means for reading out the predicted time and the probability stored in the storage means in association with the same identifier as the identifier included in the notification when it is detected that the first process has been executed;
前記第2の処理が、読み出した前記予測時間後に、読み出した前記確率で実行されることを予測する予測手段とPrediction means for predicting that the second process is executed with the read probability after the read prediction time;
前記予測手段の予測結果に応じて、前記第2の装置に稼動指示を出力する出力手段とOutput means for outputting an operation instruction to the second device in accordance with a prediction result of the prediction means;
を含むことを特徴とする予測システム。The prediction system characterized by including.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010176023A JP5565181B2 (en) | 2010-08-05 | 2010-08-05 | Prediction device, prediction method, and prediction program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010176023A JP5565181B2 (en) | 2010-08-05 | 2010-08-05 | Prediction device, prediction method, and prediction program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012038001A JP2012038001A (en) | 2012-02-23 |
JP5565181B2 true JP5565181B2 (en) | 2014-08-06 |
Family
ID=45849962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010176023A Active JP5565181B2 (en) | 2010-08-05 | 2010-08-05 | Prediction device, prediction method, and prediction program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5565181B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6269668B2 (en) * | 2013-07-03 | 2018-01-31 | 日本電気株式会社 | Information processing apparatus, request processing method, and computer-readable recording medium |
JP6969261B2 (en) * | 2017-09-29 | 2021-11-24 | 日本電気株式会社 | Node management device, node management method and program |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05265775A (en) * | 1992-03-19 | 1993-10-15 | Hitachi Ltd | Job execution forecast control method and job execution condition display method |
JPH07191861A (en) * | 1993-12-27 | 1995-07-28 | Kobe Steel Ltd | Schedule preparing device |
JPH09218861A (en) * | 1996-02-08 | 1997-08-19 | Fuji Xerox Co Ltd | Scheduler |
JP2002268879A (en) * | 2001-03-07 | 2002-09-20 | Mitsubishi Electric Corp | Device and method for supporting program design and program for performing program design support method by computer |
JP4102695B2 (en) * | 2003-03-28 | 2008-06-18 | 株式会社日本総合研究所 | Batch job management system and batch job management program |
JP2005173764A (en) * | 2003-12-09 | 2005-06-30 | Fuji Xerox Co Ltd | Service processor |
-
2010
- 2010-08-05 JP JP2010176023A patent/JP5565181B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012038001A (en) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182213B2 (en) | Application program management method and device | |
CN104335137B (en) | Manage the power consumption and performance of computing system | |
CN106557407B (en) | Method and device for monitoring equipment load | |
JP5479176B2 (en) | Server device, peripheral device management method, and program | |
JP2011175357A5 (en) | Management device and management program | |
CN105229591A (en) | Overall situation polymerization NameSpace is created in order to storage administration | |
WO2014039207A1 (en) | Power sub-state monitoring and recording | |
EP4006742A1 (en) | Fork processing method and blockchain node | |
US8208893B1 (en) | Performance metrics processing for anticipating unavailability | |
JP4811830B1 (en) | Computer resource control system | |
WO2014013603A1 (en) | Monitoring system and monitoring program | |
JP2010140134A (en) | Virtual machine management method, program, and management server | |
CN107943846B (en) | Data processing method and device and electronic equipment | |
CN103942197A (en) | Data monitoring processing method and device | |
CN109459635B (en) | Virtual reality game equipment fault monitoring method and device | |
CN103984768A (en) | Data management method for database cluster, nodes and data management system for database cluster | |
JP5565181B2 (en) | Prediction device, prediction method, and prediction program | |
Ravindra et al. | Latency aware elastic switching-based stream processing over compressed data streams | |
CN104428761A (en) | Network congestion reduction | |
JP5825120B2 (en) | Control system, arithmetic processing unit, and log delivery method | |
CN103383652B (en) | The switching method of the multiple operating systems of computer platform | |
CN102546250B (en) | File publishing method and system based on main/standby mechanism | |
TWI443506B (en) | Distributing information | |
CN114465879B (en) | Management node election method and device, storage medium and electronic equipment | |
JP6916096B2 (en) | Instance utilization promotion system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130604 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140128 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140312 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140520 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140602 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5565181 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |