JP4219119B2 - How to determine job execution order - Google Patents
How to determine job execution order Download PDFInfo
- Publication number
- JP4219119B2 JP4219119B2 JP2002168125A JP2002168125A JP4219119B2 JP 4219119 B2 JP4219119 B2 JP 4219119B2 JP 2002168125 A JP2002168125 A JP 2002168125A JP 2002168125 A JP2002168125 A JP 2002168125A JP 4219119 B2 JP4219119 B2 JP 4219119B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- information
- execution
- simulation
- file
- 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.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、複数のジョブが並行して動作することが可能な計算機システムにおけるジョブ実行順序決定方法に関し、特に、構成の異なる計算機システムに移行する際に有効なジョブ実行順序決定方法に関する。
【0002】
【従来の技術】
従来、大規模なバンキングシステムにおけるオンライン処理や流通業における商品管理をするためのオンライン処理では、顧客サービスの向上を図るために、数多くの業務が実施されている。オンライン処理には、その業務で取り扱ったデータを集計するための一括データ処理(バッチ処理)が付随している。オンライン処理量の増加やオンラインサービスの種類の多様化に伴い、バッチ処理量は増大し、その処理内容も複雑化しつつある。
一般に、オンライン処理を行うジョブをオンラインジョブ、バッチ処理を行うジョブをバッチジョブと呼ぶ。これらの増大化しつつある業務に対処するために、複数のCPUを用意した計算機システムの構築を行い、そのシステムでバッチ業務を実施する傾向にある。
この複数CPUを有するシステム構築手法として、複数台のCPUを一つの主記憶装置を共有して一つのオペレーティングシステム(OS)で動作するシステム(密結合マルチプロセサシステム)がある。
もう一つのシステム構築手法として、独立したCPUおよび主記憶装置を持つ複数個の計算機を、チャネル間結合装置などで結合させたシステム(疎結合マルチプロセサシステム)がある。
【0003】
上述した両方の構築手法によるシステムにおいては、短時間でバッチ処理が完了するように効率のよいジョブスケジュールを編成する必要がある。特に、疎結合マルチプロセサシステムでは、複数の独立したOSが動作するため、OS間で相互に連携をとりながら業務を遂行する必要がある。そこで、バッチ処理を効率よく実施させる従来の手法として、特開平5−173807号公報や特開平6−68052号公報に開示されたものがある。この2件は、疎結合マルチプロセサシステム上で、負荷が均等化されるように動的に資源の利用率を測定し、スケジューリングを行うジョブ分散方式に関するものである。
すなわち、上記特開平5−173807号公報に記載されたものは、一定時間毎にシステムの資源負荷量を測定する資源負荷測定手段を設け、そこでの測定結果に応じてジョブ実行多重度を動的に変更させるものである。また、上記特開平6−68052号公報に記載されたものは、一定時間間隔でプロセッサの使用率を測定するプロセッサ使用率監視部を設け、最も負荷の低いプロセッサにジョブを自動的に割り当てる機能に関するものである。
【0004】
【発明が解決しようとする課題】
近年、業務の多様化やデータ量の増加に伴い、バッチ処理が複雑化していることは前述の通りである。ジョブの処理時間を短縮するための方法として、計算機のCPU性能を上げるかまたはジョブ全体を高多重化する手段が考えられる。しかしながら、前者の単一CPU性能を上げるには現在の技術でほぼ限界が現れており、今後、後者のジョブの高多重化が必須になるのは確実と考えられる。
しかし、これらの複雑なバッチジョブの相関関係を崩さずに、バッチジョブの高多重化を実現するには、ジョブのスケジューリングの効率化を行わなければ、マルチプロセサシステムの計算機資源を有効に活用することにはならない。
上記2つの公開公報に記載された従来技術は、既に構築されたシステム上でのジョブ実行中に動的にジョブスケジューリングを決定するものである。これは、ジョブが実行される際に、そのジョブ単体に対してスケジューリングの効率化を図るもので、ジョブ全体に対しての測定を行ってスケジューリングの効率化を行うものではなかった。また、これらの従来技術は、既に構築されたシステムでジョブを実行する場合に適用されるものであり、システム構成の変更を行う場合の前もったジョブスケジューリング評価に利用することができなかった。
【0005】
オンラインジョブが時間に依存したジョブであるのに対し、一括データ処理であるバッチジョブは決まった入力ファイルに対し一定の処理を行う開始時刻に依存しないという性質を持つ。このような複数のジョブが定期的に繰り返されるような形態であるジョブに関しては、過去のジョブ実行履歴をもとに、その後のジョブ実行の予測が可能である。このような性質のジョブについて、実行される前にジョブスケジューリング計画を行うことによって、全体の処理時間の短縮を見込むことができる。また、システム設計時に前記のようなジョブスケジューリング計画を行うことで、ディスク装置などへのファイルの配置計画などを立てることができ、システム構成の変更を行う場合の前もったジョブスケジューリング評価を行うことができる。
【0006】
本発明はバッチジョブのスケジューリング効率化を対象とし、以下の三つの目的を持つ。
本発明の第一の目的は、バッチ処理を実施する前に、過去の実行履歴をもとに、効率的なジョブスケジュールの立案を支援することが可能なジョブ実行順序決定方法を提供することにある。
本発明の第二の目的は、ジョブ多重度などのシステム運用上の変更があった場合に、過去の実行履歴をもとに、その効果を変更前に見積もることが可能なジョブ実行順序決定方法を提供することにある。
本発明の第三の目的は、疎結合マルチプロセサシステム上にジョブを分配させる場合に、上記システム内の他の計算機に接続されているディスクへのアクセス頻度を少なくし、データ転送に関するオーバーヘッドを低くおさえるため、分配されるジョブがアクセスするファイルが上記システム内の一つの計算機に接続されているディスクに配置することが可能となるように、各ジョブを実行させる計算機を、過去の履歴情報をもとに決定することが可能なジョブ実行順序決定方法を提供することにある。
【0007】
【課題を解決するための手段】
本発明は、上記目的を達成するために、計算機に設けられたプロセッサが、あるシステムで複数のジョブが並行して動作する場合に、所定のファイルを参照することを要するジョブ相互間の実行順序を決定する方法であって、該プロセッサは、外部から前記ジョブごとに、ジョブ実行中にアクセスしたファイルの履歴情報を受け取り、該履歴情報をメモリに記憶し、該メモリから該履歴情報を読み出して、該履歴情報に含まれるテーブル構造を有した該当するジョブ情報セルに情報を書き込み、該プロセッサは、外部のシミュレーションに必要な空間数やCPU性能比率を含む前記パラメタ情報を該メモリに読み込み、該パラメタ情報を該メモリから読み出し、該パラメタ情報を解析してシミュレーションの条件となるシミュレーション条件定義情報を作成し、該プロセッサは、該メモリのジョブ情報セルのリストから順次ジョブ情報セルを読み出し、前記シミュレーション条件定義情報に基づいて生成される空間に接続するジョブ情報セルがあるか否かを判断し、前記シミュレーション条件定義情報に基づいて生成される空間に接続されるジョブ情報セルがあると判断され、かつ該ジョブ情報セルのジョブがアクセスするファイルが他のジョブによってアクセスされている場合には、該他のジョブが終了した後に当該ジョブを実行開始するようにしたジョブスケジューリング条件を求め、求められた条件から実行開始可能な時刻を算出し、指定された空間中の該当時刻に空きの有無を判定し、空きがあれば、該メモリにアクセスしてポインタを書き込むことで、前記ジョブ情報セルを該空間に接続し、該ジョブ情報セルの接続終了後、ジョブ実行時間などのジョブ情報セル内のデータの書換えを行い、該ジョブ情報セルがどのジョブの後に実行されるかを決定することを特徴としている。
【0008】
【作用】
本発明によると、収集したアクセス履歴情報から各ジョブの実行開始条件を決定し、実行履歴情報から各ジョブの実行時間を求めることにより現状のジョブ実行に基づいたジョブ実行開始時間を求めることができる。そして、シミュレーションの対象である計算機システムにおけるジョブ多重度を、並行して動作可能な最大ジョブ数とする第一条件と、上記実行開始条件に従うという第二条件をもとにしてシミュレーションを行うステップにより、ジョブスケジューラによらない仮想的なジョブ実行を再現できる。このシミュレーション結果から、処理時間短縮がはかれるジョブスケジュール案を提示することができる。
【0009】
ジョブ多重度増減などのシステム運用上の変更をパラメタとして与えられた場合に、そのパラメタを上記実行開始条件などに付加することにより、運用上の変更を行った場合のジョブスケジュール結果を提供できる。その結果、現状システムでの問題点を解決する見積りを得た上でのシステム再構築が可能となる。
また、シミュレーションを行う前に、あらかじめアクセスするファイルに基づいてジョブのグルーピングを行うことにより、パラメタとして与えられた新しいシステム条件でのジョブスケジュール結果を提供できる。その結果、疎結合マルチプロセサシステムなどの現行のシステムと違った構成のシステム上でのジョブスケジュール案を提供することができる。
以上のように、実行履歴を用いる静的な評価により、本発明は実機を用いることなく、すなわち対象となるシステムに負担をかけることなくジョブスケジュールに関する定量的評価を得ることが可能になる。
【0010】
【実施例】
本実施例では、一つ以上のCPU、および、そのCPUからアクセスされるディスクを有する一つ以上の計算機により構成される計算機システムを対象としている。計算機システムが複数の計算機から構成される場合には、それら各計算機は相互に通信を行う手段を有するものとする。
上記の計算機システムにおいて、複数のジョブは並行実行される。ここで、並行実行されるジョブの数には上限があり、その上限をジョブ多重度と呼ぶ。ジョブは、一つ以上のジョブステップにより構成される。ここでジョブステップは、そのジョブの中で実行されるプログラムの一つに対応している。read、write、参照などの動作が行われたファイルを、本件ではアクセスファイルと呼ぶ。
バッチジョブは、参照するファイルが生成されていれば論理的に実行可能である。従って、あるジョブがアクセスするファイルが他のジョブによってアクセスされている場合には、その他のジョブが終了した後に実行開始する必要がある。ジョブが、どのジョブの実行終了後に開始すべきであるかをスケジューリング条件と呼ぶ。
【0011】
以下、本発明の実施例を図面を用いて詳細に説明する。
図1は、本発明の一実施例の基本的なシステム構成を示している。本実施例において、計算機101は、CPU102、メモリ103により構成されている。メモリ103上には、後述するパラメタ情報114およびジョブ実行履歴115を入力してジョブスケジューリング解析を行なうジョブスケジューリング解析部104、システムの稼働履歴を収集するシステム稼働履歴収集部110、およびジョブスケジュールプログラム111が設けられ、さらに、ジョブスケジュールプログラム111はジョブ起動部112および登録簿作成部113から構成されている。これらの各部における処理はCPU102によって実行されるものとする。
【0012】
計算機101に登録されたジョブは、ジョブスケジュールプログラム111内の登録簿作成部113により、ジョブ登録簿117に登録される。ジョブ起動部112は、上記の手順により作成されたジョブ登録簿117をもとに、ジョブを起動し実行状態にする。起動するには、起動しようとするジョブが、どのプログラムを実行するもので、どのファイルにアクセスするかを記述したジョブ制御文118が各ジョブ毎に用意されている必要がある。ジョブ起動部112は、このジョブ制御文118をもとに、ジョブを実行するのに必要なファイルなどの資源が確保されているかを確認した上でジョブを起動する。
【0013】
ジョブは上記手順により実行状態になる。その実行状況をシステム稼働履歴収集部110が収集してジョブ実行履歴115を作成する。このジョブ実行履歴115の構成例を図2に示す。
採取する実行履歴データとしては、同図に示すように、ジョブ開始レコード115−1、ジョブステップ開始レコード115−2、アクセスファイルに関するファイルクローズレコード115−3、ジョブステップ終了レコード115−4、ジョブ終了レコード115−5などが挙げられる。これらの各レコードは、ジョブの実行開始、ファイルのクローズなどの事象によって発生するものであり、それらのレコードの先頭または内部にそのレコードが何の事象によって発生したかを表すレコードタイプが含まれている。本実施例では、ジョブ開始レコードを01、ジョブステップ開始レコードを02、ファイルクローズレコードを03、ジョブステップ終了レコードを04、ジョブ終了レコードを05とするレコードタイプに関する記述が、各レコードの先頭にあるものとする。
【0014】
図2に示されたジョブ実行履歴データである各レコードについてさらに詳細に説明する。
ジョブ開始レコード115−1は、レコードタイプ01の他に、ジョブ名、ジョブ開始日付、ジョブ開始時刻を有し、ジョブステップ開始レコード115−2は、レコードタイプ02の他に、ジョブステップ名、ジョブステップ開始日付、ジョブステップ開始時刻、このレコードを出したジョブ名を有し、アクセスファイルに関するファイルクローズレコード115−3は、レコードタイプ03の他に、ファイル名、ファイルクローズ日付、ファイルクローズ時刻、このレコードを出したジョブステップ名、このレコードを出したジョブ名を有し、ジョブステップ終了レコード115−4は、レコードタイプ04の他に、ジョブステップ名、ジョブステップ終了日付、ジョブステップ終了時刻、このレコードを出したジョブ名を有し、ジョブ終了レコード115−5は、レコードタイプ05の他に、ジョブ名、ジョブ終了日付、ジョブ終了時刻、CPU使用時間を有している。
【0015】
ジョブ実行履歴115とともにジョブスケジューリング解析部104へ入力されるパラメタ情報114の構造を図3に示す。パラメタ情報114は、ジョブに関するデータである図2に詳細に示したジョブ実行履歴115以外の、シミュレーションに必要な、空間数(最大ジョブ実行多重度)や、CPU性能比率(新たなシステムにおけるCPUの性能の改善比率)や、出力結果の指定などの全ての情報を含む。図3は空間数30、CPU性能比率1(同一性能のCPUの場合)、グルーピングON(グルーピング機能を有効にした場合)、・・・の場合を示している。
【0016】
次に、本発明が特徴としているジョブスケジューリング解析部104の詳細を説明する。
ジョブスケジューリング解析部104は、図1に示したように、上述した実行履歴データ115(図2参照)を解析するジョブデータ解析部600、上述したパラメタ情報114(図3参照)からシミュレーションに必要な情報であるシミュレーション条件定義情報(図5の114−1)を作成するパラメタ解析部700、ジョブデータ解析部600により作成されたデータについてジョブのグルーピングを行うジョブグルーピング部800、これらの入力データによりジョブの実行状況をシミュレートするシミュレーション部900により構成される。ジョブスケジューリング解析部104と、システム稼働履歴収集部110は、本実施例では、同一システム内に設けているが、別システムに設けてもよい。
【0017】
また、シミュレーション部900で解析された結果が、シミュレーション結果116として、シミュレーション部900より出力される。このシミュレーション結果116の例を図4に示す。出力情報としては、同図に示すように、シミュレーション後のジョブ実行多重度の時間的遷移116−1や、実行ジョブのリスト116−2などが挙げられる。図4の実行ジョブのリスト116−2は、空間1の実行ジョブはJOB1、JOB5およびJOB3で、空間2の実行ジョブはJOB2およびJOB8であり、例えば、JOB1は7:00乃至7:45に実行され、実行時間は45分間であることを示している。なお、実行ジョブのリスト中にジョブ毎に使用される資源などを含めることも可能である。
【0018】
次に、ジョブスケジューリング解析部104の詳細な説明図を図5に示す。
ジョブデータ解析部600は、ジョブ実行履歴115から本発明でシミュレーションに用いる情報単位である情報セル200を作成する。
情報セル200は、ジョブ実行履歴115の中に含まれる履歴の種類によって、図6の情報セル構成例に示したように、ジョブ情報セル201、ジョブステップ情報セル202、ファイル情報セル203に大別される。情報セル200はテーブル構造になっており、その中の要素(ポインタ)が関連のある情報セルをポイントすることで、情報セル全体がリスト構造になるように構成されている。ジョブ情報セル201は、そのジョブを構成するジョブステップ情報セル202のリストを指す。また、そのジョブステップ情報セル202は、そのジョブステップでアクセスするファイルのファイル情報セル203を指す。これらが1組となって、ジョブの全体の情報を表す。
ジョブ実行履歴115には解析の対象となるジョブが複数含まれているため、ジョブ情報セル201自身も、リスト構造となっており、ポインタによって順次次のジョブ情報セル201を指すように構成されている。
【0019】
次に、上記の各情報セルのさらに詳細なテーブル構造を図7〜図9を用いて説明する。各情報セルには、情報セルのリスト構造を形成するための情報とともに、実行履歴の中に含まれる情報が必要に応じて格納される。
図7はジョブ情報セル201のテーブル構造を示すものである。同図中、ポインタ301はジョブ情報セルのリストにおいて次の要素をポイントするもので、ポインタ302は、そのジョブを構成するジョブステップの情報セルのリストの先頭をポイントするものである。また、303はジョブを識別するためのジョブ名を、304はジョブ開始時刻を、305はジョブ終了時刻を格納する領域であり、これらはシミュレーション部900で実行条件を求める際に使用される。また、306はそのジョブが使用したトータルのCPU使用時間を格納する領域である。
【0020】
図8は、ジョブステップ情報セル202のテーブル構造を示すものである。同図中、ポインタ401はジョブステップ情報セルのリストにおいて次の要素(ジョブステップ情報セル)をポイントするもので、ポインタ402は、そのジョブステップでアクセスするファイルの情報セルのリストの先頭をポイントするものである。403はジョブステップを識別するためのジョブステップ名を、404はそのジョブステップで実行されるプログラム名を格納するための領域である。図9はファイル情報セル203のテーブル構造を示すものである。同図中、ポインタ501はファイル情報セルのリストにおいて次の要素(ファイル情報セル)をポイントするためのものである。502はファイルを識別するとともに、シミュレーション部900で実行条件を求める際に使用されるファイル名を格納するための領域である。
【0021】
次に、ジョブデータ解析部600の処理の流れを図10のフローチャートを用いて詳細に説明する。
まず、ジョブ実行履歴115から、先頭のデータを読み込み、ステップ602乃至ステップ606の処理をジョブ実行履歴115のデータが空になるまで継続する(ステップ601)。
そのレコードが読み込まれるまでの情報セルリストの中に、そのレコードの内容を格納すべき情報セルが存在しないレコード、例えば、ジョブ開始レコードなどを読み込んだ場合、新たに内容を格納する情報セルを作成する必要がある。読み込んだジョブ実行履歴115のデータが、これらの新たに情報セルを作成するべきレコードタイプであるか否かを判定する(ステップ602)。
【0022】
上記ステップ602における判定が真であった場合、該レコードがジョブか、ジョブステップか、またはファイルに関するものであるかをそのレコードの内容から判定し、それに該当する形式の情報セルの領域を確保し(ステップ603)、その領域にデータを格納するとともに、その新しい情報セルに対するリストからのポインタ設定など、リスト構造を形成するための情報を設定する(ステップ604)。
上記ステップ602における判定が偽であった場合、それ以前に作成された情報セルの中の対応する情報セルにデータを格納する(ステップ605)。
その後、ジョブ実行履歴115の次のデータの処理を対象として判定ステップ601に戻る(ステップ606)。
【0023】
パラメタ解析部700は、図3に示した如きパラメタ情報114を解析して、シミュレーションの条件となるシミュレーション条件定義情報114−1を作成するものである。
次に、パラメタ解析部700の処理を図11のフローチャートを用いて詳細に説明する。
まず、パラメタ情報114からパラメタの読み込みを行い、ステップ702乃至ステップ703に示した処理をパラメタが空になるまで継続する(ステップ701)。
読み込んだパラメタ情報がどのパラメタであるかを判別し、パラメタのタイプに合わせてシミュレーション条件定義情報114−1に反映させる(ステップ702)。例を挙げると、パラメタ情報114から、ジョブが実行される多重度を空間数として読み込み、シミュレーション条件定義情報114−1の中の対応する項目に設定する。
処理を継続するために次のパラメタ情報114を対象として判定ステップ701に戻る(ステップ703)。
【0024】
ジョブグループング部800は、現行のシステムと異なる疎結合マルチプロセサシステムを意識した、ファイルアクセスの局所性に着目したジョブグルーピングを行った結果を得る場合に用いられるものである。ジョブグルーピング部800の処理により、ジョブ情報セル201のリストを、アクセスするファイルが重複するジョブの情報セルのリストに分割しグルーピングする。該ジョブグルーピング部800で作成されたジョブグループ単位でシミュレーション部900によりシミュレーションを行うことで、アクセスするファイルの重複をなくした、あるいは少なくしたジョブグループでのスケジューリング解析結果を出すことが可能になる。
【0025】
次に、ジョブグルーピング部800の処理を、図12のフローチャートを用いて詳細に説明する。
まず、最初に、シミュレーション条件定義情報114−1の中のジョブのグルーピングを行うか否かを指定しているテーブルデータを参照し、グルーピングを行うと指定してある場合に以下のステップ802乃至ステップ804の処理を行い、それ以外は処理を行わないで処理を終了する(ステップ801)。
【0026】
ステップ801において、グルーピングを行なうと指定してある場合には、まず、ジョブ情報セル201の読み込み動作を行い、以下のステップ802乃至ステップ804の処理をジョブ情報セル201のリストが空になるまで継続する(ステップ802)。
ステップ802で読み込んだジョブ情報セルで表されるジョブと同一ファイルにアクセスするジョブを、ジョブ情報セルのリストの中から順次検索し、これらのジョブを同一グループとみなしてグルーピングする。また、ここで同一グループとされたジョブと同一ファイルにアクセスするジョブも同様に同一グループとする(ステップ803)。
次のジョブ情報セルを対象として(ステップ804)、ステップ802に戻って再び同様の処理を行なう。
【0027】
次に、シミュレーション部900におけるジョブ実行のシミュレーションの手順を図13および図14のフローチャートを用いて詳細に説明する。
図14は、図13で行われるジョブ情報セル201のリストつなぎ換えを模式的に表したものである。図14において、201−j(j=1〜j)は内容の異なるジョブ情報セルを表す。図14中の空間1001のテーブル構造例を図15に示す。
図15に示した空間1001のテーブル構造において、ポインタ1101は次の空間1001をポイントするためのものである。また、ポインタ1102はその空間1001に接続されるジョブ情報セルのリストの先頭をポイントするためのものである。
【0028】
次に、図13のフローチャートに沿ってシミュレーション部900の動作を詳細に説明する。
まず最初に、シミュレーション条件定義情報114−1から情報を読み込む。シミュレーション条件定義情報114−1が空になるまで以下のステップ902乃至ステップ903の処理を行う(ステップ901)。シミュレーション条件定義情報114−1が空になったら、ステップ904に進む。
【0029】
ステップ902では、読み込んだシミュレーション条件に対応した処理を行う。例えば、ジョブ実行多重度の最大数を表す空間数のパラメタであった場合は、その数の空間1001をメモリ領域に確保する。またCPU性能比率であった場合は、ジョブ情報セル201内のCPU使用時間306を該比率に合わせて換算し、同時にジョブ終了時刻305の書き換え(図7参照)も行う。
【0030】
接続するジョブ情報セルのリスト1の先頭から、ジョブ情報セル201を順々に取り出すために、ジョブ情報セル201があるかどうかの判定を行い(ステップ904)、ジョブ情報セル201があった場合、先頭からそれを順に取り出し空になるまで以下のステップ905乃至ステップ911の処理を行う。
まず、上記のジョブの、他のジョブとのファイル受渡しなどのスケジューリング条件を求める(ステップ905)。
次に、ステップ905で求めたスケジューリング条件により実行開始可能な時刻を算出する(ステップ906)。
ステップ906で求めた時刻に空間1001に接続されたジョブ情報セルリストの内容を検索し、上記実行開始可能な時刻に空きがあり、実行可能であるか否かを判定する(ステップ907)。
【0031】
上記ステップ907における判定が真(実行可能)であった場合、その空いている空間1001にジョブ情報セルを接続する。また、ジョブ情報セルを接続した際、そのジョブ情報セルが指し示すジョブステップ情報セルなども一緒に空間1001に接続する(ステップ908)。
上記ステップ907における判定が偽(実行不可)であった場合、上記ステップ906で求めた実行開始可能時刻以降で、最も早く実行が可能となる空間1001に、ジョブ情報セルを接続する(ステップ909)。
その後、上述したジョブ情報セルの接続が終了した後、ジョブ実行時間などのジョブ情報セル内のデータの書換えを行い(ステップ910)、次のジョブ情報セルを対象として判定ステップ904に戻る。
なお、シミュレーション部900での処理中に、ジョブが実行されない時間が生じることがある。これらの時間を空きであることを表すジョブ情報セルで表すことで、空間1001のジョブ情報セルリスト内でのアイドル時間を表現することができる。
【0032】
次に、シミュレーション部900におけるステップ904乃至ステップ911によって具体的にどのようにジョブ情報セルが変更されるかを図14を参照しながら説明する。
まず、判定ステップ904において、接続すべき未処理のジョブ情報セルのリストを参照する。図14に示した例の場合、未処理のジョブ情報セルとして201−1、201−2、・・・・、201−iがあるから判定ステップ904はYESであるため、リストの先頭から201−1、201−2、・・・、201−iを順に取り出してそれぞれに対してステップ905乃至ステップ911の処理を行う。
【0033】
最初に、リストの先頭のジョブ情報セル201−1を処理するにあたり、ステップ905乃至ステップ908またはステップ909において、シミュレーションの結果をメモリ上で表したジョブ情報セルのリストの中でジョブ情報セル201−1がどのジョブの後で実行されるべきかを割出す。図14における例の場合、ジョブ情報セル201−4の後に実行されるものとする。その場合、ステップ908またはステップ909において、ジョブ情報セル201−1は201−4の後につがぎ換えられる。同時にジョブ情報セル201−1は未処理のジョブ情報セルリスト200からは削除される。
以上説明したように、本実施例では、ジョブの実行状況をメモリ上で情報セルのリストとして表し、パラメタ情報とジョブ実行履歴を用いてシミュレーションを行う。
【0034】
【発明の効果】
本発明によれば、現行のシステムでのジョブ処理時間短縮が図れるジョブスケジューリング案を得られる。
さらに、システム構成変更によるジョブ実行状況が、システム構成変更前に、現行システムのジョブ稼働状況をもとにして把握することが可能になる。
さらに、ジョブ実行履歴に基づいてシミュレーションを行うため、対象となるシステムに動的なジョブモニタリング程の負担をかけずに静的に評価を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明のジョブスケジューリング解析方法を実現するためのジョブスケジューリング解析部104を具備した計算機システムの一実施例である。
【図2】本発明の入力情報となるジョブ実行履歴115の説明図である。
【図3】本発明の入力情報となるパラメタ情報114の説明図である。
【図4】本発明の出力情報となるシミュレーション結果116の説明図である。
【図5】本発明のジョブスケジューリング解析部104の具体的な構成例である。
【図6】本発明のジョブスケジューリング解析方法で用いられるジョブおよびジョブに関するデータである情報セルの構成を示した説明図である。
【図7】ジョブのデータを格納するジョブ情報セルのテーブル構造を示した説明図である。
【図8】ジョブステップのデータを格納するジョブステップ情報セルのテーブル構造を示した説明図である。
【図9】アクセスファイルのデータを格納するファイル情報セルのテーブル構造を示した説明図である。
【図10】ジョブデータ解析部600の処理を説明したフローチャートである。
【図11】パラメタ解析部700の処理を説明したフローチャートである。
【図12】ジョブグルーピング部800の処理を説明したフローチャートである。
【図13】スケジューリングのシミュレーション部900の処理を説明したフローチャートである。
【図14】シミュレーションでのジョブ実行を表すためのデータ構造を示した説明図である。
【図15】シミュレーションで用いられる空間1001のテーブル構造を示した説明図である。
【符号の説明】
101…計算機、102…CPU、103…メモリ、104…ジョブスケジューリング解析部、600…ジョブデータ解析部、700…パラメタ解析部、800…ジョブグルーピング部、900…シミュレーション部、110…システム稼働履歴収集部、111…ジョブスケジュールプログラム、112…ジョブ起動部、113…登録簿作成部、114…パラメタ情報、115…ジョブ実行履歴、116…シミュレーション結果、117…ジョブ登録簿、118…ジョブ制御文。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a job execution order determination method in a computer system capable of operating a plurality of jobs in parallel, and more particularly to a job execution order determination method that is effective when shifting to a computer system having a different configuration.
[0002]
[Prior art]
Conventionally, in online processing for large-scale banking systems and online processing for managing merchandise in a distribution business, many operations have been performed in order to improve customer service. Online processing is accompanied by batch data processing (batch processing) for aggregating data handled in the business. As the amount of online processing increases and the types of online services diversify, the amount of batch processing increases and the processing content is becoming more complex.
In general, a job that performs online processing is referred to as an online job, and a job that performs batch processing is referred to as a batch job. In order to cope with these increasing tasks, a computer system having a plurality of CPUs is constructed, and batch operations tend to be performed on the system.
As a system construction technique having a plurality of CPUs, there is a system (tightly coupled multiprocessor system) in which a plurality of CPUs share one main storage device and operate with one operating system (OS).
As another system construction method, there is a system (loosely coupled multiprocessor system) in which a plurality of computers having independent CPUs and main storage devices are coupled by an inter-channel coupling device or the like.
[0003]
In the systems based on both of the construction methods described above, it is necessary to organize an efficient job schedule so that batch processing is completed in a short time. In particular, in a loosely coupled multiprocessor system, a plurality of independent OSs operate, and therefore, it is necessary to perform work while mutually coordinating between the OSs. Therefore, as conventional techniques for efficiently performing batch processing, there are those disclosed in Japanese Patent Laid-Open Nos. H5-173807 and H6-68052. These two cases relate to a job distribution method in which resource utilization is dynamically measured and scheduling is performed on a loosely coupled multiprocessor system so that the load is equalized.
That is, the one described in the above-mentioned Japanese Patent Application Laid-Open No. 5-173807 is provided with a resource load measuring means for measuring the resource load amount of the system at regular intervals, and the job execution multiplicity is dynamically changed according to the measurement result there. To change. Further, what is described in JP-A-6-68052 relates to a function of automatically providing a job to a processor having the lowest load by providing a processor usage rate monitoring unit that measures the usage rate of a processor at regular time intervals. Is.
[0004]
[Problems to be solved by the invention]
In recent years, the batch processing has become more complicated with the diversification of business and the increase in data volume, as described above. As a method for shortening the processing time of the job, means for increasing the CPU performance of the computer or highly multiplexing the entire job can be considered. However, there is almost a limit in the current technology for improving the former single CPU performance, and it is certain that high multiplexing of the latter job will become essential in the future.
However, in order to achieve high multiplexing of batch jobs without breaking the correlation between these complex batch jobs, the computer resources of the multiprocessor system must be used effectively unless job scheduling is efficient. It will not be.
The prior art described in the above two publications dynamically determines job scheduling during job execution on an already constructed system. This is to improve the efficiency of scheduling for a single job when the job is executed, and does not improve the efficiency of scheduling by measuring the entire job. Further, these conventional techniques are applied when a job is executed in a system that has already been constructed, and could not be used for prior job scheduling evaluation when changing the system configuration.
[0005]
While online jobs are time-dependent jobs, batch jobs that are batch data processing have the property that they do not depend on the start time for performing certain processing on a fixed input file. With respect to a job in which such a plurality of jobs are periodically repeated, it is possible to predict the subsequent job execution based on the past job execution history. For a job having such a property, the overall processing time can be shortened by performing a job scheduling plan before it is executed. Also, by performing the job scheduling plan as described above at the time of system design, it is possible to make a plan for file allocation to the disk device etc., and to perform job scheduling evaluation in advance when changing the system configuration Can do.
[0006]
The present invention is aimed at improving the efficiency of batch job scheduling and has the following three objects.
The first object of the present invention is to improve efficiency based on past execution history before executing batch processing.TargetIt is an object of the present invention to provide a job execution order determination method capable of supporting the creation of a simple job schedule.
A second object of the present invention is a job execution order determination method capable of estimating the effect before a change based on a past execution history when there is a change in system operation such as job multiplicity. Is to provide.
The third object of the present invention is to reduce the frequency of access to disks connected to other computers in the system and to reduce the overhead related to data transfer when distributing jobs on a loosely coupled multiprocessor system. Therefore, the computer that executes each job is based on past history information so that the file accessed by the distributed job can be placed on a disk connected to one computer in the system. It is an object of the present invention to provide a job execution order determination method that can be determined as follows.
[0007]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a computer.The processor provided inIn one systemWhen multiple jobs run in parallel,A method for determining an execution order between jobs that need to refer to a predetermined file,The processorOutsideFromFor each job, the history information of the file accessed during job execution is displayed.ReceiveHistory informationIs stored in a memory, the history information is read from the memory, and the information is written in a corresponding job information cell having a table structure included in the history information. The parameter information including the CPU performance ratio is read into the memory, the parameter information is read from the memory, and the parameter information is analyzed to create simulation condition definition information as a simulation condition. The job information cells are sequentially read from the list of job information cells, and it is determined whether there is a job information cell connected to the space generated based on the simulation condition definition information, and is generated based on the simulation condition definition information. It is determined that there is a job information cell connected to the If the file accessed by the job in the cell information cell is accessed by another job, obtain the job scheduling condition that starts the execution of the job after the other job ends. A time at which execution can be started is calculated, whether or not there is a vacancy at the corresponding time in the designated space, and if there is a vacancy, the memory is accessed and the pointer is written to thereby store the job information cell in the space. After the connection of the job information cell is completed, the data in the job information cell such as the job execution time is rewritten to determine which job the job information cell is executed after.Characterized by decidingYes.
[0008]
[Action]
According to the present invention, it is possible to determine the job execution start time based on the current job execution by determining the execution start condition of each job from the collected access history information and determining the execution time of each job from the execution history information. . Then, by performing a simulation based on the first condition that the job multiplicity in the computer system to be simulated is the maximum number of jobs that can be operated in parallel and the second condition that the execution start condition is followed. Virtual job execution that does not depend on the job scheduler can be reproduced. From this simulation result, it is possible to present a job schedule proposal that can reduce the processing time.
[0009]
When a change in system operation such as job multiplicity increase / decrease is given as a parameter, the job schedule result when the operation change is made can be provided by adding the parameter to the execution start condition. As a result, it is possible to reconstruct the system after obtaining an estimate for solving the problem in the current system.
Further, by performing job grouping based on a file to be accessed in advance before simulation, a job schedule result under a new system condition given as a parameter can be provided. As a result, it is possible to provide a job schedule proposal on a system having a configuration different from the current system such as a loosely coupled multiprocessor system.
As described above, the static evaluation using the execution history enables the present invention to obtain a quantitative evaluation regarding the job schedule without using an actual machine, that is, without placing a burden on the target system.
[0010]
【Example】
The present embodiment is intended for a computer system including one or more CPUs and one or more computers having disks accessed from the CPUs. When the computer system is composed of a plurality of computers, each computer has means for communicating with each other.
In the above computer system, a plurality of jobs are executed in parallel. Here, there is an upper limit to the number of jobs executed in parallel, and the upper limit is called job multiplicity. A job is composed of one or more job steps. Here, the job step corresponds to one of the programs executed in the job. A file in which operations such as read, write, and reference are performed is referred to as an access file in this case.
A batch job can be logically executed if a file to be referenced is generated. Therefore, when a file accessed by a certain job is accessed by another job, it is necessary to start execution after the other job ends. The job that should be started after execution of the job is called a scheduling condition.
[0011]
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 shows a basic system configuration of an embodiment of the present invention. In this embodiment, the
[0012]
The job registered in the
[0013]
The job enters the execution state according to the above procedure. The system operation
The execution history data to be collected includes a job start record 115-1, a job step start record 115-2, a file close record 115-3 for the access file, a job step end record 115-4, and a job end as shown in FIG. For example, record 115-5. Each of these records is generated by an event such as job execution start or file close, and the record type that indicates what event caused the record is included at the beginning or inside of those records. Yes. In this embodiment, a description regarding a record type is 01 at the job start record, 02 at the job step start record, 03 at the file close record, 04 at the job step end record, and 05 at the job end record. Shall.
[0014]
Each record that is the job execution history data shown in FIG. 2 will be described in more detail.
The job start record 115-1 has a job name, a job start date, and a job start time in addition to the
[0015]
The structure of the
[0016]
Next, details of the job
As shown in FIG. 1, the job
[0017]
The result analyzed by the
[0018]
Next, a detailed explanatory diagram of the job
The job
The
Since the
[0019]
Next, a more detailed table structure of each information cell will be described with reference to FIGS. In each information cell, information included in the execution history is stored as necessary together with information for forming a list structure of information cells.
FIG. 7 shows the table structure of the
[0020]
FIG. 8 shows the table structure of the job
[0021]
Next, the processing flow of the job
First, the top data is read from the
In the information cell list until the record is read, if there is no information cell that should store the contents of the record, such as a job start record, a new information cell is created to store the contents There is a need to. It is determined whether or not the data of the read
[0022]
If the determination in
If the determination in
Thereafter, the process returns to the
[0023]
The
Next, the processing of the
First, parameters are read from the
Which parameter is the read parameter information is determined, and is reflected in the simulation condition definition information 114-1 according to the parameter type (step 702). For example, the multiplicity at which the job is executed is read as the number of spaces from the
In order to continue the processing, the process returns to the
[0024]
The
[0025]
Next, the processing of the
First, referring to the table data that specifies whether or not to perform job grouping in the simulation condition definition information 114-1, when the grouping is specified, the following
[0026]
If it is specified in
Jobs that access the same file as the job represented by the job information cell read in
For the next job information cell (step 804), the process returns to step 802 and the same processing is performed again.
[0027]
Next, the job execution simulation procedure in the
FIG. 14 schematically shows the list switching of the
In the table structure of the
[0028]
Next, the operation of the
First, information is read from the simulation condition definition information 114-1. The following
[0029]
In
[0030]
In order to sequentially extract the
First, a scheduling condition such as file delivery of the above job with another job is obtained (step 905).
Next, a time at which execution can be started is calculated based on the scheduling condition obtained in step 905 (step 906).
The contents of the job information cell list connected to the
[0031]
If the determination in
If the determination in
Thereafter, after the connection of the above-described job information cell is completed, data in the job information cell such as job execution time is rewritten (step 910), and the process returns to the
Note that a time during which the job is not executed may occur during processing in the
[0032]
Next, how the job information cell is specifically changed in
First, in
[0033]
First, when processing the head job information cell 201-1 in the list, in step 905 to step 908 or step 909, the job information cell 201- in the list of job information cells representing the result of the simulation on the memory is displayed. Determine which
As described above, in this embodiment, the job execution status is represented as a list of information cells on the memory, and simulation is performed using the parameter information and the job execution history.
[0034]
【The invention's effect】
According to the present invention, it is possible to obtain a job scheduling plan that can shorten the job processing time in the current system.
Further, the job execution status due to the system configuration change can be grasped based on the job operating status of the current system before the system configuration change.
Furthermore, since the simulation is performed based on the job execution history, it is possible to perform a static evaluation without subjecting the target system to the burden of dynamic job monitoring.
[Brief description of the drawings]
FIG. 1 is an example of a computer system provided with a job
FIG. 2 is an explanatory diagram of a
FIG. 3 is an explanatory diagram of
FIG. 4 is an explanatory diagram of a
FIG. 5 is a specific configuration example of a job
FIG. 6 is an explanatory diagram showing a configuration of an information cell that is a job and data related to the job used in the job scheduling analysis method of the present invention.
FIG. 7 is an explanatory diagram showing a table structure of a job information cell for storing job data.
FIG. 8 is an explanatory diagram showing a table structure of a job step information cell for storing job step data.
FIG. 9 is an explanatory diagram showing a table structure of a file information cell for storing data of an access file.
10 is a flowchart illustrating processing of a job
FIG. 11 is a flowchart illustrating processing of a
FIG. 12 is a flowchart illustrating processing of a job grouping unit.
FIG. 13 is a flowchart illustrating processing of a
FIG. 14 is an explanatory diagram showing a data structure for representing job execution in simulation.
FIG. 15 is an explanatory diagram showing a table structure of a
[Explanation of symbols]
DESCRIPTION OF
Claims (5)
該プロセッサは、外部から前記ジョブごとに、ジョブ実行中にアクセスしたファイルの履歴情報を受け取り、該履歴情報をメモリに記憶し、該メモリから該履歴情報を読み出して、該履歴情報に含まれるテーブル構造を有した該当するジョブ情報セルに情報を書き込み、
該プロセッサは、外部のシミュレーションに必要な空間数やCPU性能比率を含む前記パラメタ情報を該メモリに読み込み、該パラメタ情報を該メモリから読み出し、該パラメタ情報を解析してシミュレーションの条件となるシミュレーション条件定義情報を作成し、
該プロセッサは、該メモリのジョブ情報セルのリストから順次ジョブ情報セルを読み出し、前記シミュレーション条件定義情報に基づいて生成される空間に接続するジョブ情報セルがあるか否かを判断し、前記シミュレーション条件定義情報に基づいて生成される空間に接続するジョブ情報セルがあると判断され、かつ該ジョブ情報セルのジョブがアクセスするファイルが他のジョブによってアクセスされている場合には、該他のジョブが終了した後に当該ジョブを実行開始するようにしたジョブスケジューリング条件を求め、求められた条件から実行開始可能な時刻を算出し、指定された空間中の該当時刻に空きの有無を判定し、空きがあれば、該メモリにアクセスしてポインタを書き込むことで、前記ジョブ情報セルを該空間に接続し、該ジョブ情報セルの接続終了後、ジョブ実行時間などのジョブ情報セル内のデータの書換えを行い、該ジョブ情報セルがどのジョブの後に実行されるかを決定することを特徴とするジョブ実行順序決定方法。A method in which a processor provided in a computer determines an execution order between jobs that need to refer to a predetermined file when a plurality of jobs operate in parallel in a certain system,
The processor receives history information of a file accessed during job execution from the outside for each job, stores the history information in a memory, reads the history information from the memory, and includes a table included in the history information. Write information to the corresponding job information cell with structure,
The processor reads the parameter information including the number of spaces required for external simulation and the CPU performance ratio into the memory, reads the parameter information from the memory, analyzes the parameter information, and serves as a simulation condition. Create definition information,
The processor sequentially reads job information cells from the list of job information cells in the memory, determines whether there is a job information cell connected to a space generated based on the simulation condition definition information, and the simulation condition When it is determined that there is a job information cell connected to the space generated based on the definition information, and the file accessed by the job in the job information cell is accessed by another job, the other job Find the job scheduling condition that starts the job after completion , calculate the time when execution can start from the obtained condition, determine whether there is a vacancy at the corresponding time in the specified space, If there is, the job information cell is connected to the space by accessing the memory and writing a pointer, A job execution order determination method characterized by rewriting data in a job information cell such as a job execution time after connection of the job information cell and determining which job the job information cell is executed after .
まとめられたグループに含まれるジョブについて、シミュレーションを行うことを特徴とする請求項1ないし3のいずれかに記載のジョブ実行順序決定方法。Based on the job execution history, jobs using the same file are grouped into one group,
4. The job execution order determination method according to claim 1, wherein simulation is performed for jobs included in the grouped group.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002168125A JP4219119B2 (en) | 2002-06-10 | 2002-06-10 | How to determine job execution order |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002168125A JP4219119B2 (en) | 2002-06-10 | 2002-06-10 | How to determine job execution order |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08796695A Division JP3501385B2 (en) | 1995-04-13 | 1995-04-13 | Job execution order determination method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003050708A JP2003050708A (en) | 2003-02-21 |
JP4219119B2 true JP4219119B2 (en) | 2009-02-04 |
Family
ID=19195083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002168125A Expired - Fee Related JP4219119B2 (en) | 2002-06-10 | 2002-06-10 | How to determine job execution order |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4219119B2 (en) |
-
2002
- 2002-06-10 JP JP2002168125A patent/JP4219119B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003050708A (en) | 2003-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3501385B2 (en) | Job execution order determination method | |
US10873623B2 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
US9276987B1 (en) | Identifying nodes already storing indicated input data to perform distributed execution of an indicated program in a node cluster | |
Joseph et al. | IntMA: Dynamic interaction-aware resource allocation for containerized microservices in cloud environments | |
US8260840B1 (en) | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program | |
Ganapathi et al. | Statistics-driven workload modeling for the cloud | |
CN100533387C (en) | System and method for executing job step | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US7979864B2 (en) | Apparatus for setting used license of executing job into unused license state and allocating the set unused license to a to be executed job based on priority | |
US6889243B1 (en) | Job scheduling analysis method and system using historical job execution data | |
EP2881864A1 (en) | Computer system, storage management computer, and storage management method | |
JP5874811B2 (en) | Information processing method, program, and information processing apparatus | |
Cheng | Trace-driven system modeling | |
Pongsakorn et al. | Container rebalancing: Towards proactive linux containers placement optimization in a data center | |
CN110187835A (en) | For managing the method, apparatus, equipment and storage medium of access request | |
Shi et al. | A case study of tuning MapReduce for efficient Bioinformatics in the cloud | |
CN113391913A (en) | Distributed scheduling method and device based on prediction | |
JPWO2010047170A1 (en) | Calculation device, system management device, calculation method, and program | |
Liu et al. | High-responsive scheduling with MapReduce performance prediction on hadoop YARN | |
JP5342003B2 (en) | Storage system | |
JP5659054B2 (en) | System management apparatus, system management method, and system management program | |
CN102576294A (en) | Storage system, method, and program, comprising a plurality of storage devices | |
CN116881012A (en) | Container application vertical capacity expansion method, device, equipment and readable storage medium | |
JP4219119B2 (en) | How to determine job execution order | |
CN109324886A (en) | cluster resource scheduling method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050902 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051028 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051226 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20051226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20051226 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060201 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20060303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081016 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |