JP2015170085A - ジョブ実行時間予測方法およびジョブ管理装置 - Google Patents

ジョブ実行時間予測方法およびジョブ管理装置 Download PDF

Info

Publication number
JP2015170085A
JP2015170085A JP2014043894A JP2014043894A JP2015170085A JP 2015170085 A JP2015170085 A JP 2015170085A JP 2014043894 A JP2014043894 A JP 2014043894A JP 2014043894 A JP2014043894 A JP 2014043894A JP 2015170085 A JP2015170085 A JP 2015170085A
Authority
JP
Japan
Prior art keywords
job
execution
value
execution time
time
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
Application number
JP2014043894A
Other languages
English (en)
Inventor
祐輔 佐々木
Yusuke Sasaki
祐輔 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2014043894A priority Critical patent/JP2015170085A/ja
Publication of JP2015170085A publication Critical patent/JP2015170085A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ジョブ実行がほぼ確実に完了すると予測される時間を求める。
【解決手段】ジョブ管理装置は、t分布の累積分布関数の逆関数の値であるt値が格納された関数値テーブルを備える。ジョブ管理装置は、まず、実行の実績のあるジョブの実行時間の平均値と不偏標準偏差を求める(S702、S703)。次に、ジョブ管理装置は、所定の数の選択肢の中から選択された上側確率と実行の実績のあるジョブの総実行回数から求められる自由度とを関数値テーブルに入力し、関数値テーブルからt値を取得する。そして、ジョブ管理装置は、実行の実績のあるジョブの実行時間の平均値および不偏標準偏差と、関数値テーブルから取得したt値とに基づいて、t分布の相対度数が選択された上側確率によって定まる値である実行時間を計算し、計算された実行時間をジョブの実行時間の上限値とする(S704)。
【選択図】図7

Description

本発明は、各種業務を遂行するコンピューターシステムにおいて、ジョブ実行にかかる時間を予測するジョブ実行時間予測方法およびジョブ管理装置に関する。
各種業務を遂行するコンピューターシステムにおいて、日々の業務を計画的にスケジューリングし、自動運用を行うために、ジョブ管理システムが利用されている。ジョブ管理システムは、ジョブ毎に運用日や休業日を設定したカレンダーを指定することや、ジョブの実行スケジュールとして日次、月次などの各種処理サイクルを指定することによって、さまざまな業務サイクルにあわせてジョブをスケジューリングすることができる。
そして、ユーザは、コンピューターシステムでのジョブ実行のスケジューリングを行う際に、各ジョブの実行に必要な時間を予測し、ジョブ管理システムにおいてそれぞれのジョブの時間を割り当てる必要がある。また、コンピューターシステムで実行しているジョブに何らかの異常があってジョブの実行が終わらないことがあるため、ジョブ管理システムは、実行開始から長時間経過しても実行が終わらないジョブは、異常が発生しているものと判断して、対処する必要がある。
そこで、ジョブ実行にかかる時間を実績の平均値から予測することが行われている。例えば、特許文献1は、ジョブ実行にかかった時間の実績の平均値の分だけ待機するダミープログラムを使用して、ジョブ実行のシミュレーションを行い、スケジューリング内容を検証するジョブシュミレーション方法を開示する。
特願2011―200868号公報
しかし、ジョブが正常に実行されていても、実行にかかる時間が平均値を上回ることがある。そのため、ジョブ実行のためにコンピューターシステムを確保する時間や、ジョブ実行が終わらないため異常であると判断する経過時間の閾値を、平均値より大きくする必要があるが、どれだけ大きくするべきかが明確になっていない。
本発明の目的は、ジョブ実行のためにコンピューターシステムを確保する時間や、ジョブ実行が終わらないため異常であると判断する経過時間の閾値として使用する値を得るために、ジョブ実行がほぼ確実に完了すると予測される時間を求めるジョブ実行時間予測方法およびジョブ管理装置を提供することにある。
上記目的を達成するために、本発明のジョブ実行時間予測方法は、
t分布の累積分布関数の逆関数の値であるt値が格納された関数値テーブルを備えるジョブ管理装置におけるジョブ実行時間予測方法であって、
実行の実績のあるジョブの実行時間の平均値を求める平均値算出ステップと、
前記実行の実績のあるジョブの実行時間の不偏標準偏差を求める不偏標準偏差算出ステップと、
所定の数の選択肢の中から選択された上側確率と前記実行の実績のあるジョブの総実行回数から求められる自由度とを前記関数値テーブルに入力し、前記関数値テーブルからt値を取得するt値取得ステップと、
前記実行の実績のあるジョブの実行時間の平均値および不偏標準偏差と、前記関数値テーブルから取得したt値とに基づいて、t分布の相対度数が選択された前記上側確率によって定まる値である実行時間を計算し、計算された当該実行時間を当該ジョブの実行時間の上限値とする実行時間上限値算出ステップと、
を備えることを特徴とする。
好ましくは、本発明のジョブ実行時間予測方法は、
前記関数値テーブルは、前記自由度を所定の上限値まで入力可能であり、
前記t値取得ステップにおいて、入力された前記自由度が前記所定の上限値を超えている場合には、選択された前記上側確率と前記所定の上限値の自由度とに対応するt値を前記関数値テーブルから取得する、
ことを特徴とする。
また、本発明のジョブ管理装置は、
t分布の累積分布関数の逆関数の値であるt値が格納された関数値テーブルと、
実行の実績のあるジョブの実行時間の平均値を求める平均値算出手段と、
前記実行の実績のあるジョブの実行時間の不偏標準偏差を求める不偏標準偏差算出手段と、
所定の数の選択肢の中から選択された上側確率と前記実行の実績のあるジョブの総実行回数から求められる自由度とを前記関数値テーブルに入力し、前記関数値テーブルからt値を取得するt値取得手段と、
前記実行の実績のあるジョブの実行時間の平均値および不偏標準偏差と、前記関数値テーブルから取得したt値とに基づいて、t分布の相対度数が選択された前記上側確率によって定まる値である実行時間を計算し、計算された当該実行時間を当該ジョブの実行時間の上限値とする実行時間上限値算出手段と、
を備えることを特徴とする。
好ましくは、本発明のジョブ管理装置は、
前記ジョブの実行が開始してから、前記実行時間上限値算出手段によって求められた実行時間の上限値以上の時間が経過しても、前記ジョブの実行が完了しない場合に、異常が発生しているとみなして前記ジョブの実行を停止させるジョブ停止手段を備えることを特徴とする。
本発明によれば、ジョブ実行がほぼ確実に完了すると予測される時間を求めることができる。そして、この時間に基づいて、ジョブ実行のためにコンピューターシステムを確保する時間や、ジョブ実行が終わらないため異常であると判断する経過時間の閾値を決定することができる。
本発明の実施形態に係るジョブ実行時間予測方法を使用するジョブ実行システムの構成の一例を示す図である。 ジョブ管理マネージャーの構成の一例を示す図である。 ジョブ実行エージェントの構成の一例を示す図である。 ジョブ定義DBに格納されるジョブ定義テーブルのデータ構成の一例を示す図である。 関数値テーブルのデータ構成の一例を示す図である。 実行結果情報DBに格納される実行結果テーブルとジョブ統計情報テーブルのデータ構成の一例を示す図である。図6(A)は実行結果テーブルのデータ構成の一例を示す。図6(B)はジョブ統計情報テーブルのデータ構成の一例を示す。 ジョブ統計情報テーブルのレコードの内容を更新するジョブ統計情報テーブル更新処理の流れの一例を示すフローチャートである。 ジョブの実行時間の平均値μを計算する平均実行時間算出処理(S702)の流れの一例を示すフローチャートである。 ジョブの実行時間の不偏標準偏差σを計算する不偏標準偏差算出処理(S703)の流れの一例を示すフローチャートである。 ジョブの実行時間の上限値uを計算する実行時間上限値算出処理(S704)の流れの一例を示すフローチャートである。 ジョブ実行を開始するたびに障害判定オブジェクトを障害判定オブジェクト用キューに格納する障害判定オブジェクト格納処理の流れの一例を示すフローチャートである。 図11の障害判定オブジェクト格納処理により障害判定オブジェクトが障害判定オブジェクト用キューに格納されたときに障害判定スレッドを起動する障害判定オブジェクト格納時障害判定スレッド起動処理の流れの一例を示すフローチャートである。 障害判定スレッドの処理の流れの一例を示すフローチャートである。 図13のステップS1303で障害判定オブジェクトが取り除かれたときに実行される障害判定時障害判定スレッド起動処理の流れの一例を示すフローチャートである。 ジョブ管理部がジョブ実行部からジョブ実行終了通知を受信したときに後続のジョブを実行するジョブ実行終了時処理の流れの一例を示すフローチャートである。 図15のステップS1501において、ジョブ実行終了時に障害判定オブジェクト用キューから障害判定オブジェクトが取り除かれたときに障害判定スレッドを起動するジョブ実行終了時障害判定スレッド起動処理の流れの一例を示すフローチャートである。 ジョブ実行部が障害判定通知を受信したときにジョブの実行を停止するジョブ実行エージェントのジョブ実行停止処理の流れの一例を示すフローチャートである。 ジョブ管理部が障害判定停止通知を受信したときに行うジョブ管理マネージャーのジョブ実行停止処理の流れの一例を示すフローチャートである。
以下、本発明の実施形態に係るジョブ実行時間予測方法およびジョブ管理装置について図面を参照しながら説明する。なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
ここで、本明細書および特許請求の範囲で使用するジョブとは、コンピューターが処理する仕事の単位を意味し、各種業務に対応した外部プログラムを定義できるものである。また、ジョブネットとは、複数のジョブおよび/またはジョブネットをまとめてそれぞれのジョブおよび/またはジョブネットの実行順序を定義したものである。
図1は、本発明の実施形態に係るジョブ実行時間予測方法を用いるジョブ実行システム100の構成の一例を示す。
ジョブ実行システム100は、ジョブ管理マネージャー101と、ジョブ実行エージェント102A、102B、102Cと、端末103とを有する。これらはネットワーク104に接続されており、相互に通信することができる。
図2は、ジョブ管理マネージャー101の構成の一例を示す。
ジョブ管理マネージャー101は、CPU(Central Processing Unit)と、RAM(Random Access Memory)等で構成される主メモリと、ハードディスク等で構成される記憶装置210とを有する。
ジョブ管理マネージャー101の記憶装置210には、ジョブ定義データベース(DB)211と、実行結果情報DB212と、関数値テーブル213と、ジョブ管理プログラム214とが格納されている。ジョブ管理マネージャー101のCPUが記憶装置210からジョブ管理プログラム214を主メモリに読み出して実行することで、ジョブ管理部201と入出力部202との各部の機能が実現される。
ジョブ定義DB211は、ジョブネットとジョブの定義情報を格納する。
実行結果情報DB212は、ジョブ実行エージェント102A、102B、102Cで実行されるジョブの状態や開始時刻、終了時刻、統計情報などを格納する。
関数値テーブル501は、t分布の累積分布関数の逆関数の値(t値)を格納する。
ジョブ管理部201は、実際の業務をジョブとして管理する。その際、ジョブ管理部201は、ユーザが設定したスケジュールに従って、各ジョブの実行をジョブ実行エージェント102A、102B、102Cに要求してその結果を受け取る。
入出力部202は、端末103からの要求に応じて、ジョブ定義DB211に格納されているジョブネットとジョブの定義情報の変更や取得、実行結果情報DB212に格納されているジョブの状態や開始時刻、終了時刻、統計情報などの取得を行う。
なお、ジョブ管理マネージャー101は本発明のジョブ管理装置の例である。
図3は、ジョブ実行エージェント102A、102B、102Cの構成の一例を示す。
ジョブ実行エージェント102A、102B、102Cは、CPUと、RAM等で構成される主メモリと、ハードディスク等で構成される記憶装置とを有する。
ジョブ実行エージェント102A、102B、102Cの記憶装置には、ジョブ実行プログラムが格納されている。ジョブ実行エージェント102A、102B、102CのCPUが記憶装置からジョブ実行プログラムを主メモリに読み出して実行することで、ジョブ実行部301の機能が実現される。
ジョブ実行部301は、ジョブ管理マネージャー101からジョブ実行の要求を受信すると、受信した要求に応じてジョブを実行する。そして、ジョブ実行部301は、実行が終了したら、実行結果の情報を含むジョブ実行終了通知をジョブ管理マネージャー101に送信する。
端末103は、CPUと、RAM等で構成される主メモリと、ハードディスク等で構成される記憶装置と、入力部と、ディスプレイ等で構成される出力部とを有する。
ジョブ実行システム100のユーザは、ジョブ実行システム100を用いて、ジョブ管理マネージャー101が管理するジョブネットとジョブの定義やスケジューリングを行い、ジョブの実行実績を参照することができる。
図4は、ジョブ定義DB211に格納されるジョブ定義テーブル401のデータ構成の一例を示す。
ジョブ定義テーブル401のレコードは、ジョブネット名/ジョブ名402と、上位ジョブネット名403と、先行ジョブネット名/先行ジョブ名404と、実行先エージェント名405と、実行プログラム406と、異常判定上側確率407とで構成される。
ジョブネット名/ジョブ名402は、ジョブネットまたはジョブの名称であり、ジョブネットまたはジョブを一意に特定する。以下、ジョブネットの名称についてはジョブネット名402といい、ジョブの名称についてはジョブ名402という。
上位ジョブネット名403とは、ジョブネット名/ジョブ名402で特定されるジョブネットまたはジョブを含む上位のジョブネットの名称を示す。
先行ジョブネット名/先行ジョブ名404は、ジョブネット名/ジョブ名402で特定されるジョブネットまたはジョブに先行して実行するように定義されているジョブネットまたはジョブの名称を示す。
実行先エージェント名405は、ジョブ名402で特定されるジョブを実行するジョブ実行エージェントの名称を示す。
実行プログラム406は、ジョブ名402で特定されるジョブが実行する外部プログラムを示す。
異常判定上側確率407は、ジョブ管理部201により、ジョブ名402で特定されるジョブの実行が終わらないため異常であると判断する経過時間の閾値の計算に使用される上側確率を示す。
ユーザは、端末103上でジョブ定義テーブル401の各項目を含むジョブネットとジョブの定義を入力することができる。そのとき、異常判定上側確率407は、端末103で、0、10−2、10−3のように0または0に近いいくつかの値の選択肢の中から選択される。端末103はジョブネットとジョブの定義をジョブ管理マネージャー101に送信する。ジョブ管理マネージャー101がジョブネットとジョブの定義を受信すると、入出力部202は、ジョブネットとジョブの定義に基づいてジョブ定義テーブル401の各項目を登録する。
図5は、関数値テーブル213のデータ構成の一例を示す。
関数値テーブル501には、t分布の累積分布関数の逆関数の値(t値)が格納される。関数値テーブル501は、横軸が上側確率502であり、縦軸が自由度503であり、上側確率502と自由度503に対応するt値を格納する。なお、あるジョブの総実行回数がn回であるとき、そのジョブの実行時間の自由度はn−1である。
t値は、ジョブ管理部201により、例えば、ジョブの実行が終わらないため異常であると判断する経過時間の閾値の計算に使用される。1から上側確率pを引いた値(1−p)は相対度数と等しい。t分布の累積分布関数の逆関数をF(自由度,相対度数)とすると、図5の関数値テーブル213において、自由度503がdの行、上側確率502がpの列のt値は、F(d,1−p)の値である。
ユーザは端末103で0または0に近いいくつかの値の中から異常判定上側確率407を選択することができるが、関数値テーブル501は、上側確率502として、異常判定上側確率407を端末103で指定する際の選択肢のうち、0以外のすべての値に対応したものを含む。
また、関数値テーブル501は、自由度503として、正の整数で、1から特定の整数d_maxまでのすべての値を含む。(ジョブ統計情報テーブル607の計算対象のレコードの総実行回数609の値−1)がd_maxより大きい場合は、自由度503をd_maxとしてt値を求める。
図6は、実行結果情報DB212に格納される実行結果テーブル601とジョブ統計情報テーブル607のデータ構成の一例を示す。図6(A)は実行結果テーブルのデータ構成の一例を示し、図6(B)はジョブ統計情報テーブルのデータ構成の一例を示す。
実行結果テーブル601は、ジョブネットまたはジョブの一回の実行に対して、一つのレコードを持つ。実行結果テーブル601のレコードは、実行ID(Identifier)602と、ジョブネット名/ジョブ名603と、状態604と、開始時刻605と、終了時刻606とで構成される。
実行ID602は、あるジョブネットとそのジョブネットで実行順序が定義されるジョブネットおよび/またはジョブの一連の実行を一意に特定する識別符号である。図6(A)の例では、JobNetAはJobA−1とJobA−2の実行順序を定義しているので、JobNetAとJobA−1とJobA−2とに同一の実行ID602が付与されている。
ジョブネット名/ジョブ名603は、ジョブネットまたはジョブを一意に特定する名称である。以下、ジョブネットの名称についてはジョブネット名603といい、ジョブの名称についてはジョブ名603という。
状態604は、実行ID602とジョブネット名/ジョブ名603とで特定されるジョブネットまたはジョブの実行状態を示す。
開始時刻605と終了時刻606は、それぞれ実行ID602とジョブネット名/ジョブ名603とで特定されるジョブネットまたはジョブの実行を開始した時刻と実行を終了した時刻とを示す。
ジョブ統計情報テーブル607は、一つのジョブに対して、一つのレコードを持つ。ジョブ統計情報テーブル607のレコードは、ジョブ名608と、総実行回数609と、平均実行時間610と、実行時間の不偏標準偏差611と、実行時間の上限値612とで構成される。
ジョブ名608は、ジョブを一意に特定する名称である。
総実行回数609は、ジョブ名608で特定されるジョブが実行された回数を示す。
平均実行時間610は、ジョブ名608で特定されるジョブの実行時間の平均値を示す。
実行時間の不偏標準偏差611は、ジョブ名608で特定されるジョブの実行時間の不偏標準偏差を示す。
実行時間の上限値612は、ジョブ管理部201によってジョブ名608で特定されるジョブの実行がほぼ確実に完了する時間として予測された値である。実行時間の上限値612は、ジョブ実行のためにコンピューターシステムを確保する時間や、ジョブ実行が終わらないため異常であると判断する経過時間の閾値として使用することができる。
なお、総実行回数609が0または1のとき、実行時間の不偏標準偏差611を求めることはできないが、図6(B)において、JobA−3の総実行回数609は1である。このため、JobA−3の実行時間の不偏標準偏差611と実行時間の上限値612は計算不能となっている。
図7は、ジョブ統計情報テーブル607のレコードの内容を更新するジョブ統計情報テーブル更新処理の流れの一例を示す。
ジョブ統計情報テーブル607のレコードに対応するジョブの実行が正常終了したとき、ジョブ管理エージェントのジョブ実行部301はジョブ実行終了通知をジョブ管理マネージャー101に送信する。ジョブ管理マネージャー101がジョブ実行終了通知を受信すると、ジョブ管理部201は、ジョブ実行終了通知に含まれる実行結果の情報で実行結果テーブル601を更新する。続いて、ジョブ管理部201は、正常終了したジョブに対応するジョブ統計情報テーブル607のレコードの内容を更新するジョブ統計情報テーブル更新処理を行う。
ジョブ管理部201は、まず、総実行回数609の値を1大きくする(S701)。続いて、ジョブ管理部201は、実行結果テーブル601の内容と、総実行回数609を使用して、ジョブの実行時間の平均値μを計算する(S702)。続いて、ジョブ管理部201は、実行結果テーブル601の内容と、総実行回数609と、ステップS702で計算したジョブの実行時間の平均値μを使用して、ジョブの実行時間の不偏標準偏差σを計算する(S703)。続いて、ジョブ管理部201は、ジョブ定義テーブル401内の対応するジョブのレコードの異常判定上側確率407と、ステップS702で計算したジョブの実行時間の平均値μと、ステップS703で計算したジョブの実行時間の不偏標準偏差σを使用して、t分布の相対度数が異常判定上側確率407によって定まる値(すなわち、1−上側確率)である実行時間を計算し、計算された実行時間をジョブの実行時間の上限値uとする(S704)。そして、ジョブ管理部201は、計算した実行時間の平均値μ、実行時間の不偏標準偏差σ、および実行時間の上限値uの値でジョブ統計情報テーブル607のレコードの内容を更新する(S705)。ジョブ管理部201は、ジョブ統計情報テーブル607の平均実行時間610にはジョブの実行時間の平均値μを、実行時間の不偏標準偏差611にはジョブの実行時間の不偏標準偏差σを、実行時間の上限値612にはジョブの実行時間の上限値uを、それぞれ代入する。
なお、ステップS702は本発明の平均値算出ステップの例であり、ステップS703は本発明の不偏標準偏差算出ステップの例であり、ステップS704は本発明のt値取得ステップと実行時間上限値算出ステップの例である。
以下、ステップS702の平均実行時間算出処理、ステップS703の不偏標準偏差算出処理、およびステップS704の実行時間上限値算出処理について詳細に説明する。
図8は、ジョブの実行時間の平均値μを計算する平均実行時間算出処理(S702)の流れの一例を示す。
ジョブ管理部201は、まず、ジョブの実行時間の合計を格納する変数(レジスタ等の記憶領域)を0で初期化する(S801)。次に、ジョブ管理部201は、実行結果テーブル601のすべてのレコードのうち、ジョブ名603が計算の対象としているジョブの名称で(S802:Yes)、かつ、状態604が正常終了のレコードだけ(S803:Yes)を対象に、終了時刻606から開始時刻605を引いた値をジョブの実行時間とし、ジョブの実行時間の合計に加算する(S804)。ジョブ管理部201は、ジョブの実行時間の合計の値を、ジョブ統計情報テーブル607における計算対象のジョブのレコードの総実行回数609の値で割った値をジョブの実行時間の平均値μとする(S805)。
図9は、ジョブの実行時間の不偏標準偏差σを計算する不偏標準偏差算出処理(S703)の流れの一例を示す。
ジョブの実行時間の不偏標準偏差σを計算できるのは、ジョブ統計情報テーブル607の計算対象のレコードの総実行回数609の値が2以上の場合のみである。このため、ジョブ管理部201は、それ以外の場合(S901:No)、ジョブの実行時間の不偏標準偏差σの値は計算不能として、処理を終了する(S902)。ジョブ統計情報テーブル607の計算対象のレコードの総実行回数609の値が2以上の場合(S901:Yes)、ジョブ管理部201は、まず、ジョブの実行時間の偏差平方和を格納する変数(レジスタ等の記憶領域)を0で初期化する(S903)。
次に、ジョブ管理部201は、実行結果テーブル601のすべてのレコードのうち、ジョブ名603が計算の対象としているジョブの名称で(S904:Yes)、かつ、状態604が正常終了のレコード(S905:Yes)だけを対象に、終了時刻606から開始時刻605を引いた値をジョブの実行時間とし、ジョブの実行時間からジョブの実行時間の平均値μを引いた値をジョブの実行時間の偏差とし、ジョブの実行時間の偏差の2乗をジョブの実行時間の偏差平方和を格納する変数(レジスタ等の記憶領域)に加算する(S906)。
そして、ジョブ管理部201は、ジョブの実行時間の偏差平方和の値を(ジョブ統計情報テーブル607の計算対象のレコードの総実行回数609の値−1)で割った値をジョブの実行時間の不偏分散とする(S907)。次に、ジョブ管理部201は、ジョブの実行時間の不偏分散の正の平方根の値をジョブの実行時間の不偏標準偏差の値σとする(S908)。
図10は、ジョブの実行時間の上限値uを計算する実行時間上限値算出処理(S704)の流れの一例を示す。
ジョブの実行時間の上限値uを計算できるのは、ジョブの実行時間の不偏標準偏差σの値が計算不能以外(S1001:Yes)で、かつ、ジョブ定義テーブル401のジョブ名402が計算の対象としているジョブの名称のレコードの異常判定上側確率407の値が0以外(S1002:Yes)である場合のみである。このため、それ以外の場合(S1001:No、S1002:No)、ジョブ管理部201は、ジョブの実行時間の上限値uは計算不能として、処理を終了する(S1003)。
ジョブの実行時間の上限値uを計算できる条件が満たされている場合(S1001:Yes、S1002:Yes)、ジョブ管理部201は、まず、計算の対象としているジョブの名称と同一のジョブ名402を有するジョブ定義テーブル401のレコードの異常判定上側確率407の値を上側確率502、(ジョブ統計情報テーブル607の対応するレコードの総実行回数609の値−1)を自由度503として、関数値テーブル501からt値tを取得する(S1004)。ただし、ジョブ管理部201は、(ジョブ統計情報テーブル607の対応するレコードの総実行回数609の値−1)がd_maxより大きい場合は、自由度503をd_maxとしてt値tを取得する。
続いて、ジョブ管理部201は、ジョブの実行時間の上限値uを、ジョブの実行時間の平均値μ、ジョブの実行時間の不偏標準偏差σ、ステップS1004で取得したt値tより、u=μ+σtとして計算する(S1005)。
なお、ステップS1004は本発明のt値取得ステップの例であり、ステップS1005は本発明の実行時間上限値算出ステップの例である。
次に、ジョブの実行時間の上限値以上の時間が経過しても実行が終わらない場合に、そのジョブの実行を異常が発生しているとみなして停止する処理について説明する。
図11は、ジョブ実行を開始するたびに障害判定オブジェクトを障害判定オブジェクト用キューに格納する障害判定オブジェクト格納処理の流れの一例を示す。
まず、ジョブ管理部201は、障害判定オブジェクトを格納する優先度つきキューを生成する(S1101)。このキューを障害判定オブジェクト用キューと呼ぶ。
続いて、ジョブ管理部201は、ジョブ実行を開始するたびに、以降で説明する処理を行う。まず、ジョブ管理部201は、ジョブ統計情報テーブル607から、ジョブ名608が実行を開始したジョブの名称であるレコードの実行時間の上限値612の値を取得し、取得した値をジョブの実行時間の上限値tとする。そして、ジョブ管理部201は、ジョブの実行時間の上限値tが計算不能以外の場合(S1102:Yes)のみ、以降の処理を行う。ジョブ管理部201は、実行結果テーブル601から、実行ID602およびジョブ名603が実行を開始したジョブの実行IDおよび名称と一致するレコードの開始時刻605の値を取得し、取得した値にジョブの実行時間の上限値tを加えた時刻を障害判定時刻とする(S1103)。続いて、ジョブ管理部201は、実行を開始したジョブの実行IDと名称(ジョブ名)とステップS1103で計算した障害判定時刻を属性とする障害判定オブジェクトを、障害判定オブジェクト用キューに格納する(S1104)。
図12は、図11の障害判定オブジェクト格納処理により障害判定オブジェクトが障害判定オブジェクト用キューに格納されたときに障害判定スレッドを起動する障害判定オブジェクト格納時障害判定スレッド起動処理の流れの一例を示す。
障害判定オブジェクト用キューは優先度つきキューである。ジョブ管理部201は、まず、受け取った障害判定オブジェクトを、障害判定時刻が早いものが前になるように配置する(S1201)。ステップS1201の処理の結果、先頭の障害判定オブジェクトが入れ替わった場合(S1202:Yes)のみ、その時点で起動している障害判定スレッドがあれば、ジョブ管理部201は、そのスレッドを停止して(S1203)、先頭の障害判定オブジェクトを新たな障害判定スレッドに渡して、新たな障害判定スレッドを起動する(S1204)。
図13は、障害判定スレッドの処理の流れの一例を示す。
障害判定スレッドは、まず、起動時に渡された障害判定オブジェクトの障害判定時刻までスリープする(S1301)。障害判定スレッドは、スリープが終了したら、ジョブ定義テーブル401のジョブ名402が障害判定オブジェクトのジョブ名と一致するレコードの実行先エージェント名405が示すジョブ実行エージェントに、障害判定オブジェクトの実行IDとジョブ名を含む障害判定通知を送る(S1302)。続いて、障害判定スレッドは、障害判定オブジェクト用キューから、この障害判定スレッドが保持している障害判定オブジェクトを取り除く(S1303)。
図14は、図13のステップS1303で障害判定オブジェクトが取り除かれたときに実行される障害判定時障害判定スレッド起動処理の流れの一例を示す。
ジョブ管理部201は、取り除かれた障害判定オブジェクトが先頭に格納されていたものであり、先頭の障害判定オブジェクトが入れ替わった場合(S1401:Yes)のみ、先頭の障害判定オブジェクトを新たな障害判定スレッドに渡して、新たな障害判定スレッドを起動する(S1402)。
図15は、ジョブ管理部201がジョブ実行部301からジョブ実行終了通知を受信したときに後続のジョブを実行するジョブ実行終了時処理の流れの一例を示す。
ジョブ管理部201は、まず、実行IDとジョブ名が受信したジョブ実行終了通知に含まれるものと一致する障害判定オブジェクトを、障害判定オブジェクト用キューから取り除く(S1501)。続いて、ジョブ管理部201は、実行結果テーブル601の、実行ID602とジョブ名603が受信したジョブ実行終了通知に含まれる実行IDとジョブ名と一致するレコードの、状態604と終了時刻606を、ジョブ実行終了通知に含まれる内容で更新する(S1502)。続いて、ジョブ管理部201は、後続のジョブネット/ジョブがあれば、ジョブ実行エージェント102A〜Cに実行を要求する(S1503)。なお、後続のジョブネット/ジョブとは、ジョブ定義テーブル401の先行ジョブネット名/先行ジョブ名404が実行終了通知から実行終了したと判断されるジョブネット/ジョブを指しているレコードのジョブネット名/ジョブ名402が示すジョブネット/ジョブをいう。
図16は、図15のステップS1501において、ジョブ実行終了時に障害判定オブジェクト用キューから障害判定オブジェクトが取り除かれたときに障害判定スレッドを起動するジョブ実行終了時障害判定スレッド起動処理の流れの一例を示す。
取り除かれた障害判定オブジェクトが先頭に格納されていたものであり、先頭の障害判定オブジェクトが入れ替わった場合(S1601)のみ、その時点で起動している障害判定スレッドがあれば、そのスレッドを停止して(S1602)、先頭の障害判定オブジェクトを新たな障害判定スレッドに渡して、新たな障害判定スレッドを起動する(S1603)。
図17は、ジョブ実行部301が障害判定通知を受信したときにジョブの実行を停止するジョブ実行エージェントのジョブ実行停止処理の流れの一例を示す。
ジョブ実行部301は、まず、障害判定通知に含まれる実行IDとジョブ名のジョブの実行を停止する(S1701)。続いて、ジョブ実行部301は、ジョブ管理マネージャー101に、障害判定にしたがって停止したジョブの実行IDとジョブ名を含む障害判定停止通知を送る(S1702)。
図18は、ジョブ管理部201が障害判定停止通知を受信したときに行うジョブ管理マネージャー101のジョブ実行停止処理の流れの一例を示す。
ジョブ管理部201は、実行結果テーブル601の、実行ID602およびジョブ名603が受信した障害判定停止通知に含まれる実行IDおよびジョブ名と一致するレコードの、状態604を「障害判定停止」にする(S1801)。
続いて、ジョブ管理部201は、ジョブ定義テーブル401のジョブ名402が受信した障害判定停止通知に含まれるジョブ名と一致するレコードの上位ジョブネット名403を上位ジョブネット名とし、実行結果テーブル601の、実行ID602が受信した障害判定停止通知に含まれる実行IDと一致し、ジョブネット名603が上位ジョブネット名と一致するレコードの状態604を「障害判定停止」にする(S1802)。その際、状態変更の対象としたジョブネットのさらに上位のジョブネットも、再帰的に状態を「障害判定停止」にする。なお、ステップS1802は、実行時間の上限値を超える時間を経過してもジョブ実行が終了しなかったため、障害が発生していると判定した場合の対処方法の一例である。この例の他に、例えば、障害が発生していると判定した場合の後続ジョブを定義できるようにすることが考えられる。
また、上述した実施形態では、ジョブの実行時間の実績の平均と不偏標準偏差の計算に使用する標本集団を、同一のジョブの実行の実績すべてにしているが、実行時間が実行した時期で変化するジョブ、例えば、扱う業務量が経過日数とともに増加するため、実行時間が実行時期に応じて徐々に増加するジョブなどで適切な値を求めるために、任意に指定された期間の条件(例えば、実行終了から一カ月経過していないもの)を付加して標本集団を定めることとしてもよい。
また、上述した実施形態では、ステップS1005でジョブの実行時間の上限値を求め、開始してからジョブの実行時間の上限値以上の時間が経過しても完了しないジョブの実行を、異常が発生しているとみなして停止しているが、ジョブを停止せずに警告を通知することとしてもよい。
以上説明したように、本発明によれば、ジョブ実行がほぼ確実に完了すると予測される時間を求めることができる。そして、この時間に基づいて、ジョブ実行のためにコンピューターシステムを確保する時間や、ジョブ実行が終わらないため異常であると判断する経過時間の閾値を決定することができる。
100…ジョブ実行システム、101…ジョブ管理マネージャー、102A、102B、103C…ジョブ実行エージェント、103…端末、104…ネットワーク、201…ジョブ管理部、202…入出力部、210…ジョブ管理マネージャーの記憶装置、211…ジョブ定義DB、212…実行結果情報DB、213…関数値テーブル、214…ジョブ管理プログラム、301…ジョブ実行部

