JP5441179B2 - ジョブ実行管理システム - Google Patents

ジョブ実行管理システム Download PDF

Info

Publication number
JP5441179B2
JP5441179B2 JP2010222914A JP2010222914A JP5441179B2 JP 5441179 B2 JP5441179 B2 JP 5441179B2 JP 2010222914 A JP2010222914 A JP 2010222914A JP 2010222914 A JP2010222914 A JP 2010222914A JP 5441179 B2 JP5441179 B2 JP 5441179B2
Authority
JP
Japan
Prior art keywords
job
job execution
agent
executed
schedule
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
JP2010222914A
Other languages
English (en)
Other versions
JP2012079038A (ja
Inventor
進也 杉本
祥充 片岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2010222914A priority Critical patent/JP5441179B2/ja
Publication of JP2012079038A publication Critical patent/JP2012079038A/ja
Application granted granted Critical
Publication of JP5441179B2 publication Critical patent/JP5441179B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、コンピュータを使用したジョブ実行管理システムに関し、詳しくは、複数台のコンピュータに分散して実行させている多くのコマンドやアプリケーション(以下、ジョブ)を1台の後継のコンピュータに集約して実行させようとする場合に、ジョブスケジューリングにより過大な負荷による業務遅延を発生させないように集約できるようにするジョブ実行管理技術に関するものである。
ジョブ実行管理システムを使用したシステムでは、リソース制限等により複数台(多数)のコンピュータを使用して運用するのが一般的である。例えば、下記特許文献1には、与えられたジョブを複数の計算機41〜43に負荷が分散するように実行させるシステムが開示されている(特許文献1の段落0022〜0024、図2など参照)。
昨今、コンピュータの性能向上やマルチコアCPUの登場により、複数台のコンピュータで実行していたジョブを少数のコンピュータに集約してシステム構築するケースが増加してきている。
特開2001−67237
複数台のコンピュータで行っていた業務を少数(例えば1台)のコンピュータで行うようにする場合、単純に集約すると、特定の時間帯にジョブの実行が集中して業務の遅延につながる恐れがある。性能の高いコンピュータを導入しても、ジョブ実行のピークが集中すると、一時的にコンピュータの負荷が高くなり、リソース限界に達し、期待した時間どおりにジョブが開始しなかったり、ジョブが期限までに終了しなかったりする恐れがある。
このような課題は、リソース枯渇が発生するピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの実行開始時刻を調整して、並行実行していたジョブを時間帯により分散することで回避可能である。しかし、業務のピーク時間帯を指定したり、手動ですべてのジョブを再スケジュールすることは非常に手間のかかる作業である。また、手動でジョブのスケジュールを調整するため、設定ミスやジョブ特性の考慮漏れなどが発生し、集約後に問題が摘出されることも考えられる。
本発明は、複数台のコンピュータで行っていたジョブを1台のコンピュータに集約する場合、集約元のコンピュータで実行されていたすべてのジョブを集約先のコンピュータで段階的に自動代行実行して負荷情報の収集を行い、収集した情報を元にリソース限界となるピーク時間帯を洗い出し、そのピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整することで、処理量あふれによるリソース不足を発生させずに業務を遅延なく運用できるジョブ実行管理システムの集約におけるスケジュール調整機能を提供することを目的とする。
上記目的を達成するために、本発明では、コンピュータを使用したジョブ実行管理システムにおいて、例えば複数台のコンピュータを1台のコンピュータに集約する場合、同一ネットワーク上に集約先のコンピュータを接続し、集約元のコンピュータで実行していたジョブをリソース枯渇が発生しないように集約先のコンピュータで段階的に実行し、集約元のコンピュータで実行していたすべてのジョブの負荷情報を収集する。そして、ジョブ単位に指定された終了期限・開始時刻の変更可否設定とジョブ単位の負荷情報をもとにスケジュール調整する。
本発明によれば、ジョブを集約する際に、処理量あふれにより顕在化するリソース枯渇が発生したり、期待した時刻どおりにジョブが開始しなかったり、ジョブが期限までに終了しなかったりする問題が発生しないようなスケジュールを自動生成することができる。従って、例えば複数台のコンピュータで実行していたジョブを1台のコンピュータに集約する場合、集約元のコンピュータで実行されていたすべてのジョブの負荷情報を収集し、収集した情報を元にリソース限界となるピーク時間帯を検出し、ジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの実行開始時刻を調整することで、すべての業務の遅延をなくすようなスケジュールを自動作成できる。
本発明の一実施の形態例を示すシステム構成図 ジョブ管理マネージャーの構成図 ジョブ実行エージェントの構成図 ジョブ定義データベースに格納されるデータの構成図 ジョブスケジュールデータベースに格納されるデータの構成図 ジョブ履歴データベースに格納されるデータの構成図 エージェント集約情報データベースに格納されるデータの構成図 複数のジョブ実行エージェントを少数のジョブ実行エージェントへ集約する旨の依頼を受けた後のジョブスケジュールデータベースのデータ例を示す図 エージェント負荷情報データベースに格納されるデータ構成図 エージェント負荷予測データベースに格納されるデータの構成図とCPU使用率を示すイメージ図 ピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整した後のエージェント負荷予測データベースのデータ例とCPU使用率を示すイメージ図 ピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整した後のジョブ定義データベースのデータ例を示す図 複数のジョブ実行エージェントを1台のジョブ実行エージェントへ集約する旨の指示を受けたときのジョブスケジュールデータベースの更新処理を示すフローチャート リソース限界となるピーク時間帯を洗い出し、そのピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整することで、処理量あふれによるリソース不足を発生させないスケジュールを作成する処理のフローチャート
以下、図面を用いて本発明の実施の形態を説明する。
図1は、本発明を適用したジョブ実行管理システムの構成例を示す。この実施形態のジョブ実行管理システムは、ジョブを配信するジョブ管理マネージャーA101と実際にジョブを実行する複数台のジョブ実行エージェントB102およびC103とがネットワーク105で相互に接続されて構成されている。また、ジョブ実行を集約するためのコンピュータであるジョブ実行エージェントD104がネットワーク105に接続されている。
図2は、ジョブ管理マネージャーA101の構成を示す。ジョブ管理マネージャーA101は、データの格納先として、ジョブ定義データベース207、ジョブスケジュールデータベース208、ジョブ履歴データベース209、エージェント集約情報データベース210、および、エージェントの負荷予測データベース211を備える。また、ジョブ管理マネージャーA101は、端末201からジョブ定義データベース207の更新を行うジョブ定義データベース参照更新部202、ジョブ定義データベース207に格納されている情報から実際のジョブのスケジュールを作成してジョブスケジュールデータベース208を更新するジョブ実行スケジュール作成部203、ジョブ実行エージェントにジョブを配信してジョブ終了後にジョブ履歴データベース211を更新するジョブ実行管理部204、複数台のジョブ実行エージェントを1台のジョブ実行エージェントへ集約する処理を行うエージェント入れ替え時設定処理部205、および、集約先のジョブ実行エージェントで収集した負荷情報から負荷予測データを作成し、エージェントの負荷予測データベース211に格納するエージェント負荷予測データ作成部206を備える。これらの各部の機能は、コンピュータ上でそれぞれ所定のプログラムを実行することにより実現される。
図3は、ジョブ実行エージェントB102およびジョブ実行エージェントD104の構成を示した図である。ジョブ実行エージェントB102は、ジョブの実行を行うジョブ実行部301を備える。なお、ジョブ実行エージェントC103も同様の構成である。集約先のジョブ実行エージェントD104は、データの格納先としてエージェント負荷情報データベース303を備えるとともに、ジョブ実行部301と、ジョブ実行時の負荷情報をエージェント負荷情報データベース303に格納し、ジョブ実行マネージャーA101に送信するジョブ実行時の負荷情報収集送信部302を備える。
図4は、ジョブ定義データベース207のデータ構造を示す。ジョブ定義データベース207は、ジョブ名401、ジョブ実行エージェント名402、ジョブ実行内容403、スケジュール情報404、ジョブ終了期限405、および開始時刻変更可否406の各フィールドを備える。スケジュール情報404には、ジョブを開始する時刻を格納する。ジョブ終了期限405には、該当するジョブをいつまでに終了させる必要があるかを示す値を格納する。開始時刻変更可否406には、該当するジョブの開始時刻を変更可能か否かを示す値を格納する。ジョブ管理マネージャーA101のジョブ実行スケジュール作成部203は、端末201から通常のスケジュール作成の指示が入力されたとき、図4の情報からジョブの実行スケジュールを作成して、後述する図5のジョブスケジュールデータベース208を更新する。
図5は、ジョブスケジュールデータベース208のデータ構造を示す。ジョブスケジュールデータベース208は、日付501、ジョブ実行開始時刻502、ジョブ名503、および実行エージェント名504の各フィールドを備える。ジョブ実行管理部204は、日付501とジョブ実行開始時刻502に該当する時刻になると、実行エージェント名504で指定されたジョブ実行エージェントにジョブ名503で指定されたジョブを配信する。例えば、2008/2/1の0:00にはJob1をジョブ実行エージェントBに配信し、Job2をジョブ実行エージェントCに配信する。図5に示したデータ例は、端末201から通常のスケジュール作成の指示が入力されたとき、ジョブ実行スケジュール作成部203が図4のジョブ定義データに基づいて作成したスケジュールである。図5から分かるように、ここでは日毎に繰り返し実行する同じスケジュールが作成されている。また、図5では省略したが、スケジュール作成時には作成期間も指定でき、2008/2/4以降の日毎のスケジュールも同様に作成されているものとする。
図6は、ジョブ管理マネージャーA101のジョブ履歴データベース209のデータ構造を示す。ジョブ履歴データベース209は、日付601、開始時刻602、終了時刻603、ジョブ名604、および実行エージェント名605の各フィールドを備える。ジョブ実行管理部204は、ジョブ実行エージェントからジョブの終了結果を受け取ると、その結果に応じてジョブ履歴データベース209を更新する。開始時刻602には、実際にジョブが開始した時刻が格納され、終了時刻603には、実際にジョブが終了した時刻が格納される。
図7は、エージェント集約情報データベース210のデータ構造を示す。エージェント集約情報データベース210は、集約先エージェント701、集約元エージェント702、および収集期間703の各フィールドを備える。端末201からエージェント入れ替え時設定処理部205に、ジョブ実行エージェントB102とジョブ実行エージェントC103で行っていたジョブをジョブ実行エージェントD104へ集約する旨の依頼が為されると、エージェント入れ替え時設定処理部205は、集約先エージェント701にジョブ実行エージェントD104を、集約元エージェント702に実行エージェントB102とジョブ実行エージェントC103を、それぞれ格納する。収集期間703には、負荷情報を収集する期間を設定する。
図8は、ジョブ実行エージェントB102とジョブ実行エージェントC103で行っていたジョブをジョブ実行エージェントD104へ集約する指示が端末201から入力されたとき、ジョブ実行スケジュール作成部203により作成されたジョブスケジュールデータベース208のデータ例を示す。ここでは、既にジョブスケジュールデータベース208上に図5のスケジュールが2008/2/11以降についても作成されている状態で、ジョブを集約する上述の指示が入力され、これによりジョブ実行スケジュール作成部203が当該2008/2/11以降のスケジュールを変更した例を示している。
ジョブ実行スケジュール作成部203は、後述する図13の処理により、集約元のコンピュータB102,C103で実行されていたすべてのジョブを集約先のコンピュータD104で段階的に自動代行実行して負荷情報を収集するスケジュールを作成する。このとき、集約先のジョブ実行エージェントでジョブを1個ずつ実行でき、かつ処理量あふれによるリソース不足を発生させないように、スケジューリングする必要がある。
このため、ジョブ実行スケジュール作成部203は、1日毎に、集約先のジョブ実行エージェントが代行する集約元のジョブ実行エージェントを変更してスケジューリングしている。例えば、ジョブ実行スケジュール作成部203は、まず図8の第1日目(2008/2/11)のスケジュールを作成する際には、図5に示した1日分のスケジュールが設定されている2008/2/11のスケジュールデータの実行エージェント名504(804)の値のうち実行エージェントB102をジョブ実行エージェントD104に置き換え(ただし、Job4は後述する理由により置き換えない)、次の第2日目(2008/2/12)のスケジュール作成では、図5に示した1日分のスケジュールが設定されている2008/2/12のスケジュールデータの実行エージェント名504(804)の値のうちジョブ実行エージェントC103をジョブ実行エージェントD102に置き換える。すなわち、第1日目のスケジュール作成では集約先のジョブ実行エージェントD102に置き換える対象を実行エージェントB102とし、第2日目のスケジュール作成では置き換える対象を実行エージェントC103としているものである。
また、集約元の1つのジョブ実行エージェントで複数のジョブが同時に実行されている場合には、それらのジョブを日単位に1個ずつ実行してジョブ単位の負荷情報を取得する必要がある。このため、同時に実行されているジョブについては、集約先のジョブ実行エージェントで日単位に1個ずつ実行するようにスケジュールを変更している。例えば、図5に示した1日分のスケジュールにおいて、Job3とJob4はジョブ実行エージェントB102で同時実行されている。そこで、ジョブ実行スケジュール作成部203は、図8の第1日目(2008/2/11)のスケジュール作成では、Job3の実行エージェント名504(804)の値だけをジョブ実行エージェントD104に置き換えてジョブ実行エージェントD104で実行し、Job4の実行エージェント名504(804)の値は置き換えずにジョブ実行エージェントB102で実行するようにスケジューリングする。また、図8の第3日目(2008/2/13)のスケジュール作成では、Job3の実行エージェント名504(804)の値を置き換えずにジョブ実行エージェントB102で実行し、Job4の実行エージェント名504(804)の値をジョブ実行エージェントD104に置き換えて、ジョブ実行エージェントD104で実行するようにスケジューリングする。
なお、上述したように、ジョブ実行スケジュール作成部203は、第2日目のスケジュール作成では置き換える対象を実行エージェントC103としており、実行エージェントD104で代行する集約元のジョブ実行エージェントがジョブ実行エージェントB102ではないため、第2日目のJob3とJob4についてはジョブ実行エージェントB102で実行するスケジュールを変更しない。第1日目のスケジュール作成において、Job3の実行エージェント名504(804)の値だけをジョブ実行エージェントD104に置き換え、Job4の実行エージェント名504(804)の値は置き換えなかったので、第3日目のスケジュール作成において、Job3の実行エージェント名504(804)の値は置き換えず、Job4の実行エージェント名504(804)の値をジョブ実行エージェントD104に置き換えるスケジュールを作成している。
図9は、ジョブ実行エージェントD104のエージェント負荷情報データベース303のデータ構造を示す。エージェント負荷情報データベース303は、ジョブ名901、開始時刻902、実行時間903、および負荷情報(平均CPU使用率)904の各フィールドを備える。実行時間903は、ジョブ実行エージェントD104によりジョブを実行したときの所要時間の平均値である。負荷情報(平均CPU使用率)904は、ジョブを実行中のCPU使用率の平均値である。これらのデータは、エージェント集約情報データベース210の収集期間703に指定された期間収集して更新され、ジョブ実行マネージャーホストA101に送られ、エージェントの負荷予測データベース211の予測データの作成に使用される。なお、所要時間の平均値やCPU使用率の平均値を算出するために必要な情報は、ジョブ実行エージェントD104で各ジョブを代行実行したときに保持してあるものとする。
図10は、エージェントの負荷予測データベース211のデータ構造を示す。エージェントの負荷予測データベース211は、期間1001、ジョブ名1002、および負荷情報(平均CPU使用率)1003の各フィールドを備える。負荷情報(平均CPU使用率)1003は、エージェント負荷予測データ作成部206が、エージェント集約情報データベース210の収集期間703に指定された期間を経過したときに、ジョブ実行エージェントD104からエージェント負荷情報データベース303の情報を取得して作成・設定する。期間1001は、ジョブの開始と終了ごとに区切るため、ジョブの開始時刻902または開始時刻902と実行時間903から求めたジョブの終了時刻ごとに区切る。ジョブの開始時刻902および実行時間903と負荷情報(平均CPU使用率)904の値から、平均CPU使用率1003を導き出す。負荷情報(平均CPU使用率)1003は、期間1001の間にジョブが実行されていない場合は0%とし、期間1001の間に1個のジョブだけが実行されている場合はそのジョブの負荷情報(平均CPU使用率)904の値を設定し、期間1001の間に複数のジョブが実行されている場合はそれら実行しているジョブの負荷情報(平均CPU使用率)904の値の合計値を設定する。下段に示したイメージ図は、上述した負荷予測データベース211の内容を、横軸に時刻、縦軸にCPU使用率を採って、グラフで表したものである。これらのデータから、2:00〜3:00に平均CPU使用率が100%を超えることが予測される。
図11は、エージェント負荷予測データベース211において、ピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整した後のエージェント負荷予測データである。例えば、エージェント負荷予測データベース211において、100%を超える期間2:00〜3:00は、ピーク時間帯である。期間2:00〜3:00には、Job5とJob6があり、いずれかを移動させる必要があるが、Job5は開始時刻変更可否406が否となっているため、Job6を3:00〜4:00に移動させている。Job6を3:00〜4:00に移動させた本データを元にジョブ定義データベース207を更新する。
図12は、ピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整した後のジョブ管理マネージャーA101のジョブ定義データベース207の値である。図11のピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整した後のエージェントの負荷予測データベースを元にJob6のスケジュール情報404(1204)を開始時刻3:00に変更している。このような調整は、後述する図14の処理により実現される。特に、ステップ1408により図10→図11の調整が行われ、ステップ1410でジョブ定義データベース207の更新が行われる。
図13は、ジョブ実行エージェントB102とジョブ実行エージェントC103で行っていたジョブをジョブ実行エージェントD104へ集約する指示が端末201から入力されたときに、ジョブ実行スケジュール作成部203により実行されるスケジュール作成処理の手順を示す。作成するスケジュールは、集約元のコンピュータで実行されていたすべてのジョブを集約先のコンピュータで段階的に自動代行実行するためのスケジュールである。図13の処理により、例えば図5に示した1日分のスケジュールに基づいて図8のスケジュールが作成される。
ジョブ管理マネージャーA101のジョブ実行スケジュール作成部203は、エージェント集約情報データベース210(図7)から集約先エージェント701と集約元エージェント702の情報を取得する(ステップ1301)。
ジョブ実行スケジュール作成部203は、1日毎に、集約元のジョブ実行エージェントが実行していたジョブを集約先のジョブ実行エージェントで代行して実行するように変更することで、集約先のジョブ実行エージェントでリソース不足が発生することなく、段階的に自動代行実行して負荷情報を収集できるようにする。このため、ジョブスケジュールデータベース208から翌日(集約の指示が入力された日の翌日)以降の1日分の予定を取得し(ステップ1302)、集約先のジョブ実行エージェントでジョブの実行を代行する集約元のジョブ実行エージェントを決定する(ステップ1303)。ステップ1303は、集約元のジョブ実行エージェントのうち、どの実行エージェントを集約先のジョブ実行エージェントに置き換えるかを決定する処理である。
集約元の1つのジョブ実行エージェントで複数のジョブが同時に実行されている場合、集約先のジョブ実行エージェントでは1個ずつジョブを実行して負荷情報を取得する必要がある。このため、ステップ1303で決定した集約元のジョブ実行エージェントのジョブ実行の履歴をジョブ履歴データベース209(図6)から取得し(ステップ1304)、開始時刻602と終了時刻603から同時に実行されているジョブがあるかを確認する(ステップ1305)。同時実行されているジョブがある場合は、それらのジョブのうち1個だけを集約先のジョブ実行エージェントで実行するようにするため、それらの同時実行しているジョブのうち当日に実行する1つのジョブを決定し、その他のジョブを置き換え対象から除く(ステップ1306)。その後、ステップ1306で決定された1つのジョブ(すなわち、前記同時実行しているジョブから、ステップ1306で置き換え対象から除くとされたジョブを除いたもの)の実行先エージェント名504の値を集約先のジョブ実行エージェントに変更する(ステップ1307)。ステップ1305で同時実行しているジョブが無いときは、ステップ1306をスキップし、ステップ1303で決定した集約元のジョブ実行エージェントで当日に実行予定のすべてのジョブの実行先エージェント名504の値を集約先のジョブ実行エージェントに変更する(ステップ1307)。
図5と図8の例で説明すると、以上のステップ1302〜1307の処理により、まず図8の第1日目(2008/2/11)のスケジュールが作成される。具体的には、ステップ1302で、2008/2/11の予定を取得し(この時点では図5の1日分の予定が取得される)、ステップ1303で、集約元のジョブ実行エージェントBを置き換えると決定する。ステップ1304と1305で、ジョブ実行エージェントBで同時実行されているジョブとしてJob3とJob4があるので、ステップ1306で、Job3を置き換えるものと決定しJob4を置き換え対象から除く。結果として、ステップ1307で、Job4を除きジョブ実行エージェントBで実行しているジョブの実行エージェントがジョブ実行エージェントDに置き換えられる。これにより、図8の第1日目のスケジュールが作成される。
次に、収集期間を過ぎるまでのスケジュール作成が済んだか判別する(ステップ1308)。これは、ジョブ実行エージェント名504の値を集約先のジョブ実行エージェントに置き換える処理を、収集期間703に指定された期間の間繰り返すためである。
上述した第1日目(2008/2/11)のスケジュールが作成された後は、ステップ1308からステップ1302に戻って、図8の第2日目(2008/2/12)のスケジュール作成を行う。具体的には、ステップ1302で、2008/2/12の予定を取得し(この時点では図5の1日分の予定が取得される)、ステップ1303で、集約元のジョブ実行エージェントCを置き換えると決定する。なお、ステップ1303では、集約情報データベース210(図7)の集約元エージェント702に登録されている集約元エージェントを1つ1つ順に置き換え対象として決定していくが、そのためには既に置き換え対象として処理済みの集約元エージェントを所定のワーク用記憶領域に記憶しておき、それら処理済みのもの以外の集約元エージェントを置き換え対象としていくものとする。従って、第2日目(2008/2/12)の処理におけるステップ1303では、集約元のジョブ実行エージェントCが置き換え対象とされる。集約元エージェント702に登録されている全ての集約元エージェントを処理したら、再び集約元エージェント702に登録されている全ての集約元エージェントを未処理の状態に戻して置き換えを続けるものとする。
第2日目の処理のステップ1304と1305では、置き換え対象のジョブ実行エージェントCで同時実行されているジョブは無いので、ステップ1307で、ジョブ実行エージェントCで実行している全てのジョブの実行エージェントがジョブ実行エージェントDに置き換えられる。これにより、図8の第2日目のスケジュールが作成される。
第2日目(2008/2/12)のスケジュールが作成された後は、ステップ1308からステップ1302に戻って、図8の第3日目(2008/2/13)のスケジュール作成を行う。具体的には、ステップ1302で、2008/2/13の予定を取得する(この時点では図5の1日分の予定が取得される)。既に第1,2日目の処理で集約元エージェント702に登録されている全ての集約元エージェントB,Cについて処理を終えているから、第3日目のステップ1303では、再び全ての集約元エージェントを未処理の状態に戻して置き換えを続ける。従って、ステップ1303では、実行エージェントBが置き換え対象とされる。
第3日目の処理のステップ1304と1305では、置き換え対象のジョブ実行エージェントBで同時実行されているジョブとしてJob3とJob4があるので、ステップ1306で、Job4を置き換えるものと決定しJob3を置き換え対象から除く。なお、このステップ1306の処理では、ステップ1305で検出された同時実行されているジョブのうち既に前回以前のステップ1305の処理で当日実行するジョブとして決定されたものについては除いて置き換えるジョブを決定するので、Job3とJob4のうち前回(第1日目の処理)のステップ1306で置き換えたJob3ではなく、Job4を置き換えるジョブとして決定している。同時実行されているジョブが3つ以上あった場合も同様であり、順に1つ1つ置き換えるジョブとして決定していく。そのために、ステップ1306で同時実行されているジョブのうち当日実行するジョブとして決定されたものについては所定のワーク用記憶領域に記憶しておくものとする。結果として、第3日目のステップ1307では、Job3を除きジョブ実行エージェントBで実行しているジョブの実行エージェントがジョブ実行エージェントDに置き換えられる。
なお、順次ステップ1306で置き換えるジョブとして決定して処理していくことで、同時実行されているジョブの全てが処理済みになったら、それらの同時実行されているジョブについては未処理の状態に戻して、以降のステップ1306の処理を行っていくものとする。
以上のようにして、ジョブの実行が代行される集約元のジョブ実行エージェントを1日毎に変更し、集約元のジョブ実行エージェントで同時実行していたジョブの中で集約先のジョブ実行エージェントで当日実行する1個のジョブは、集約元ジョブ実行エージェントのジョブを代行実行する日ごとに変更して、集約元エージェント702が指定されたジョブの実行エージェントを集約先の実行エージェントに置き換えたスケジュールを作成する。
図14は、ジョブ管理マネージャーA101のエージェントの負荷予測データからリソース限界となるピーク時間帯を洗い出し、そのピーク時間帯に実行するジョブのうち、開始時刻の変更が可能で期限までに猶予があるジョブの開始時刻を調整することで、処理量あふれによるリソース不足を発生させないようなジョブ定義を作成する処理である。
ジョブ管理マネージャーA101のエージェント負荷予測データ作成部206は、エージェントの負荷予測データベース211(図10)の内容を取得する(ステップ1401)。負荷情報(平均CPU使用率)1003の値が100%を超えている期間1001がないかを確認する(ステップ1402)。全ての期間1001について負荷情報1003が100%以内であれば、現状のジョブ定義データベース207の定義データに基づくスケジュールのジョブ実行エージェントを全て集約先のジョブ実行エージェントに置き換えても問題は無いということであるから、ジョブ定義データベース207の実行エージェント名402の値を集約先のジョブ実行エージェント(ここではジョブ実行エージェントD104)に変更して、終了する(ステップ1410)。
ステップ1402で100%を超える期間1001があれば、その期間1001に対応するジョブ名1002に複数のジョブが指定されているかどうかを確認する(ステップ1403)。複数のジョブが指定されていたら、それらのジョブの定義をジョブ定義データベース207から取得し(ステップ1404)、開始時刻変更可否406が可となっているジョブを探す(ステップ1405)。開始時刻変更可否406が可であるジョブが存在したら、そのジョブの開始時刻をコンピュータの負荷が低くなってから開始するように調整する(ステップ1406)。ジョブの開始時刻を調整した後、そのジョブがジョブ終了期限405に指定された時刻までに終了可能であるかを確認する(ステップ1407)。終了可能であれば、そのジョブの開始時刻を調整した結果で負荷予測データを再作成して(例えば、図10→図11のように再作成する)、エージェントの負荷予測データベース211を更新する(ステップ1408)。次に、再度、負荷情報(平均CPU使用率)1003の値が100%を超えているかを確認する(ステップ1402)。全ての期間1001について負荷情報1003が100%以内であれば、ジョブ定義データベース207の該当ジョブのスケジュールを変更し(上述したジョブの開始時刻の調整を行ったものについては、スケジュール情報404の開始時刻を変更する)、ジョブの実行エージェント名402を集約先のジョブ実行エージェントに変更して、終了する(ステップ1402)。
ステップ1403で複数のジョブが指定されていない場合、ステップ1405で開始時刻が変更可能なジョブが無い場合、および、ステップ1407でジョブ終了期限までに終了できない場合は、何れも、エージェント負荷情報データベース211は更新せず、負荷が高い時間帯が存在することを端末201に通知して終了する(ステップ1409)。なお、負荷が高い時間帯が存在することが端末201に通知された場合には、該当する期間に実行予定のジョブのジョブ定義データベース207のジョブ終了期限405を延ばすなどの対処を行った後、再び集約の指示を出せばよい。
上記の処理でジョブ定義データベース207が更新されたら、端末201から通常のスケジュール作成の指示を入力し、当該ジョブ定義データベース207の内容に基づくジョブスケジュールデータを作成してジョブスケジュールデータベース208に登録し、当該スケジュールに従ってジョブ実行を行えばよい。
なお、上記実施形態では、1日を単位として繰り返す処理について集約する例で説明したが、1日と限らず、任意の期間毎に繰り返す処理を集約する場合も同様である。また、上記実施形態では、図13の処理により負荷情報を収集するスケジュールを作成したが、このようなスケジュールの作成方式はどのようなものでもよい。要するに、集約元ジョブ実行エージェントで実行していた複数のジョブが少なくとも1回は集約先ジョブ実行エージェントで実行されてその負荷情報が取得できるようなスケジュールを作成すればよい。
101:ジョブ管理マネージャーA、102:ジョブ実行エージェントB、103:ジョブ実行エージェントC、104:ジョブ実行エージェントD、105:ネットワーク、201:端末、202:ジョブ定義データベース参照更新部、203:ジョブ実行スケジュール作成部、204:ジョブ実行管理部、205:エージェント入れ替え時設定処理部、206:エージェント負荷予測データ作成部、207:ジョブ定義データベース、208:ジョブスケジュールデータベース、209:ジョブ履歴データベース、210:エージェント集約情報データベース、211:エージェントの負荷予測データベース、301:ジョブ実行部、302:ジョブ実行時の負荷情報収集送信部、303:エージェント負荷情報データベース。

Claims (2)

  1. 所定期間毎に、スケジュールに沿って複数のジョブをジョブ実行エージェントで実行させるジョブ実行管理システムであって、
    複数の集約元ジョブ実行エージェントで実行していた複数のジョブを1つの集約先ジョブ実行エージェントに集約する指示を入力する手段と、
    該集約する指示が入力されたとき、前記複数の集約元ジョブ実行エージェントの中から、前記集約先ジョブ実行エージェントに置き換える1つの集約元ジョブ実行エージェントを決定する手段と、
    決定された1つの集約元ジョブ実行エージェントで実行していたジョブを集約先ジョブ実行エージェントで実行するようにジョブ実行のスケジュールを作成するとともに、前記決定された1つの集約元ジョブ実行エージェントで実行していた複数のジョブのうち同時に実行していたジョブについてはその中の1つのジョブのみを前記集約先ジョブ実行エージェントで実行するようにスケジュールを作成する手段と、
    前記集約先ジョブ実行エージェントに置き換える集約元ジョブ実行エージェントの決定と前記スケジュールの作成を繰り返して、前記複数の集約元ジョブ実行エージェントで実行していた複数のジョブが少なくとも1回は前記集約先ジョブ実行エージェントで実行されるようなジョブの実行スケジュールを生成する手段と、
    前記生成したジョブの実行スケジュールに沿って所定期間の間ジョブの実行を行い、前記集約先のジョブ実行エージェントで実行したジョブに関して負荷情報を収集する手段と
    を備えることを特徴とするジョブ実行管理システム。
  2. 請求項1に記載のジョブ実行管理システムにおいて、さらに、
    前記収集した負荷情報に基づいて、前記集約先ジョブ実行エージェントで実行した場合にリソース枯渇が発生する期間があるかどうかを判定する手段と、
    リソース枯渇が発生する期間があった場合、その期間に実行される複数のジョブのうち開始時刻が変更可能なジョブの開始時刻を調整して、その期間にリソース枯渇が起こらないようにスケジュールを変更する手段と
    を備えることを特徴とするジョブ実行管理システム。
JP2010222914A 2010-09-30 2010-09-30 ジョブ実行管理システム Expired - Fee Related JP5441179B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010222914A JP5441179B2 (ja) 2010-09-30 2010-09-30 ジョブ実行管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010222914A JP5441179B2 (ja) 2010-09-30 2010-09-30 ジョブ実行管理システム

Publications (2)

Publication Number Publication Date
JP2012079038A JP2012079038A (ja) 2012-04-19
JP5441179B2 true JP5441179B2 (ja) 2014-03-12

Family

ID=46239224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010222914A Expired - Fee Related JP5441179B2 (ja) 2010-09-30 2010-09-30 ジョブ実行管理システム

Country Status (1)

Country Link
JP (1) JP5441179B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6241144B2 (ja) * 2013-08-30 2017-12-06 富士通株式会社 制御プログラム、制御方法および制御装置
JP2016071841A (ja) * 2014-09-30 2016-05-09 日本電気株式会社 ジョブ管理装置、ジョブ管理システム、ジョブ管理方法、及びプログラム

Also Published As

Publication number Publication date
JP2012079038A (ja) 2012-04-19

Similar Documents

Publication Publication Date Title
US10558498B2 (en) Method for scheduling data flow task and apparatus
WO2020211579A1 (zh) 一种基于分布式批量处理系统的处理方法、装置及系统
US8793693B2 (en) Apparatus and method for predicting a processing time of a computer
US8869165B2 (en) Integrating flow orchestration and scheduling of jobs and data activities for a batch of workflows over multiple domains subject to constraints
US8087026B2 (en) Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US9471390B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US20080115143A1 (en) Job Execution Method, Job Execution System, and Job Execution Program
US9870269B1 (en) Job allocation in a clustered environment
US20110154353A1 (en) Demand-Driven Workload Scheduling Optimization on Shared Computing Resources
US20060230405A1 (en) Determining and describing available resources and capabilities to match jobs to endpoints
CN107430526B (zh) 用于调度数据处理的方法和节点
KR101770191B1 (ko) 자원 할당 방법 및 그 장치
Pan et al. A novel approach to scheduling workflows upon cloud resources with fluctuating performance
CN112099937A (zh) 一种资源治理方法和装置
Wang et al. Task scheduling for MapReduce in heterogeneous networks
Kang et al. A SLA driven VM auto-scaling method in hybrid cloud environment
JP5441179B2 (ja) ジョブ実行管理システム
CN104156505A (zh) 一种基于用户行为分析的Hadoop集群作业调度方法及装置
JP2009230581A (ja) バッチジョブ制御システム、管理ノード、およびバッチジョブ制御方法
US11088964B1 (en) Service level based priority scheduler for multi-tenancy computing systems
Choi et al. VM auto-scaling methods for high throughput computing on hybrid infrastructure
Ogawa et al. Cloud bursting approach based on predicting requests for business-critical web systems
Muthuvelu et al. An adaptive and parameterized job grouping algorithm for scheduling grid jobs
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131212

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