JP4219119B2 - How to determine job execution order - Google Patents

How to determine job execution order Download PDF

Info

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
Application number
JP2002168125A
Other languages
Japanese (ja)
Other versions
JP2003050708A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP2002168125A priority Critical patent/JP4219119B2/en
Publication of JP2003050708A publication Critical patent/JP2003050708A/en
Application granted granted Critical
Publication of JP4219119B2 publication Critical patent/JP4219119B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 computer 101 is composed of a CPU 102 and a memory 103. On the memory 103, a job scheduling analysis unit 104 that performs job scheduling analysis by inputting parameter information 114 and a job execution history 115 described later, a system operation history collection unit 110 that collects system operation history, and a job schedule program 111 In addition, the job schedule program 111 and the job activation unit 112 and registrationBookThe creation unit 113 is configured. It is assumed that the processing in each of these units is executed by the CPU 102.
[0012]
The job registered in the computer 101 is registered in the job registration list 117 by the registration list creation unit 113 in the job schedule program 111. The job activation unit 112 activates a job and puts it into an execution state based on the job registry 117 created by the above procedure. In order to start up, it is necessary that a job control statement 118 that describes which program is to be executed and which file to access is prepared for each job. The job activation unit 112 activates the job after confirming whether resources such as a file necessary for executing the job are secured based on the job control statement 118.
[0013]
The job enters the execution state according to the above procedure. The system operation history collection unit 110 collects the execution status and creates a job execution history 115. A configuration example of the job execution history 115 is shown in FIG.
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 record type 01. The job step start record 115-2 has a record type02In addition, the job step name, job step start date, job step start time, job name that issued this record, and the file close record 115-3 related to the access file include the file name, File close date, file close time, job step name that issued this record, job name that issued this record, and job step end record 115-4 include job step name, job step in addition to record type 04 It has an end date, job step end time, and the name of the job that issued this record. The job end record 115-5 has a job name, job end date, job end time, and CPU usage time in addition to the record type 05. is doing.
[0015]
The structure of the parameter information 114 that is input to the job scheduling analysis unit 104 together with the job execution history 115 is shown in FIG. The parameter information 114 includes the number of spaces (maximum job execution multiplicity) and CPU performance ratio (CPU performance in the new system) other than the job execution history 115 shown in detail in FIG. All the information such as the performance improvement ratio and output result designation are included. FIG. 3 shows a case where the number of spaces is 30, the CPU performance ratio is 1 (in the case of CPUs having the same performance), the grouping is ON (when the grouping function is enabled), and so on.
[0016]
Next, details of the job scheduling analysis unit 104, which is a feature of the present invention, will be described.
As shown in FIG. 1, the job scheduling analysis unit 104 is necessary for the simulation from the job data analysis unit 600 that analyzes the execution history data 115 (see FIG. 2) and the parameter information 114 (see FIG. 3). The parameter analysis unit 700 that creates simulation condition definition information (114-1 in FIG. 5), the job grouping unit 800 that performs job grouping on the data created by the job data analysis unit 600, and jobs based on these input data It is comprised by the simulation part 900 which simulates the execution condition of these. In this embodiment, the job scheduling analysis unit 104 and the system operation history collection unit 110 are provided in the same system, but may be provided in different systems.
[0017]
The result analyzed by the simulation unit 900 is output from the simulation unit 900 as the simulation result 116. An example of the simulation result 116 is shown in FIG. As the output information, as shown in the figure, a temporal transition 116-1 of job execution multiplicity after simulation, a list 116-2 of execution jobs, and the like can be cited. In the execution job list 116-2 in FIG. 4, the execution jobs in space 1 are JOB1, JOB5, and JOB3, and the execution jobs in space 2 are JOB2 and JOB8. For example, JOB1 is executed from 7:00 to 7:45. The execution time is 45 minutes. It is also possible to include resources used for each job in the execution job list.
[0018]
Next, a detailed explanatory diagram of the job scheduling analysis unit 104 is shown in FIG.
The job data analysis unit 600 creates an information cell 200 that is an information unit used for simulation in the present invention from the job execution history 115.
The information cell 200 is roughly classified into a job information cell 201, a job step information cell 202, and a file information cell 203 as shown in the information cell configuration example of FIG. 6 according to the type of history included in the job execution history 115. Is done. The information cell 200 has a table structure, and the entire information cell has a list structure when an element (pointer) in the information cell points to a related information cell. The job information cell 201 indicates a list of job step information cells 202 constituting the job. The job step information cell 202 indicates the file information cell 203 of the file accessed in the job step. These form one set and represent the overall information of the job.
Since the job execution history 115 includes a plurality of jobs to be analyzed, the job information cell 201 itself has a list structure, and is configured to sequentially point to the next job information cell 201 by a pointer. Yes.
[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 job information cell 201. In the figure, a pointer 301 points to the next element in the list of job information cells, and a pointer 302 points to the head of the list of information cells of job steps constituting the job. Reference numeral 303 denotes a job name for identifying a job, 304 denotes a job start time, and 305 denotes an area for storing a job end time. These are used when the simulation unit 900 obtains an execution condition. Reference numeral 306 denotes an area for storing the total CPU usage time used by the job.
[0020]
FIG. 8 shows the table structure of the job step information cell 202. In the figure, a pointer 401 points to the next element (job step information cell) in the list of job step information cells, and a pointer 402 points to the top of the list of information cells of the file accessed in the job step. Is. Reference numeral 403 denotes a job step name for identifying the job step, and 404 denotes an area for storing a program name executed in the job step. FIG. 9 shows the table structure of the file information cell 203. In the figure, a pointer 501 is for pointing to the next element (file information cell) in the list of file information cells. Reference numeral 502 denotes an area for identifying a file and storing a file name used when the simulation unit 900 obtains an execution condition.
[0021]
Next, the processing flow of the job data analysis unit 600 will be described in detail with reference to the flowchart of FIG.
First, the top data is read from the job execution history 115, and the processing in steps 602 to 606 is continued until the data in the job execution history 115 becomes empty (step 601).
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 job execution history 115 is a record type for which these new information cells are to be created (step 602).
[0022]
If the determination in step 602 is true, it is determined from the contents of the record whether the record is a job, a job step, or a file, and an information cell area of the corresponding format is secured. (Step 603) Stores data in the area and sets information for forming a list structure such as setting a pointer from the list for the new information cell (Step 604).
If the determination in step 602 is false, the data is stored in the corresponding information cell in the previously created information cell (step 605).
Thereafter, the process returns to the determination step 601 for the processing of the next data in the job execution history 115 (step 606).
[0023]
The parameter analysis unit 700 analyzes the parameter information 114 as shown in FIG. 3 and creates simulation condition definition information 114-1 as a simulation condition.
Next, the processing of the parameter analysis unit 700 will be described in detail using the flowchart of FIG.
First, parameters are read from the parameter information 114, and the processing shown in steps 702 to 703 is continued until the parameters become empty (step 701).
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 parameter information 114, and set in the corresponding item in the simulation condition definition information 114-1.
In order to continue the processing, the process returns to the determination step 701 for the next parameter information 114 (step 703).
[0024]
The job grouping unit 800 is used when obtaining a result of job grouping focusing on the locality of file access in consideration of a loosely coupled multiprocessor system different from the current system. By the processing of the job grouping unit 800, the list of the job information cell 201 is divided into a list of information cells of jobs with overlapping files to be accessed and grouped. By performing simulation by the simulation unit 900 in units of job groups created by the job grouping unit 800, it is possible to obtain scheduling analysis results in job groups in which duplication of files to be accessed is eliminated or reduced.
[0025]
Next, the processing of the job grouping unit 800 will be described in detail with reference to the flowchart of FIG.
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 steps 802 to step 802 are performed. The processing of 804 is performed, and the processing is terminated without performing any other processing (step 801).
[0026]
If it is specified in step 801 that grouping is to be performed, the job information cell 201 is read first, and the following steps 802 to 804 are continued until the list of job information cells 201 becomes empty. (Step 802).
Jobs that access the same file as the job represented by the job information cell read in step 802 are sequentially searched from the list of job information cells, and these jobs are regarded as the same group and grouped. Also, the job accessing the same file as the job made in the same group here is also made the same group (step 803).
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 simulation unit 900 will be described in detail with reference to the flowcharts of FIGS.
FIG. 14 schematically shows the list switching of the job information cell 201 performed in FIG. In FIG. 14, 201-j (j = 1 to j) represents job information cells having different contents. An example of the table structure of the space 1001 in FIG. 14 is shown in FIG.
In the table structure of the space 1001 shown in FIG. 15, the pointer 1101 is for pointing to the next space 1001. A pointer 1102 is used to point to the top of a list of job information cells connected to the space 1001.
[0028]
Next, the operation of the simulation unit 900 will be described in detail along the flowchart of FIG.
First, information is read from the simulation condition definition information 114-1. The following steps 902 to 903 are performed until the simulation condition definition information 114-1 becomes empty (step 901). When the simulation condition definition information 114-1 becomes empty, the process proceeds to step 904.
[0029]
In step 902, processing corresponding to the loaded simulation condition is performed. For example, if it is a parameter of the number of spaces that represents the maximum number of job execution multiplicity, that number of spaces 1001 is secured in the memory area. If it is the CPU performance ratio, the CPU usage time 306 in the job information cell 201 is converted according to the ratio, and at the same time, the job end time 305 is rewritten (see FIG. 7).
[0030]
In order to sequentially extract the job information cells 201 from the head of the list 1 of job information cells to be connected, it is determined whether there is a job information cell 201 (step 904). The following steps 905 to 911 are performed until the data are taken out from the head in order and become empty.
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 space 1001 are searched at the time obtained in step 906, and it is determined whether or not there is a vacancy at the time when the execution can be started (step 907).
[0031]
If the determination in step 907 is true (executable), a job information cell is connected to the empty space 1001. When the job information cell is connected, the job step information cell indicated by the job information cell is also connected to the space 1001 (step 908).
If the determination in step 907 is false (unexecutable), the job information cell is connected to the space 1001 that can be executed earliest after the execution startable time obtained in step 906 (step 909). .
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 determination step 904 for the next job information cell.
Note that a time during which the job is not executed may occur during processing in the simulation unit 900. By expressing these times by job information cells indicating that they are vacant, idle times in the job information cell list of the space 1001 can be expressed.
[0032]
Next, how the job information cell is specifically changed in steps 904 to 911 in the simulation unit 900 will be described with reference to FIG.
First, in decision step 904, a list of unprocessed job information cells to be connected is referred to. In the case of the example shown in FIG. 14, since there are 201-1, 201-2,..., 201-i as unprocessed job information cells, the determination step 904 is YES. , 201-i, 201-i are taken out in order, and the processing from step 905 to step 911 is performed on each of them.
[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 job 1 should be executed after. In the case of the example in FIG. 14, it is executed after the job information cell 201-4. In that case, in step 908 or step 909, the job information cell 201-1 is switched after 201-4. At the same time, the job information cell 201-1 is deleted from the unprocessed job information cell list 200.
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 scheduling analysis unit 104 for realizing a job scheduling analysis method of the present invention.
FIG. 2 is an explanatory diagram of a job execution history 115 serving as input information of the present invention.
FIG. 3 is an explanatory diagram of parameter information 114 serving as input information according to the present invention.
FIG. 4 is an explanatory diagram of a simulation result 116 serving as output information of the present invention.
FIG. 5 is a specific configuration example of a job scheduling analysis unit 104 according to the present invention.
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 data analysis unit 600. FIG.
FIG. 11 is a flowchart illustrating processing of a parameter analysis unit 700.
FIG. 12 is a flowchart illustrating processing of a job grouping unit.
FIG. 13 is a flowchart illustrating processing of a simulation unit 900 for scheduling.
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 space 1001 used in the simulation.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 101 ... Computer, 102 ... CPU, 103 ... Memory, 104 ... Job scheduling analysis part, 600 ... Job data analysis part, 700 ... Parameter analysis part, 800 ... Job grouping part, 900 ... Simulation part, 110 ... System operation history collection part , 111... Job schedule program, 112... Job starter, 113... Register creation unit, 114 .. Parameter information, 115 .. Job execution history, 116.

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記載のジョブ実行順序決定方法。  2. The job execution order determination method according to claim 1, wherein the processor acquires information related to the execution multiplicity of the job of the system in addition to the file history information. 前記ジョブの実行のシミュレーションには、前記シミュレーション結果を出力するステップを有することを特徴とする請求項1または2記載のジョブ実行順序決定方法。  3. The job execution order determination method according to claim 1, wherein the simulation of job execution includes a step of outputting the simulation result. 前記ジョブの実行履歴に基づいて、同一のファイルを使用するジョブを一つのグループにまとめ、
まとめられたグループに含まれるジョブについて、シミュレーションを行うことを特徴とする請求項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.
前記システムは、前記ジョブが実行されたシステムとは異なるシステムであることを特徴とする請求項1から請求項4までのうちのいずれかに記載のジョブ実行順序決定方法。  The job execution order determination method according to any one of claims 1 to 4, wherein the system is a system different from a system in which the job is executed.
JP2002168125A 2002-06-10 2002-06-10 How to determine job execution order Expired - Fee Related JP4219119B2 (en)

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)

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