Claims (4)

  1. t分布の累積分布関数の逆関数の値であるt値が格納された関数値テーブルを備えるジョブ管理装置におけるジョブ実行時間予測方法であって、
    実行の実績のあるジョブの実行時間の平均値を求める平均値算出ステップと、
    前記実行の実績のあるジョブの実行時間の不偏標準偏差を求める不偏標準偏差算出ステップと、
    所定の数の選択肢の中から選択された上側確率と前記実行の実績のあるジョブの総実行回数から求められる自由度とを前記関数値テーブルに入力し、前記関数値テーブルからt値を取得するt値取得ステップと、
    前記実行の実績のあるジョブの実行時間の平均値および不偏標準偏差と、前記関数値テーブルから取得したt値とに基づいて、t分布の相対度数が選択された前記上側確率によって定まる値である実行時間を計算し、計算された当該実行時間を当該ジョブの実行時間の上限値とする実行時間上限値算出ステップと、
    を備えることを特徴とするジョブ実行時間予測方法。
  2. 前記関数値テーブルは、前記自由度を所定の上限値まで入力可能であり、
    前記t値取得ステップにおいて、入力された前記自由度が前記所定の上限値を超えている場合には、選択された前記上側確率と前記所定の上限値の自由度とに対応するt値を前記関数値テーブルから取得する、
    ことを特徴とする請求項1に記載のジョブ実行時間予測方法。
  3. t分布の累積分布関数の逆関数の値であるt値が格納された関数値テーブルと、
    実行の実績のあるジョブの実行時間の平均値を求める平均値算出手段と、
    前記実行の実績のあるジョブの実行時間の不偏標準偏差を求める不偏標準偏差算出手段と、
    所定の数の選択肢の中から選択された上側確率と前記実行の実績のあるジョブの総実行回数から求められる自由度とを前記関数値テーブルに入力し、前記関数値テーブルからt値を取得するt値取得手段と、
    前記実行の実績のあるジョブの実行時間の平均値および不偏標準偏差と、前記関数値テーブルから取得したt値とに基づいて、t分布の相対度数が選択された前記上側確率によって定まる値である実行時間を計算し、計算された当該実行時間を当該ジョブの実行時間の上限値とする実行時間上限値算出手段と、
    を備えることを特徴とするジョブ管理装置。
  4. 前記ジョブの実行が開始してから、前記実行時間上限値算出手段によって求められた実行時間の上限値以上の時間が経過しても、前記ジョブの実行が完了しない場合に、異常が発生しているとみなして前記ジョブの実行を停止させるジョブ停止手段を備えることを特徴とする請求項3に記載のジョブ管理装置。
