JP5471400B2 - ジョブ分析プログラム及び方法、並びにジョブ分析装置 - Google Patents

ジョブ分析プログラム及び方法、並びにジョブ分析装置 Download PDF

Info

Publication number
JP5471400B2
JP5471400B2 JP2009285926A JP2009285926A JP5471400B2 JP 5471400 B2 JP5471400 B2 JP 5471400B2 JP 2009285926 A JP2009285926 A JP 2009285926A JP 2009285926 A JP2009285926 A JP 2009285926A JP 5471400 B2 JP5471400 B2 JP 5471400B2
Authority
JP
Japan
Prior art keywords
job
time
section
data
end 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.)
Active
Application number
JP2009285926A
Other languages
English (en)
Other versions
JP2011128828A (ja
Inventor
慎司 菊池
安英 松本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009285926A priority Critical patent/JP5471400B2/ja
Priority to US12/969,811 priority patent/US8505023B2/en
Publication of JP2011128828A publication Critical patent/JP2011128828A/ja
Application granted granted Critical
Publication of JP5471400B2 publication Critical patent/JP5471400B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、複数のジョブの関係を分析する技術に関する。
大規模システムにおいては多数のバッチジョブが実行される。バッチジョブは、ある程度まとまってデータを処理することである。例えば1日の売上計算処理のように、所定期間毎にまとめて行うジョブを含む。バッチジョブは、典型的には、プログラムやスクリプトに従って処理される。バッチジョブ同士には様々な形態での順序関係があり、相互に連動することが多い。例えば、発注確定処理が終了してから、売上計算処理を開始するといった場合がある。また、バッチジョブAがファイルCを出力すると、待機していたバッチジョブBが当該ファイルCの処理を開始するといった場合もある。
しかしながら、バッチジョブの順序関係は、簡単に確認できない場合がある。例えば、バッチジョブAのためのプログラムの実行により出力されるメッセージに応じてバッチジョブBを開始している場合には、プログラムを解析しなければその順序関係を特定できない。また、近年企業合併が多く行われているが、その際複数のシステムの統合も行われる。そのような場合に、開発者や運用管理者がばらばらであると、知りたいバッチ順序関係定義情報にアクセスできない場合も出てくる。
プロセスマイニングという技術が知られている。プロセスマイニングは、業務プロセスにおけるタスクの実行順序の結果(例えばログ)の集合から、タスクの接続関係を推定する技術である。具体的には、αアルゴリズムやその改良アルゴリズム、遺伝的アルゴリズム等を用いるものである。しかしながら、多くのプロセスマイニング技術は、人間が実行する業務プロセスを前提としているため、1つのプロセスはたかだか数個乃至十数個のタスクしか含まれないということを前提としている。従って、1プロセスあたりのタスク数が増加すると、計算量が大幅に増えてしまう。例えば、精度の良いアルゴリズム(例えばα++アルゴリズム等)になると、指数的に計算量が増加することが知られている。すなわち、リーズナブルな時間内に結果を得ることは難しい。
特開平10−214195号公報 特開平7−175668号公報 特開2009−93620号公報
従って、1つの側面では、本発明の目的は、ジョブの実行順序の把握を容易に行うことができるようにすることである。
本ジョブ分析方法は、(A)ログデータに含まれる複数のジョブを、ジョブの終了時刻が複数の時間区間のうちいずれの時間区間に属するかに応じて分類する。(B)そして、第1の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第1のデータを生成し、また、第1の時間区間に後続する第2の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第2のデータを生成する。(C)そして、第1の時間区間に含まれるジョブの終了時刻と、第2の時間区間に含まれるジョブとの終了時刻とに基づいて、第1の時間区間に含まれるジョブと第2の時間区間に含まれるジョブとの間の実行順序関係を解析して、第1の時間区間から第2の時間区間に渡ったジョブの実行順序関係を示すデータを生成する。
ジョブの実行順序の把握を容易に行うことができる。
図1は、第1の実施の形態のジョブ分析装置の機能ブロック図である。 図2は、第1の実施の形態に係る処理フローを示す図である。 図3は、第2の実施の形態に係るシステム概要図である。 図4は、第2の実施の形態に係るメインの処理フローを示す図である。 図5は、ログデータの一例を示す図である。 図6は、パーティショニング処理の処理フローを示す図である。 図7は、ジョブの実行時間のぶれ幅を表すデータの一例を示す図である。 図8は、パーティションとジョブの関係を表す模式図である。 図9は、パーティションと評価関数の計算例を説明するための模式図である。 図10は、評価関数の評価値の変化例を表す図である。 図11は、分割時刻データの一例を表す図である。 図12は、パーティションとジョブの関係の一例を示す図である。 図13は、分割時刻データの一例を示す図である。 図14は、パーティションとジョブとの関係の一例を表す図である。 図15は、分割時刻データの一例を示す図である。 図16は、パーティションとジョブとの関係の一例を表す図である。 図17は、一部のパーティションとジョブとの関係を表す模式図である。 図18は、第1ジョブ解析処理で用いるログデータの一例を示す図である。 図19は、第1ジョブ解析処理を一部に実施した後の実行順序データの一例を示す図である。 図20は、第1ジョブ解析処理後の実行順序データの一例を示す図である。 図21は、第1ジョブ解析処理後のノードテーブルの一例を示す図である。 図22は、第1ジョブ解析処理後のリンクテーブルの一例を示す図である。 図23は、第2ジョブ解析処理の処理フローを示す図である。 図24は、パーティションとジョブの関係を表す模式図である。 図25は、一部の実行順序データを表す図である。 図26は、実行順序データの一例を示す図である。 図27は、最終的なノードテーブルの一例を示す図である。 図28は、最終的なリンクテーブルの一例を示す図である。 図29は、第3の実施の形態に係るジョブ分析装置の機能ブロック図である。 図30は、第3の実施の形態に係る処理フローを示す図である。 図29は、コンピュータの機能ブロック図である。
[実施の形態1]
第1の実施の形態に係るジョブ分析装置の機能ブロック図を図1に示す。第1の実施の形態に係るジョブ分析装置は、ログデータ格納部1001と、パーティショニング処理部1003と、第1ジョブ解析処理部1005と、第2ジョブ解析処理部1007と、データ格納部1009とを有する。パーティショニング処理部1003は、ログデータ格納部1001に格納されているログデータを用いて処理を行う。第1ジョブ解析処理部1005は、パーティショニング処理部1003の処理結果及びログデータ格納部1001に格納されているログデータを用いて処理を行い、処理結果をデータ格納部1009に格納する。第2ジョブ解析処理部1007は、データ格納部1009に格納されているデータとパーティショニング処理部1003の処理結果とを用いて処理を行い、処理結果をデータ格納部1009に格納する。
次に、図1に示したジョブ分析装置の処理内容を図2を用いて説明する。まず、パーティショニング処理部1003は、ログデータ格納部1001に格納されている、複数のジョブのログデータから、各ジョブの実行時間のぶれ幅を表す第1の時刻及び第2の時刻を特定する(ステップS1001)。また、パーティショニング処理部1003は、分析対象期間の開始時刻から分析対象期間の終了時刻までを複数のパーティションに分割しつつ、各ジョブの第1及び第2の時刻に基づき各パーティションに属するジョブを特定する(ステップS1003)。このようなパーティショニング処理部1003の処理結果は、第1及び第2ジョブ解析処理部1005及び1007に出力される。
次に、第1ジョブ解析処理部1005は、各パーティションにおいて、当該パーティションに属するジョブの実行時間(例えばログデータ格納部1001に格納されるログデータから把握されるデータ)に基づきジョブの実行順序を解析し、パーティション内のジョブの実行順序関係を示す実行順序関係データを生成し、データ格納部1009に格納する(ステップS1005)。このように分析対象期間の開始時刻から終了時刻までの時間を複数のパーティションに分割してパーティション毎にジョブの実行順序関係データを生成すれば、ジョブ解析のための処理時間がジョブ数に対して指数関数的に増加するのを防止することができるようになる。
そして、第2ジョブ解析処理部1007は、隣接するパーティションについての実行順序関係データ及び当該隣接するパーティション内の各ジョブの第1及び第2の時刻に基づき、隣接するパーティションに属するジョブの実行順序関係を解析して、隣接するパーティション間に渡ったジョブの実行順序を示すデータを生成し、データ格納部1009に格納する(ステップS1007)。第2ジョブ解析処理部1007の処理負荷はさほど大きくないので、全体としても処理時間をたかだかジョブ数に比例する程度に抑えることができるようになる。
[実施の形態2]
次に、第2の実施の形態について説明する。なお、本実施の形態では、ジョブの一例としてバッチジョブについて分析する例を説明する。しかしながら、関連付けられた複数の一般ジョブについて複数回ログデータを得ることができれば、本実施の形態を適用可能である。
第2の実施の形態に係るシステムの機能ブロック図を図3に示す。例えば社内LAN(Local Area Network)であるネットワーク1には、運用管理者(運用担当者とも呼ぶ)が操作する1又は複数の運用管理者端末300と、監視対象システム200と、ジョブ分析装置100とが接続されている。運用管理者端末300は、例えばパーソナルコンピュータであり、例えばジョブ分析装置100と連携する専用のアプリケーション・プログラムが実行されている場合もある。また、運用管理者端末300は、ウェブ(Web)ブラウザを実行しており、ジョブ分析装置100から受信したWebページ・データを表示し、必要であればデータを入力してジョブ分析装置100に送信するといった仕組みを採用する場合もある。
バッチジョブ230を実行する監視対象システム200は、バッチジョブ230の実行状況を監視する処理などを実施するログ管理部210と、ログ管理部210によりバッチジョブ230の実行状況を表すデータとして出力されるログデータを格納するログデータ格納部220とを有する。ログ管理部210は、ジョブ分析装置100からの要求に応じてログデータ格納部220に格納されているログデータをジョブ分析装置100に出力するといった処理も実施する。
また、ジョブ分析装置100は、(A)運用管理者端末300とのインタフェースとなる入出力部112と、(B)入出力部112が運用管理者端末300から受信した設定データを格納する設定データ格納部113と、(C)設定データ格納部113に格納されている設定データに従って監視対象システム200からログデータを取得するログ取得部110と、(D)ログ取得部110が取得したログデータを格納するログデータ格納部111とを有する。
また、ジョブ分析装置100は、(E)設定データ格納部113に格納されている設定データに従ってログデータ格納部111に格納されているログデータを用いて処理を行うパーティショニング処理部114と、(F)パーティショニング処理部114の処理結果を格納するパーティショニング結果格納部115とをさらに有する。
さらに、ジョブ分析装置100は、(G)ログデータ格納部111及びパーティショニング結果格納部115に格納されているデータを用いて処理を行う第1ジョブ解析処理部116と、(H)第1ジョブ解析処理部116の処理結果等を格納する実行順序データ格納部118と、(I)パーティショニング結果格納部115及び実行順序データ格納部118に格納されているデータを用いて処理を行う第2ジョブ解析処理部117とをさらに有する。
実行順序データ格納部118には、第2ジョブ解析処理部117の処理結果をも格納され、本実行順序データ格納部118に格納されているデータは、例えば運用管理者端末300からの要求に応じて当該運用管理者端末300に送信される。
次に、図4乃至図28を用いて図3に示したシステムの処理内容について説明する。まず、入出力部112は、運用管理者端末300から、分析対象期間の分析開始時刻及び分析終了時刻を設定データとして受信し、設定データ格納部113に格納する(図4:ステップS1)。例えば、分析開始時刻「0:00」及び分析終了時刻「6:00」といったデータを格納する。その他、監視対象システム200のログデータ格納部220に格納されているログデータのうち取得すべきログデータの記録期間についても、入出力部112が運用管理者端末300から受信して、設定データ格納部113に格納するようにしてもよい。記録期間については、運用管理者端末300から受信しない場合には初期値(例えば1週間分など)を用いる場合もある。さらに、パーティショニング処理部114がパーティショニングを行う際に参照すべき、1区間に属するジョブ数の上限についても、本ステップにおいて設定、格納される場合もある。このジョブ数の上限についても、初期値を用いる場合もある。
また、ログ取得部110が、ログ管理部210から、設定データ格納部113に設定データとして格納されている記録期間内のログデータを取得して、ログデータ格納部111に格納する(ステップS3)。なお、ログデータ格納部111にログデータを累積的に蓄積してゆくような場合もある。そのような場合には、ログ取得部110が、例えば定期的に新規のログデータを監視対象システム200のログ管理部210から取得するので、図4の処理の流れにおいてログデータの取得は行われない。
ログデータ格納部111には、例えば図5に示すようなデータを格納している。図5の例では、実行されたバッチジョブ毎に、ジョブ名(又は識別子)と、終了時刻とが登録されるようになっている。図5の例では、終了時刻のみが登録される例を示しているが、開始時刻をも登録するようにしても良い。ここでは、バッチジョブの1つの性質として例えば毎日ほぼ同じ時刻に実行される例を示している。しかしながら、毎日ではなく12時間毎にジョブを実行したり、何か所定のイベントに応じて一連のジョブが実行されるなどといったケースも考えられる。そのような場合には、例えば最初に実行されるジョブの開始時刻又は終了時刻を基準にして、他の時刻については相対時刻を算出して以下の処理を実施するようにしても良い。なお、相対時刻を用いるような場合には、この分析開始時刻及び分析終了時刻についても相対時刻となる。
次に、パーティショニング処理部114は、パーティショニング処理を実施する(ステップS5)。パーティショニング処理については、図6乃至図16を用いて説明する。まず、パーティショニング処理部114は、ログデータ格納部111から設定データ格納部113に格納されている分析開始時刻から分析終了時刻についてのログデータを抽出し、抽出したログデータから、各ジョブについて、判断対象時刻データを生成し、パーティショニング結果格納部115に格納する(図6:ステップS11)。
本実施の形態では、判断対象時刻として、ジョブの終了時刻のうち最も早い時刻と最も遅い時刻とを、ログデータから抽出する。図5に示した例の場合、ジョブ名「J1.sh」であれば、ジョブの終了時刻のうち最も早い時刻は「00:05:00」であり、最も遅い時刻は「00:10:00」となる。同様に、ジョブ名「J2.sh」であれば、ジョブの終了時刻のうち最も早い時刻は「00:08:00」であり、最も遅い時刻は「00:25:00」となる。ジョブ名「J3.sh」であれば、ジョブの終了時刻のうち最も早い時刻は「00:15:00」であり、最も遅い時刻は「00:30:00」となる。このように、ジョブの終了時刻のうち最も早い時刻及び最も遅い時刻によりジョブの実行時間のぶれ幅が特定される。なお、開始時刻及び終了時刻がログデータに含まれる場合には、開始時刻のうち最も早い時刻と、終了時刻のうち最も遅い時刻とを特定することにより、実行時間のぶれ幅を特定する。このような処理を実施することによって、例えば図7に示すようなデータが、パーティショニング結果格納部115に格納される。図7の例では、ジョブ毎に、ジョブ名と、最早終了時刻と、最遅終了時刻とが登録されるようになっている。なお、以下の説明では、最早終了時刻を「min」と記し、最遅終了時刻を「max」と記す場合がある。
次に、パーティショニング処理部114は、設定データ格納部113に格納されている分析開始時刻から分析終了時刻までの時間帯のうち、分割要件を満たす区間を1つ特定する(ステップS13)。分割要件は、設定データ格納部113に格納されており且つ上でも述べた「1区間に属するジョブ数の上限」以上のジョブが1区間に属しているという要件である。このジョブ数の上限は、第1ジョブ解析処理部116の処理能力に依存する。すなわち、第1ジョブ解析処理部116の処理が遅い場合には、ジョブ数の上限を下げる。一方、処理が速い場合には、ジョブ数の上限を上げても良い。さらに、初めてステップS13を実施する場合、区間は分析開始時刻から分析終了時刻までの時間帯の全てとなり、以下述べる処理を繰り返し実施することによって、区間の分割が再帰的に実施されて、複数の区間が生成される。また、区間に属するジョブというのは、区間の開始時刻から終了時刻までに、最早終了時刻min及び最遅終了時刻maxの両方が含まれるジョブを意味する。
ここで、模式的にジョブと区間との関係を図8に示しておく。図8においては、分析開始時刻Sから分析終了時刻Eまでを4つの区間に分割した例を示している。なお、Jは、分析開始時刻Sから分析終了時刻Eまでに実行されるジョブの集合であり、図8の例では、J1乃至J10の10個のジョブが存在している。なお、ジョブ名はJ1.shであるが、簡略化してJ1と記すこともある。また、Pは、パーティションの集合を表す。本実施の形態では、パーティショニング処理が完了した時点で生成されている「区間」をパーティションと呼ぶことにする。図8に示すように、最終的に4つのパーティションに分割された場合には、パーティションp11乃至p22が集合Pに含まれる。さらに、bmをパーティションpmとpm+1との分割時刻として、集合Bは、全ての分割時刻bmを含む。なお、以下のような関係が成立する。
∀bi:(bi<bi+1)∧(S<bi<E)
また、上でも述べたように、区間pmに、min及びmaxが両方とも含まれるようなジョブの集合をC(pm)と記し、Jk∈C(pm)の時、ジョブJkは区間pmに「属する」と呼ぶものとする。
図8から分かるように、パーティションp11には、ジョブJ1及びJ2が属し、パーティションp12には、ジョブJ4及びJ5が属する。しかしながら、ジョブJ3については、いずれのパーティションにも属さない。同様に、パーティションp21には、ジョブJ6及びJ7が属し、パーティションp22には、ジョブJ9及びJ10が属する。しかしながら、ジョブJ8も、いずれのパーティションにも属さない。これらジョブJ3及びJ8を、本実施の形態では無所属ジョブと呼ぶものとする。
無所属ジョブJxは、以下のように表される。
Figure 0005471400
図6の処理の説明に戻って、パーティショニング処理部114は、ステップS13で特定された区間を複数の箇所で仮分割して、それぞれについて評価関数の評価値を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS15)。例えば、区間を所定間隔で仮に2分割して、サブ区間毎に、所属するジョブを特定する。
本実施の形態では、無所属ジョブの数が可能な限り少なく且つ分割後の2つの区間に属するジョブの個数の差ができる限り小さくなるように区間を分割するものとする。このような分割を行うことによって、以下で述べる第1ジョブ解析処理において精度良く(より具体的には矛盾なく)、また短い処理時間でジョブの解析が可能となる。
本実施の形態では具体的には以下のような評価関数Vを用いて評価値を算出する。
Figure 0005471400
(1)式では、区間pを区間p’と区間p"に分割することを想定しており、|C(p)|は、区間pに属するジョブの数を表す。
この評価関数VのAの部分は、分割後の2つの区間に属するジョブがより多いほど大きな値となる。また、Bの部分は、分割後の2つの区間に属するジョブの個数の差分が小さいほど大きい値となる。そして、(1)式に示すように、AとBの積が評価関数Vとなっている。積となっているのは、Aの部分だけが大きな値となってもだめで、Bの部分だけが大きな値となってもだめで、両方がバランスするようにして全体として大きな評価値が得られるように、区間分割を行うようにすることを表している。
なお、(1)式は一例であって、上で述べたような目的を果たす他の評価関数を採用するようにしても良い。
図9を用いて評価関数Vの具体的な計算例について説明する。ここでは、区間pを、区間p'及びp"に分割する場合に、時刻b1で分割する場合と時刻b2で分割する場合とについて評価関数の評価値を算出する。なお、C(p)={J1,J2,J3,J4,J5}であり、|C(p)|=5である。時刻b1で分割する場合には、C(p')={J1,J2}であり、C(p")={J4,J5}であるから、|C(p')|=2及び|C(p")|=2である。従って、(1)式のAの部分が(2+2)/5=0.8となり、Bの部分が(1−(2−2)/5)=1となるので、全体としてV=0.8を得ることになる。このケースでは、無所属ジョブが1つだけ(J3のみ)である。
一方、時刻b2で分割する場合には、C(p')={J1,J2}であり、C(p")={J5}であるから、|C(p')|=2及び|C(p")|=1である。従って、(1)式のAの部分が(2+1)/5=0.6となり、Bの部分が(1−(2−1)/5)=0.8となるので、全体としてV=0.48を得ることになる。このケースでは、無所属ジョブが2つ(J3及びJ4)になってしまう。
従って、図9で示した2つのケースの中では時刻b1で分割する方が好ましいということが分かる。
例えば、図10に示すように、区間pの開始時刻s1から終了時刻e1まで分割時刻bを変化させて、評価関数Vの評価値が最も大きくなる分割時刻boptを特定する。
なお、仮分割で生成された各区間に属するジョブについては、評価関数Vの評価値を算出する毎に、保持しておくことが好ましい。
また、分割時刻boptを効率的に探索するには、様々な既存の最適化アルゴリズムを適用可能である。しかし、上でも述べたように所定間隔毎に評価関数Vの評価値を網羅的に計算して最も大きな評価値を得られる分割時刻boptを見つけ出すようにしても良い。このようにしても、処理量が膨大になることはない。
図6の処理の説明に戻って、パーティショニング処理部114は、仮分割の結果として算出される評価関数Vの評価値が最大となる分割時刻を特定し、分割時刻のデータを、パーティショニング結果格納部115に格納する(ステップS17)。また、パーティショニング処理部114は、特定された分割時刻により生成された、分割後の区間毎に、当該区間に属するジョブを特定し、各区間に属するジョブのデータを、パーティショニング結果格納部115に格納する(ステップS18)。図9に示したケースでは、分割時刻b1と分割後の区間p'に属するジョブJ1及びJ2と、区間p"に属するジョブJ4及びJ5とが、パーティショニング結果格納部115に格納される。
図8に示すような区間についてパーティショニング処理を実施する場合、1回目の区間分割を実施すると、図11及び図12に示すようなデータが、パーティショニング結果格納部115に格納される。図11は分割時刻を登録するテーブルを示しており、分割ID「b1」に対応付けて分割時刻「03:00」が登録される。また、図12は区間に属するジョブを登録するテーブルを示しており、区間IDに対応付けて所属ジョブ名が登録される。すなわち、区間p1に対応付けてジョブJ1乃至J5が登録されている。また、区間p2に対応付けてジョブJ6乃至J10が登録されている。
2回目の区間分割を実施すると、図13及び図14に示すようなデータが、パーティショニング結果格納部115に格納される。2回目の区間分割では、区間p1が区間p11及びp12に分割される。図13は図11の後の状態を表しており、分割ID「b2」に対応付けて分割時刻「01:20」が追加登録されている。また、図14は図12の後の状態を表しており、区間p11にはジョブJ1及びJ2が属しており(C(p11)={J1,J2})、区間p12にはジョブJ4及びJ5が属しており(C(p12)={J4,J5})、区間p1には属していたが区間p11及びp12のいずれにも属していない無所属ジョブJ3が存在していることを示している。無所属ジョブJ3についても、どの区間に属しているかについてデータを保持しておくことが好ましい。図8の例では、区間p11+p12に属しているので、C(p11+p12)={J1,J2,J3,J4,J5}というデータを保持しておくことが好ましい。
3回目の区間分割を実施すると、図15及び図16に示すようなデータが、パーティショニング結果格納部115に格納される。図15は図13の後の状態を表しており、分割ID「b3」に対応付けて分割時刻「04:45」が追加登録されている。また、図16は図14の後の状態を表しており、区間p21にはジョブJ6及びJ7が属しており(C(p21)={J6,J7})、区間p22にはジョブJ9及びJ10が属しており(C(p22)={J9,J10})、区間p2には属していたが区間p21及びp22のいずれにも属していない無所属ジョブJ8が存在していることを示している。無所属ジョブJ8についても、どの区間に属しているかについてデータを保持しておくことが好ましい。図8の例では、区間p21+p22に属しているので、C(p21+p22)={J6,J7,J8,J9,J10}というデータを保持しておくことが好ましい。
図6の処理の説明に戻って、パーティショニング処理部114は、全ての区間が分割要件を満たさなくなったか判断する(ステップS19)。全ての区間について属するジョブの数を計数して、分割要件であるジョブ数の上限未満となったか判断する。1つの区間でも計数結果が上限以上となった場合には、ステップS13に戻り、属するジョブの数が上限以上となった区間について再度分割を実施する。上限をtとすると、式で書くと以下の条件が満たされているかを確認する。
∀pi:|C(pi)|<t
属するジョブの数が上限以上となった区間についてのみ再度分割を実施するので、区間p1を分割することによって得られた区間p11とp12のうち区間p11のみが上限以上のジョブが属する場合には、区間p11を区間p111とp112とに分割する。
一方、全ての区間が分割要件を満たさなくなった場合には、元の処理に戻る。最終的に得られた区間をパーティションと呼ぶ。さらに、以下で述べるように、連結した後の区間についてもパーティションと呼ぶことにする。
以上のような処理を実施することによって、各パーティションには、ジョブ数の上限以下のジョブが属し、ほぼ均一のジョブ数が属するようになる。これによって、以下で述べる第1ジョブ解析処理の処理量が多くなりすぎることなく且つ精度良く第1ジョブ解析処理を実施することができるようになる。
図4の処理の説明に戻って、次に、第1ジョブ解析処理部116は、パーティショニング結果格納部115及びログデータ格納部111に格納されているデータを用いて、各パーティションについて、当該パーティションに属するジョブの実行順序を特定する第1ジョブ解析処理を実施し、生成されたデータを、実行順序データ格納部118に格納する(ステップS7)。図17に、図8で示したパーティションp11だけを抜き出したものを示す。このようにパーティションp11には、ジョブJ1及びJ2のみが属する(すなわちC(p11)={J1,J2})ことがパーティショニング結果格納部115に格納されているデータから特定される。このような場合には、図18に示すように、ログデータ格納部111からジョブJ1及びJ2についてのログデータを抽出し、ジョブJ1及びJ2の終了時刻の前後関係に基づき、ジョブJ1が先に実行されているのかジョブJ2が先に実行されているのかを判断する。図18の例では、異なる日においても、ジョブJ1が先に終了していることが分かる。このような解析により、パーティションp11内のジョブの実行順序は、図19に示したように、ジョブJ1の後にジョブJ2が実行されることが特定される。なお、図19では、ジョブをノードとみなして、先に実行されるジョブから後に実行されるジョブへ矢印が引かれており、これによって実行順序を示している。図17のケースは非常に簡単なケースではあるが、ジョブ数が3以上でも基本的には同じような処理を実施する。一般的には、プロセスマイニングにおいて採用されているαアルゴリズム及びαアルゴリズムの改良版並びに遺伝子的アルゴリズム、さらにヒューリスティックサーチ(heuristics search)などを適用して、パーティション内の実行順序データを生成する。
なお、図8で示したパーティションp12、p21及びp22についても、模式的に示せば図20に示すような実行順序データが得られる。すなわち、ジョブJ4の後にジョブJ5が実行され、ジョブJ6の後にジョブJ7が実行され、ジョブJ9の後にジョブJ10が実行される。
このような実行順序データは、例えば図21及び図22に示すような形で、実行順序データ格納部118に格納される。すなわち、図21はノードテーブルであり、ノード名に対応付けてジョブ名が登録されるようになっている。また、図22はリンクテーブルであり、第1ジョブ解析処理部116により生成されたリンク名毎に、先行ノード名及び後続ノード名が登録されるようになっている。
なお、本実施の形態では、所属するジョブの数に制限が加えられている各パーティション内において実行順序データを生成するので、処理が単純化されて、プロセスマイニングにおいて用いられているアルゴリズムを用いたとしてもリーズナブルな処理時間内の処理が完了する。逆に、リーズナブルな処理時間内で処理が完了するように、所属するジョブの数の上限を決定すればよい。処理時間はアルゴリズムに応じて異なるので、所属するジョブの上限についても、第1ジョブ解析処理に採用するアルゴリズムに応じて決定すればよい。
さらに、このようにパーティション毎に処理するため、並列処理が可能となる。すなわち、パーティションp11を第1のプロセッサでパーティションp12を第2のプロセッサで処理するといったように、複数のプロセッサで複数のパーティションについての第1ジョブ解析処理を分担すれば、それだけ処理時間を短縮することができるようになる。
図21及び図22だけでは、パーティション内部の実行順序データが得られただけでパーティション間の実行順序については解析されていない。また、図8の例では、無所属ジョブとしてジョブJ3及びJ8が特定されているので、これらの無所属ジョブについても考慮されていない。従って、第2ジョブ解析処理を行う。
図4の処理の説明に戻って、次に、第2ジョブ解析処理部117は、パーティショニング結果格納部115及び実行順序データ格納部118に格納されているデータを用いて、第2ジョブ解析処理を実施する(ステップS9)。第2ジョブ解析処理については、図23乃至図28を用いて説明する。
まず、第2ジョブ解析処理部117は、パーティショニング結果格納部115に格納されているデータに基づき、連結すべき隣接パーティションpi及びpi+1を選択する(ステップS21)。整合性の取れた実行順序データを生成するためには、例えば、隣接パーティションpi及びpi+1を連結した区間に属する無所属ジョブの数を隣接パーティション毎に計数して、最も無所属ジョブの数が多い隣接パーティションを本ステップで選択する。
なお、隣接パーティションの連結区間に無所属ジョブが存在しない場合には、以下のステップS23及びS25をスキップする。すなわち、ステップS21で、無所属ジョブが存在しない隣接パーティションを連結するということを検出すると、処理はステップS27に移行する。
次に、第2ジョブ解析処理部117は、選択された隣接パーティションpi及びpi+1を連結した区間に属する無所属ジョブより先に実行され且つパーティションpiに属する先行ジョブを特定する(ステップS23)。この処理には、図7に示した最早終了時刻及び最遅終了時刻のデータを用いる。
本実施の形態では、先行パーティションpiにおいて、最早終了時刻から最遅終了時刻までの時間帯が無所属ジョブJxの最早終了時刻から最遅終了時刻までの時間帯と重なることがなく且つ最遅終了時刻が無所属ジョブJxの最早終了時刻に最も近いジョブJyを、先に実行される先行ジョブとして特定する。より具体的には、先行パーティションpiの実行順序データにおいて末端ノード(後続ノードが定義されていないノード)から探索し、探索先ノードについてのジョブの最遅終了時刻と無所属ジョブJxの最早終了時刻とを比較し、探索先ノードについてのジョブの最遅終了時刻が無所属ジョブJxの最早終了時刻より前であれば、探索先ノードについてのジョブを先行ジョブJyとして特定する。末端ノードが複数存在する場合には、最遅終了時刻の遅い順に順番にジョブを処理する。
例えば図24に示すように、パーティションp11とパーティションp12とを連結する場合を考察する。図24から分かるように、無所属ジョブJ3をパーティションp11に属するジョブJ1及びJ2のうちいずれが先行ジョブであるかを判断する。この場合、パーティションp11の実行順序データの末端ジョブJ2から探索を開始し、ジョブJ2の最遅終了時刻は、無所属ジョブJ3の最早終了時刻より遅い。従って、ジョブJ2は先行ジョブJyではない。そうすると、ジョブJ2から実行順序データに従って遡ってジョブJ1を探索先ジョブとする。ジョブJ1の最遅終了時刻と、無所属ジョブJ3の最早終了時刻とを比較すると、ジョブJ1の最遅終了時刻のほうが、無所属ジョブJ3の最早終了時刻よりも早い。従って、ジョブJ1が先行ジョブJyである。
なお、処理すべき無所属ジョブが複数存在する場合には、ステップS23を処理すべき全ての無所属ジョブについて実施する。
このようにして特定された実行順序データは、実行順序データ格納部118に格納される。
また、第2ジョブ解析処理部117は、選択された隣接パーティションpi及びpi+1を連結した区間に属する無所属ジョブより後に実行され且つパーティションpi+1に属する後続ジョブを特定する(ステップS25)。ステップS23と同様に、図7に示した最早終了時刻及び最遅終了時刻のデータを用いる。
本実施の形態では、後続パーティションpi+1において、最早終了時刻から最遅終了時刻までの時間帯が無所属ジョブJxの最早終了時刻から最遅終了時刻までの時間帯と重なることがなく且つ最早終了時刻が無所属ジョブJxの最遅終了時刻に最も近いジョブJzを、後に実行される後続ジョブとして特定する。より具体的には、後続パーティションpi+1の実行順序データにおいて、先頭ノード(先行ノードが定義されていないノード)から探索し、探索先ノードについてのジョブの最早終了時刻と無所属ジョブJxの最遅終了時刻とを比較し、探索先ノードについてのジョブの最早終了時刻が無所属ジョブJxの最遅終了時刻より後であれば、探索先ノードについてのジョブを後続ジョブJzとして特定する。先頭ノードが複数ある場合には、最早終了時刻の早い順にジョブを処理する。
例えば図24の例では、無所属ジョブJ3をパーティションp12に属するジョブJ4及びJ5のうちいずれが後続ジョブであるかを判断する。この場合、パーティションp12の実行順序データの先頭ジョブJ4から探索を開始し、ジョブJ4の最早終了時刻は、無所属ジョブJ3の最遅終了時刻より早い。従って、ジョブJ4は後続ジョブJzではない。そうすると、ジョブJ4から実行順序データに従って遡ってジョブJ5を探索先ジョブとする。ジョブJ5の最早終了時刻と、無所属ジョブJ3の最遅終了時刻とを比較すると、ジョブJ5の最早終了時刻のほうが、無所属ジョブJ3の最遅終了時刻よりも遅い。従って、ジョブJ5が後続ジョブJzである。
なお、処理すべき無所属ジョブが複数存在する場合には、ステップS25の処理も処理すべき全ての無所属ジョブについて実施する。
このようにして特定された実行順序データは、実行順序データ格納部118に格納される。
さらに、第2ジョブ解析処理部117は、パーティションpiに属するジョブとパーティションpi+1に属するジョブとのうち、パーティション間の先行ジョブと後続ジョブとなるジョブを特定する(ステップS27)。簡単な場合には、先行パーティションpiの実行順序データにおける末端ノードを先行ジョブとして特定し、後続パーティションpi+1の実行順序データにおける先頭ノードを後続ジョブとして特定する。但し、末端ノードが複数存在する場合や先頭ノードが複数存在する場合もあるので、先行パーティションpiのなかで最遅終了時刻が最も遅いジョブを先行ジョブとして特定し、後続パーティションpi+1のなかで最早終了時刻が最も早いジョブを後続ジョブとして特定すればよい。
このような処理を実施すると、図24に示した隣接パーティションp11及びp12の連結区間に属するジョブJ1乃至J5は、図25に示すような実行順序データに変換される。図25では、ジョブJ1とジョブJ3との間のリンクXがステップS23で設定され、ジョブJ3とジョブJ5との間のリンクYがステップS25で設定され、ジョブJ2とジョブJ4との間のリンクZが設定される。すなわち、先行ジョブと後続ジョブとが特定されることになる。
そして、第2ジョブ解析処理部117は、全てのパーティションが連結されたか判断する(ステップS29)。パーティショニング結果格納部115に格納されているパーティションのデータを用いて連結の有無を管理して、全ての隣接パーティションについて処理したか判断する。連結されていないパーティションが存在する場合には、ステップS21に戻る。一方、全てのパーティションが連結された場合には元の処理に戻る。
図8の例では、パーティションp11及びp12を連結し、パーティションp21及びp22を連結し、さらにパーティションp11及びp12の連結区間とパーティションp21及びp22の連結区間とを連結する。最終的には、図26に示したような実行順序データが完成する。ステップS23によりジョブJ6とジョブJ8とが先行ジョブ及び後続ジョブとして特定され、ステップS25によりジョブJ8とジョブJ10とが先行ジョブ及び後続ジョブとして特定され、ステップS27によりジョブJ7とジョブJ9とが先行ジョブ及び後続ジョブとして特定され、最後にステップS27によりジョブJ5とジョブJ6とが先行ジョブ及び後続ジョブとして特定される。
最終的に、実行順序データ格納部118には、図27及び図28に示すようなデータが格納される。図27に示すように、ノードテーブルには、無所属ジョブJ3及びJ8が追加登録されている。また、図28に示すように、リンクテーブルには、リンクL5乃至L11が追加登録されている。リンクL5乃至L7については、パーティションp11及びp12を連結する際に生成されるリンクであり、リンクL8乃至L10については、パーティションp21及びp22を連結する際に生成されるリンクであり、リンクL11は、パーティションp11及びp12の連結区間とパーティションp21及びp22の連結区間とを連結した際に生成されるリンクである。
以上の処理を行うことによって、全てのジョブについて実行順序が特定され、それを表すジョブの実行順序データが生成される。
図4の処理の説明に戻って、入出力部112は、実行順序データ格納部118に格納されている実行順序データを読み出し、運用管理者端末300に出力する(ステップS10)。運用管理者端末300は、ジョブ分析装置100から実行順序データを受信すると、図26に示したような実行順序データの図を示すようにしてもよいし、図27及び図28に示したようなデータを示すようにしてもよい。
このようにすれば、分析開始時刻から分析終了時刻までのジョブの順序関係を把握することができるようになる。この際に用いたデータは、ジョブのログデータで、バッチジョブの実行順序を定義する情報やデータアクセス先などのデータを用いることはないので、運用管理者は容易にジョブの関係を把握することができる。なお、あくまでログデータからの推定であり、その前後に発生する事象とは異なる場合もある。
このような実行順序データは、以下のような用途が考えられる。すなわち、(1)一連のバッチジョブが正常に動作しているか確認する。(2)あるバッチジョブAの実行に障害(例えば遅延等)が発生した場合には、その前に実行され且つバッチジョブAに関連するバッチジョブを辿って根本原因を特定する。(3)あるバッチジョブAに障害が発生した場合、その影響を受ける後続バッチジョブを特定し、それらのバッチジョブを実行するシステムの担当者に通知することにより、障害の被害(遅延の連鎖やデッドライン超過)の拡大を防ぐ。
第2の実施の形態では、処理量の削減により、多数のジョブが実行される監視対象システムについてもジョブの実行順序関係を把握できるようになる。なお、ジョブの数nに対して処理時間が指数的(例えばmn)になるプロセスマイニング技術を採用する場合、パーティションがd個であれば処理時間をd*mn/dまで削減できる。例えばm=2、n=320、d=32の場合、単純にプロセスマイニング技術を適用すればmn=2.1×1096となるが、第2の実施の形態ではd*mn/d=3.3×104となる。
[実施の形態3]
第3の実施の形態に係るジョブ分析装置の機能ブロック図を図29に示す。第3の実施の形態に係るジョブ分析装置は、ログデータ格納部3001と、分類処理部3003と、第1ジョブ解析処理部3005と、第2ジョブ解析処理部3007と、データ格納部3009とを有する。分類処理部3003は、ログデータ格納部3001に格納されているログデータを用いて処理を行う。第1ジョブ解析処理部3005は、分類処理部3003の処理結果及びログデータ格納部3001に格納されているログデータを用いて処理を行い、処理結果をデータ格納部3009に格納する。第2ジョブ解析処理部3007は、分類処理部3003の処理結果及びログデータ格納部3001に格納されているログデータを用いて処理を行い、処理結果をデータ格納部3009に格納する。
次に、図29に示したジョブ分析装置の処理内容を図30を用いて説明する。まず、分類処理部3003は、ログデータ格納部3001に格納されているログデータに含まれる複数のジョブを、ジョブの終了時刻が複数の時間区間のうちいずれの時間区間に属するかに応じて分類する(ステップS3001)。このような分類処理部3003の処理結果は、第1及び第2ジョブ解析処理部3005及び3007に出力される。
次に、第1ジョブ解析処理部3005は、複数の時間区間のうち第1の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第1のデータを生成し、また、複数の時間区間のうち、第1の時間区間に後続する第2の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第2のデータを生成して、データ格納部3009に格納する(ステップS3003)。
そして、第2ジョブ解析処理部3007は、第1の時間区間に含まれるジョブの終了時刻と、第2の時間区間に含まれるジョブとの終了時刻とに基づいて、第1の時間区間に含まれるジョブと第2の時間区間に含まれるジョブとの間の実行順序関係を解析して、第1の時間区間から第2の時間区間に渡ったジョブの実行順序関係を示すデータを生成して、データ格納部3009に格納する(ステップS3005)。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、図3に示したジョブ分析装置の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致するわけではない。さらに、処理フローについても処理結果が変わらない限り、ステップの順番を入れ替えたり、並列実行することも可能である。
また、図3ではクライアントサーバシステムの一例を示しているが、例えばスタンドアロン型のコンピュータで全機能を実施するようにしてもよい。さらに、ジョブ分析装置100の機能を複数のコンピュータで分担するようにしてもよい。
なお、上で述べたジョブ分析装置は、コンピュータ装置によって実現することもできる。例えば、図31に示すように、メモリ2501とプロセッサ(CPU2503)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とを備え、これらがバス2519を介して接続されたコンピュータを用いてもよい。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505等の記憶部に格納しておき、CPU2503により実行される際にはHDD2505からメモリ2501に読み出して利用することもできる。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行ってもよい。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納してもよい。実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされてもよい。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。なお、図1のログデータ格納部1001及びデータ格納部1009は、図31におけるメモリ2501やHDD2505等として実現してもよい。図29のログデータ格納部3001及びデータ格納部3009についても同様である。図1のパーティショニング処理部1003、第1ジョブ解析処理部1005及び第2ジョブ解析処理部1007は、プロセッサ2503及びプログラムの組み合わせ、すなわち、プロセッサ2503がプログラムを実行することにより実現してもよい。より具体的には、プロセッサ2503は、HDD2505又はメモリ2501に記憶されたプログラムに従った動作を行うことで、上で述べたような処理部として機能してもよい。図29の分類処理部3003及び第1及び第2ジョブ解析処理部3005及び3007についても同様である。
以上述べた本実施の形態をまとめると、以下のようになる。
(A)ログデータに含まれる複数のジョブを、ジョブの終了時刻が複数の時間区間(第1、第2、…)のうちいずれの時間区間に属するかに応じて分類する。(B)そして、第1の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第1のデータを生成し、また、第1の時間区間に後続する第2の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第2のデータを生成する。(C)そして、第1の時間区間に含まれるジョブの終了時刻と、第2の時間区間に含まれるジョブとの終了時刻とに基づいて、第1の時間区間に含まれるジョブと第2の時間区間に含まれるジョブとの間の実行順序関係を解析して、第1の時間区間から第2の時間区間に渡ったジョブの実行順序関係を示すデータを生成する(すなわち、統合処理を行う)。好ましくは、複数の時間区間について最初から最後の時間区間全てにわたって、ジョブの実行関係を示すデータを生成するように、第Nの時間区間と第N+1(Nは1〜M−1(Mは分割数))の時間区間との間について統合処理を行う。
また、他の観点に係るジョブ解析方法は、(A)ログデータ格納部に格納されている、複数のジョブのログデータから、各ジョブの実行時間のぶれ幅を表す第1の時刻及び第2の時刻を特定するステップと、(B)分析対象期間の開始時刻から分析対象期間の終了時刻までを複数のパーティションに分割しつつ、各ジョブの第1及び第2の時刻に基づき各パーティションに属するジョブを特定する分割ステップと、(C)各パーティションにおいて、当該パーティションに属するジョブの実行時間に基づきジョブの実行順序関係を解析して、パーティション内のジョブの実行順序関係を示す実行順序関係データを生成し、データ格納部に格納するステップと、(D)隣接するパーティションについての実行順序関係データ及び当該隣接するパーティション内の各ジョブの第1及び第2の時刻に基づき隣接するパーティションに属するジョブの実行順序関係を解析して、隣接するパーティション間に渡ったジョブの実行順序を示すデータを生成し、データ格納部に格納する連結ステップとを含む。
多数のジョブが実行される監視対象システムの外部から容易に取得可能なデータからリーズナブルな時間内に多数のジョブの実行順序を把握できるようになる。
また、上で述べた分割ステップが、第1の区間の開始時刻から終了時刻までに第1の時刻から第2の時刻までの時間帯が包含される第1ジョブの数と、第2の区間の開始時刻から終了時刻までに第1の時刻から第2の時刻までの時間帯が包含される第2ジョブの数との差が小さいほど出力値が大きくなり、且つ第1及び第2の区間を含む分割前の時間帯の開始時刻から終了時刻までに第1の時刻から第2の時刻までの時間帯が包含されるが第1及び第2の区間には属さないジョブの数が小さいほど出力値が大きくなる評価関数の評価値に従って、分割前の時間帯を第1及び第2の区間に分割するための時刻を決定する詳細分割ステップを含むようにしてもよい。このような評価関数を使用することによって、好ましいパーティショニングが可能となり、後の処理で整合性のとれた実行順序データを生成することができるようになる。
また、上で述べた詳細分割ステップを、所属するジョブの数が閾値未満になるまで、再帰的に実行するようにしてもよい。このようにすれば、各パーティションに属するジョブの数を閾値未満にできるので、パーティション内の実行順序データの生成のための処理時間を短縮することができる。
さらに、上で述べた連結ステップが、第1の時刻から第2の時刻までの時間帯が隣接パーティションに跨って存在する無所属ジョブが存在する場合、(a)隣接するパーティションのうち先のパーティションに属するジョブのうち、第1の時刻から第2の時刻までの時間帯と無所属ジョブについて特定された第1の時刻から第2の時刻までの時間帯とが重ならず且つ無所属ジョブについて特定された第1の時刻と最も近い第2の時刻が特定されたジョブを特定し、特定されたジョブを先行するジョブとして且つ無所属ジョブを後続のジョブとして特定するためのデータを生成するステップと、(b)隣接するパーティションのうち後のパーティションに属するジョブのうち、第1の時刻から第2の時刻までの時間帯と無所属ジョブについて特定された第1の時刻から第2の時刻までの時間帯とが重ならず且つ無所属ジョブについて特定された第2の時刻と最も近い第1の時刻が特定されたジョブを特定し、特定されたジョブを後続のジョブとして且つ無所属ジョブを先行するジョブとして特定するためのデータを生成するステップと、(c)隣接するパーティションのうち先のパーティションに属するジョブのうち第2の時刻が最も遅いジョブを先行するジョブとして特定し、隣接パーティションのうち後のパーティションに属するジョブのうち第1の時刻が最も早いジョブを後続のジョブとして特定し、先行するジョブと後続のジョブを特定するためのデータを生成するステップとを含むようにしてもよい。
このようにすれば、無所属ジョブが存在する場合においても、パーティション間に渡る実行順序が特定できるようになる。
さらに、無所属ジョブの数が最も多い隣接パーティションを優先して上記連結ステップを実施するようにしてもよい。これによって、より整合性の高い実行順序データが生成できるようになる。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
ログデータに含まれる複数のジョブを、ジョブの終了時刻が複数の時間区間のうちいずれの時間区間に属するかに応じて分類し、
前記複数の時間区間のうち第1の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第1のデータを生成し、また、前記複数の時間区間のうち、前記第1の時間区間に後続する第2の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第2のデータを生成し、
前記第1の時間区間に含まれるジョブの終了時刻と、前記第2の時間区間に含まれるジョブとの終了時刻とに基づいて、前記第1の時間区間に含まれるジョブと前記第2の時間区間に含まれるジョブとの間の実行順序関係を解析して、前記第1の時間区間から前記第2の時間区間に渡ったジョブの実行順序関係を示すデータを生成する、
処理を実行させるためのプログラム。(1)
(付記2)
ログデータに含まれる複数のジョブを、ジョブの終了時刻が複数の時間区間のうちいずれの時間区間に属するかに応じて分類するステップと、
前記複数の時間区間のうち第1の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第1のデータを生成し、また、前記複数の時間区間のうち、前記第1の時間区間に後続する第2の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第2のデータを生成するステップと、
前記第1の時間区間に含まれるジョブの終了時刻と、前記第2の時間区間に含まれるジョブとの終了時刻とに基づいて、前記第1の時間区間に含まれるジョブと前記第2の時間区間に含まれるジョブとの間の実行順序関係を解析して、前記第1の時間区間から前記第2の時間区間に渡ったジョブの実行順序関係を示すデータを生成するステップと、
を含み、コンピュータにより実行されるジョブ分析方法。(2)
(付記3)
ログデータに含まれる複数のジョブを、ジョブの終了時刻が複数の時間区間のうちいずれの時間区間に属するかに応じて分類する分類部処理部と、
前記複数の時間区間のうち第1の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第1のデータを生成し、また、前記複数の時間区間のうち、前記第1の時間区間に後続する第2の時間区間に含まれる複数のジョブについて、ジョブの終了時刻に基づいて、ジョブの実行順序関係を示す第2のデータを生成する第1実行順序関係解析部と、
前記第1の時間区間に含まれるジョブの終了時刻と、前記第2の時間区間に含まれるジョブとの終了時刻とに基づいて、前記第1の時間区間に含まれるジョブと前記第2の時間区間に含まれるジョブとの間の実行順序関係を解析して、前記第1の時間区間から前記第2の時間区間に渡ったジョブの実行順序関係を示すデータを生成する第2実行順序関係解析部と、
を有するジョブ分析装置。(3)
(付記4)
ログデータ格納部に格納されている、複数のジョブのログデータから、各前記ジョブの実行時間のぶれ幅を表す第1の時刻及び第2の時刻を特定するステップと、
分析対象期間の開始時刻から分析対象期間の終了時刻までを複数のパーティションに分割しつつ、各前記ジョブの第1及び第2の時刻に基づき各前記パーティションに属するジョブを特定する分割ステップと、
各前記パーティションにおいて、当該パーティションに属する前記ジョブの実行時間に基づきジョブの実行順序関係を解析して、前記パーティション内のジョブの実行順序関係を示す実行順序関係データを生成し、データ格納部に格納するステップと、
隣接するパーティションについての実行順序関係データ及び当該隣接するパーティション内の各ジョブの第1及び第2の時刻に基づき前記隣接するパーティションに属するジョブの実行順序関係を解析して、前記隣接するパーティション間に渡ったジョブの実行順序を示すデータを生成し、前記データ格納部に格納する連結ステップと、
を、コンピュータに実行させるためのジョブ分析プログラム。(4,図2,4,6)
(付記5)
前記分割ステップが、
第1の区間の開始時刻から終了時刻までに前記第1の時刻から前記第2の時刻までの時間帯が包含される第1ジョブの数と、第2の区間の開始時刻から終了時刻までに前記第1の時刻から前記第2の時刻までの時間帯が包含される第2ジョブの数との差が小さいほど出力値が大きくなり、且つ前記第1及び第2の区間を含む分割前の時間帯の開始時刻から終了時刻までに前記第1の時刻から前記第2の時刻までの時間帯が包含されるが前記第1及び第2の区間には属さないジョブの数が小さいほど出力値が大きくなる評価関数の評価値に従って、前記分割前の時間帯を前記第1及び第2の区間に分割するための時刻を決定する詳細分割ステップ
を含む付記4記載のジョブ分析プログラム。(5)
(付記6)
前記詳細分割ステップを、所属するジョブの数が閾値未満になるまで、再帰的に実行する
付記5記載のジョブ分析プログラム。(6,図6)
(付記7)
前記連結ステップが、
前記第1の時刻から前記第2の時刻までの時間帯が前記隣接パーティションに跨って存在する無所属ジョブが存在する場合、
前記隣接するパーティションのうち先のパーティションに属するジョブのうち、前記第1の時刻から前記第2の時刻までの時間帯と前記無所属ジョブについて特定された前記第1の時刻から前記第2の時刻までの時間帯とが重ならず且つ前記無所属ジョブについて特定された前記第1の時刻と最も近い前記第2の時刻が特定されたジョブを特定し、特定されたジョブを先行するジョブとして且つ前記無所属ジョブを後続のジョブとして特定するためのデータを生成するステップと、
前記隣接するパーティションのうち後のパーティションに属するジョブのうち、前記第1の時刻から前記第2の時刻までの時間帯と前記無所属ジョブについて特定された前記第1の時刻から前記第2の時刻までの時間帯とが重ならず且つ前記無所属ジョブについて特定された前記第2の時刻と最も近い前記第1の時刻が特定されたジョブを特定し、特定されたジョブを後続のジョブとして且つ前記無所属ジョブを先行するジョブとして特定するためのデータを生成するステップと、
前記隣接するパーティションのうち先のパーティションに属するジョブのうち前記第2の時刻が最も遅いジョブを先行するジョブとして特定し、前記隣接パーティションのうち後のパーティションに属するジョブのうち前記第1の時刻が最も早いジョブを後続のジョブとして特定し、先行するジョブと後続のジョブを特定するためのデータを生成するステップと、
を含む付記4乃至6のいずれか1つ記載のジョブ分析プログラム。(7,図23)
(付記8)
前記無所属ジョブの数が最も多い前記隣接パーティションを優先して前記連結ステップを実施する
付記7記載のジョブ分析プログラム。(8)
(付記9)
ログデータ格納部に格納されている、複数のジョブのログデータから、各前記ジョブの実行時間のぶれ幅を表す第1の時刻及び第2の時刻を特定するステップと、
分析対象期間の開始時刻から分析対象期間の終了時刻までを複数のパーティションに分割しつつ、各前記ジョブの第1及び第2の時刻に基づき各前記パーティションに属するジョブを特定する分割ステップと、
各前記パーティションにおいて、当該パーティションに属する前記ジョブの実行時間に基づきジョブの実行順序関係を解析して、前記パーティション内のジョブの実行順序関係を示す実行順序関係データを生成し、データ格納部に格納するステップと、
隣接するパーティションについての実行順序関係データ及び当該隣接するパーティション内の各ジョブの第1及び第2の時刻に基づき前記隣接するパーティションに属するジョブの実行順序関係を解析して前記隣接するパーティション間に渡ったジョブの実行順序を示すデータを生成し、前記データ格納部に格納する連結ステップと、
を含み、コンピュータに実行されるジョブ分析方法。(9)
(付記10)
複数のジョブのログデータを格納するログデータ格納部と、
前記ログデータ格納部に格納されている、複数のジョブのログデータから、各前記ジョブの実行時間のぶれ幅を表す第1の時刻及び第2の時刻を特定し、分析対象期間の開始時刻から分析対象期間の終了時刻までを複数のパーティションに分割しつつ、各前記ジョブの第1及び第2の時刻に基づき各前記パーティションに属するジョブを特定するパーティショニング処理部と、
データ格納部と、
各前記パーティションにおいて、当該パーティションに属する前記ジョブの実行時間に基づきジョブの実行順序関係を解析して、前記パーティション内のジョブの実行順序関係を示す実行順序関係データを生成し、前記データ格納部に格納する第1ジョブ解析処理部と、
隣接するパーティションについての実行順序関係データ及び当該隣接するパーティション内の各ジョブの第1及び第2の時刻に基づき前記隣接するパーティションに属するジョブの実行順序関係を解析して、前記隣接するパーティション間に渡ったジョブの実行順序を示すデータを生成し、前記データ格納部に格納する第2ジョブ解析処理部と、
を有するジョブ分析装置。(10,図1,3)
110 ログ取得部 111 ログデータ格納部
112 入出力部 113 設定データ格納部
114 パーティショニング処理部 115 パーティショニング結果格納部
116 第1ジョブ解析処理部 117 第2ジョブ解析処理部
118 実行順序データ格納部

Claims (3)

  1. コンピュータに、
    複数のジョブの各々が複数回実行される分析対象期間についてログデータを取得し、
    前記分析対象期間を分割した場合における複数の区間の各々について、終了時刻が当該区間のみに含まれるジョブである所属ジョブを、前記ログデータを用いて特定し、
    前記複数の間のうち第1の区間の所属ジョブについて、当該所属ジョブの終了時刻に基づいて、当該所属ジョブの実行順序関係を示す第1のデータを生成し、また、前記複数の間のうち、前記第1の間に後続する第2の区間の所属ジョブについて、当該所属ジョブの終了時刻に基づいて、当該所属ジョブの実行順序関係を示す第2のデータを生成し、
    前記複数のジョブのうち終了時刻が前記第1の区間及び前記第2の区間の両方に含まれる無所属ジョブと、前記第1の区間の所属ジョブのうち、終了時刻が前記無所属ジョブの終了時刻よりも早い所属ジョブと、前記第2の区間の所属ジョブのうち、終了時刻が前記無所属ジョブの終了時刻よりも遅い所属ジョブとの間の実行順序関係を示す第3のデータを生成し、
    前記第1のデータと前記第2のデータと前記第3のデータとを統合し、前記第1の区間の所属ジョブと前記第2の区間の所属ジョブと前記無所属ジョブとの間の実行順序関係を示すデータを生成する、
    処理を実行させるためのプログラム。
  2. 複数のジョブの各々が複数回実行される分析対象期間についてログデータを取得するステップと、
    前記分析対象期間を分割した場合における複数の区間の各々について、終了時刻が当該区間のみに含まれるジョブである所属ジョブを、前記ログデータを用いて特定するステップと、
    前記複数の間のうち第1の区間の所属ジョブについて、当該所属ジョブの終了時刻に基づいて、当該所属ジョブの実行順序関係を示す第1のデータを生成し、また、前記複数の間のうち、前記第1の間に後続する第2の区間の所属ジョブについて、当該所属ジョブの終了時刻に基づいて、当該所属ジョブの実行順序関係を示す第2のデータを生成するステップと、
    前記複数のジョブのうち終了時刻が前記第1の区間及び前記第2の区間の両方に含まれる無所属ジョブと、前記第1の区間の所属ジョブのうち、終了時刻が前記無所属ジョブの終了時刻よりも早い所属ジョブと、前記第2の区間の所属ジョブのうち、終了時刻が前記無所属ジョブの終了時刻よりも遅い所属ジョブとの間の実行順序関係を示す第3のデータを生成するステップと、
    前記第1のデータと前記第2のデータと前記第3のデータとを統合し、前記第1の区間の所属ジョブと前記第2の区間の所属ジョブと前記無所属ジョブとの間の実行順序関係を示すデータを生成するステップと、
    を含み、コンピュータにより実行されるジョブ分析方法。
  3. 複数のジョブの各々が複数回実行される分析対象期間についてログデータを取得する取得部と、
    前記分析対象期間を分割した場合における複数の区間の各々について、終了時刻が当該区間のみに含まれるジョブである所属ジョブを、前記ログデータを用いて特定する特定部と、
    前記複数の間のうち第1の区間の所属ジョブについて、当該所属ジョブの終了時刻に基づいて、当該所属ジョブの実行順序関係を示す第1のデータを生成し、また、前記複数の間のうち、前記第1の間に後続する第2の区間の所属ジョブについて、当該所属ジョブの終了時刻に基づいて、当該所属ジョブの実行順序関係を示す第2のデータを生成する第1実行順序関係解析部と、
    前記複数のジョブのうち終了時刻が前記第1の区間及び前記第2の区間の両方に含まれる無所属ジョブと、前記第1の区間の所属ジョブのうち、終了時刻が前記無所属ジョブの終了時刻よりも早い所属ジョブと、前記第2の区間の所属ジョブのうち、終了時刻が前記無所属ジョブの終了時刻よりも遅い所属ジョブとの間の実行順序関係を示す第3のデータを生成する第2実行順序関係解析部と、
    前記第1のデータと前記第2のデータと前記第3のデータとを統合し、前記第1の区間の所属ジョブと前記第2の区間の所属ジョブと前記無所属ジョブとの間の実行順序関係を示すデータを生成する第実行順序関係解析部と、
    を有するジョブ分析装置。
JP2009285926A 2009-12-17 2009-12-17 ジョブ分析プログラム及び方法、並びにジョブ分析装置 Active JP5471400B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009285926A JP5471400B2 (ja) 2009-12-17 2009-12-17 ジョブ分析プログラム及び方法、並びにジョブ分析装置
US12/969,811 US8505023B2 (en) 2009-12-17 2010-12-16 Method and system for analyzing a sequence relation between a plurality of jobs across a plurality of time segments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009285926A JP5471400B2 (ja) 2009-12-17 2009-12-17 ジョブ分析プログラム及び方法、並びにジョブ分析装置

Publications (2)

Publication Number Publication Date
JP2011128828A JP2011128828A (ja) 2011-06-30
JP5471400B2 true JP5471400B2 (ja) 2014-04-16

Family

ID=44153032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009285926A Active JP5471400B2 (ja) 2009-12-17 2009-12-17 ジョブ分析プログラム及び方法、並びにジョブ分析装置

Country Status (2)

Country Link
US (1) US8505023B2 (ja)
JP (1) JP5471400B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047396B2 (en) 2011-10-31 2015-06-02 International Business Machines Corporation Method, system and computer product for rescheduling processing of set of work items based on historical trend of execution time
US9355009B2 (en) 2011-10-31 2016-05-31 International Business Machines Corporation Performance of scheduled tasks via behavior analysis and dynamic optimization
US8904397B2 (en) 2011-10-31 2014-12-02 International Business Machines Corporation Staggering execution of scheduled tasks based on behavioral information
KR20130115574A (ko) * 2012-04-12 2013-10-22 삼성전자주식회사 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치
US9043644B2 (en) * 2012-12-04 2015-05-26 International Business Machines Corporation Using separate processes to handle short-lived and long-lived jobs to reduce failure of processes
JP6209862B2 (ja) * 2013-05-24 2017-10-11 富士通株式会社 プログラム、ジョブ監視支援方法、情報処理装置およびシステム
JP6273866B2 (ja) * 2014-01-29 2018-02-07 富士通株式会社 制御プログラム、制御装置および制御方法
JP6531473B2 (ja) 2015-04-02 2019-06-19 富士通株式会社 管理支援プログラム、管理支援装置、及び管理支援方法
CN111275373B (zh) * 2018-12-05 2024-05-21 北京京东乾石科技有限公司 提升机的效率获取方法、系统、设备及可读存储介质
US11544068B2 (en) * 2019-09-26 2023-01-03 Visier Solutions, Inc. Systems and methods for generating a pipeline of stages for a process
CN112734147A (zh) * 2019-10-28 2021-04-30 北京京东乾石科技有限公司 设备评估管理的方法和装置
CN112764988B (zh) * 2021-01-08 2024-02-23 城云科技(中国)有限公司 一种数据分段采集方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175668A (ja) 1993-12-16 1995-07-14 Nec Software Ltd センターバッチ自動運転方式
JPH10214195A (ja) 1997-01-30 1998-08-11 Nec Corp 複数のジョブステップを並列に実行するジョブ制御文生 成装置、ジョブ制御文生成方法およびジョブ制御文生成 プログラムを記録した記録媒体
US20070055558A1 (en) * 2005-08-19 2007-03-08 Shanahan James G Method and apparatus for probabilistic workflow mining
JP4927448B2 (ja) * 2006-06-09 2012-05-09 株式会社日立製作所 時系列パターン生成システム及び時系列パターン生成方法
US20080065448A1 (en) * 2006-09-08 2008-03-13 Clairvoyance Corporation Methods and apparatus for identifying workflow graphs using an iterative analysis of empirical data
US7974800B2 (en) * 2006-12-12 2011-07-05 International Business Machines Corporation Method, apparatus, and program for detecting the correlation between repeating events
US8185899B2 (en) * 2007-03-07 2012-05-22 International Business Machines Corporation Prediction based priority scheduling
JP4282727B2 (ja) * 2007-03-13 2009-06-24 富士通株式会社 業務分析プログラムおよび業務分析装置
US20090094074A1 (en) 2007-10-04 2009-04-09 Nikovski Daniel N Method for Constructing Business Process Models from Task Execution Traces
JP5007247B2 (ja) * 2008-01-31 2012-08-22 株式会社野村総合研究所 ジョブ処理システムおよびジョブ管理方法

Also Published As

Publication number Publication date
US8505023B2 (en) 2013-08-06
JP2011128828A (ja) 2011-06-30
US20110154360A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
JP5471400B2 (ja) ジョブ分析プログラム及び方法、並びにジョブ分析装置
US20200192741A1 (en) Automatic model-based computing environment performance monitoring
US8490108B2 (en) Method of estimating a processing time of each of a plurality of jobs and apparatus thereof
US8190599B2 (en) Stream data processing method and system
CN106886485B (zh) 系统容量分析预测方法及装置
US20150205691A1 (en) Event prediction using historical time series observations of a computer application
US20150205692A1 (en) Behavior clustering analysis and alerting system for computer applications
US20120066166A1 (en) Predictive Analytics for Semi-Structured Case Oriented Processes
JP2013140510A (ja) データ処理方法、分散処理システムおよびプログラム
US11966778B2 (en) Cloud application scaler
JP5888336B2 (ja) データ処理方法、分散処理システムおよびプログラム
US20150205693A1 (en) Visualization of behavior clustering of computer applications
JP2010039878A (ja) ログ管理システムおよびログ表示システム
JP4380596B2 (ja) 業務プロセスモデルの構造推定方法及びその装置
JP7393847B2 (ja) パイプラインにおけるタスクの並列度の動的な変更
JPWO2013024597A1 (ja) 分散処理管理装置及び分散処理管理方法
US10732974B2 (en) Engine agnostic event monitoring and predicting systems and methods
US10346450B2 (en) Automatic datacenter state summarization
JPWO2015146100A1 (ja) 負荷推定システム、情報処理装置、負荷推定方法、及び、コンピュータ・プログラム
Park et al. Queue congestion prediction for large-scale high performance computing systems using a hidden Markov model
JP5515117B2 (ja) データ処理装置
JP6176380B2 (ja) 情報処理装置、方法、及びプログラム
US11340951B2 (en) Estimating an amount of resources that a program is expected to consume in a data center
Verma et al. Reliability Assessment of Multi-release Software System Under Imperfect Fault Removal Phenomenon
JP6777242B2 (ja) 情報処理装置、情報処理システム、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131216

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: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Ref document number: 5471400

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150