JP2014043894A 2014-03-06 2014-03-06 ジョブ実行時間予測方法およびジョブ管理装置 Pending JP2015170085A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014043894A JP2015170085A (ja) 2014-03-06 2014-03-06 ジョブ実行時間予測方法およびジョブ管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014043894A JP2015170085A (ja) 2014-03-06 2014-03-06 ジョブ実行時間予測方法およびジョブ管理装置

Publications (1)

Publication Number Publication Date
JP2015170085A true JP2015170085A (ja) 2015-09-28

Family

ID=54202787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014043894A Pending JP2015170085A (ja) 2014-03-06 2014-03-06 ジョブ実行時間予測方法およびジョブ管理装置

Country Status (1)

Country Link
JP (1) JP2015170085A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107991558A (zh) * 2017-11-23 2018-05-04 国网福建省电力有限公司 基于t分布检验法的数字校准方法
CN108647137A (zh) * 2018-05-10 2018-10-12 华东师范大学 一种作业性能预测方法、装置、介质、设备及系统
CN111796576A (zh) * 2020-06-16 2020-10-20 北京工业大学 一种基于双核t分布随机近邻嵌入的过程监测可视化方法
WO2021068617A1 (zh) * 2019-10-12 2021-04-15 平安国际智慧城市科技股份有限公司 任务处理时间自动预测方法、装置、电子设备及介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107991558A (zh) * 2017-11-23 2018-05-04 国网福建省电力有限公司 基于t分布检验法的数字校准方法
CN108647137A (zh) * 2018-05-10 2018-10-12 华东师范大学 一种作业性能预测方法、装置、介质、设备及系统
CN108647137B (zh) * 2018-05-10 2020-12-22 华东师范大学 一种作业性能预测方法、装置、介质、设备及系统
WO2021068617A1 (zh) * 2019-10-12 2021-04-15 平安国际智慧城市科技股份有限公司 任务处理时间自动预测方法、装置、电子设备及介质
CN111796576A (zh) * 2020-06-16 2020-10-20 北京工业大学 一种基于双核t分布随机近邻嵌入的过程监测可视化方法
WO2021253550A1 (zh) * 2020-06-16 2021-12-23 北京工业大学 一种基于双核t分布随机近邻嵌入的过程监测可视化方法
CN111796576B (zh) * 2020-06-16 2023-03-31 北京工业大学 一种基于双核t分布随机近邻嵌入的过程监测可视化方法

Similar Documents

Publication Publication Date Title
US9189543B2 (en) Predicting service request breaches
CN111104222A (zh) 任务处理方法、装置、计算机设备和存储介质
US9588813B1 (en) Determining cost of service call
JP2015133112A (ja) ジョブスケジューリング方法、データアナライザ、データ解析装置、コンピュータシステム及びコンピュータ可読媒体
US9189738B2 (en) Automatic event analysis
CN110659137B (zh) 针对离线任务的处理资源分配方法及系统
JP2015170085A (ja) ジョブ実行時間予測方法およびジョブ管理装置
CN109189572B (zh) 一种资源预估方法及系统、电子设备和存储介质
CN110832461A (zh) 用于提供函数即服务(faas)的系统及该系统的操作方法
US11068317B2 (en) Information processing system and resource allocation method
JP2014228983A (ja) 作業管理装置、作業管理方法及びコンピュータプログラム
CN110580293A (zh) 实体关系的存储方法及装置
CN113886069A (zh) 一种资源分配方法、装置、电子设备及存储介质
WO2014054232A1 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
US11327788B2 (en) Methods for scheduling multiple batches of concurrent jobs
CN109102200B (zh) 一种定时任务处理方法及装置
CN110659125A (zh) 一种分析任务执行方法、装置、系统及电子设备
JPWO2014054231A1 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
US20220343192A1 (en) Management apparatus and management method
JP5709915B2 (ja) 機械学習装置、機械学習方法、およびプログラム
JP6753521B2 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
US20200279199A1 (en) Generating a completion prediction of a task
US11334823B2 (en) Methods and systems for integrating business intelligence data into continuous integration environments
JP6194683B2 (ja) アセット情報管理装置、制御方法、及びプログラム
JP6657677B2 (ja) 情報処理装置並びにミドルウェアの設定方法及び設定プログラム