JP5417626B2 - Management computer, job scheduling method and job scheduling program - Google Patents
Management computer, job scheduling method and job scheduling program Download PDFInfo
- Publication number
- JP5417626B2 JP5417626B2 JP2010105301A JP2010105301A JP5417626B2 JP 5417626 B2 JP5417626 B2 JP 5417626B2 JP 2010105301 A JP2010105301 A JP 2010105301A JP 2010105301 A JP2010105301 A JP 2010105301A JP 5417626 B2 JP5417626 B2 JP 5417626B2
- Authority
- JP
- Japan
- Prior art keywords
- service
- execution
- computer
- job
- assigned
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Description
本発明は、管理計算機、ジョブスケジューリング方法及びジョブスケジューリングプログラムに係り、特に、ジョブの実行をスケジュールする管理計算機、ジョブスケジューリング方法及びジョブスケジューリングプログラムに関する。 The present invention relates to a management computer, a job scheduling method, and a job scheduling program, and more particularly to a management computer, a job scheduling method, and a job scheduling program for scheduling job execution.
従来、バッチジョブは、メインフレーム、又は少数台の計算機等、事前に構成された計算機上でジョブスケジューリングされ、実行されていた。このため、バッチジョブに含まれるサービスの割り当て及びジョブ終了時間の見積もりは、事前に設計可能であった。 Conventionally, a batch job has been scheduled and executed on a pre-configured computer such as a mainframe or a small number of computers. For this reason, the allocation of services included in the batch job and the estimation of the job end time can be designed in advance.
近年の計算機の高速化、及びネットワークの高速化などに伴い、サーバの仮想化又は並列分散による処理が増加している。このようにサーバの仮想化又は並列分散が実装された環境における処理は、従来に比べて多くの物理計算機、又は仮想計算機を用いたクラスタシステムによって実行される。このようなクラスタシステムにおいて処理可能な計算機の構成は、台数の増減、及びリソース使用量の増減といった要因によって変化するため、クラスタシステムにおいてバッチジョブをスケジューリングする際にサービスの割り当てを手動で設定するのは従来に比べて困難となる。 With recent increases in computer speed and network speed, processing by server virtualization or parallel distribution is increasing. Processing in an environment in which server virtualization or parallel distribution is implemented in this way is executed by a cluster system using more physical computers or virtual computers than in the past. Since the configuration of computers that can be processed in such a cluster system changes depending on factors such as increase / decrease in the number of units and increase / decrease in resource usage, service allocation is manually set when scheduling batch jobs in the cluster system. Becomes more difficult than in the past.
そこで、クラスタシステムにおいてジョブを実行し、計算機が障害になった場合又は計算機の性能が低下した場合、あらかじめ用意した計算機を含むプール領域から代替計算機を割り当てて処理を続行する技術が開示されている(例えば、特許文献1参照)。特許文献1に開示された技術では、代替計算機をスタンバイプール、ベアメタルプール、及び、共用プールに分類し、障害からの回復や負荷変動へ高速に対応する方法を提案されている。
Therefore, a technique is disclosed in which a job is executed in a cluster system, and when a computer fails or the performance of the computer decreases, a replacement computer is allocated from a pool area including a computer prepared in advance and processing is continued. (For example, refer to Patent Document 1). In the technique disclosed in
また、過去のジョブ実行履歴情報からジョブの実行時間を求め、ジョブスケジュール案を提供する技術が開示されている(例えば、特許文献2参照)。特許文献2に開示された技術によって、ジョブ多重度増減などのパラメタ情報によって各ジョブの実行シミュレーションを行い、ジョブスケジューリングを解析する方法が提案されている。 Further, a technique for obtaining a job schedule plan by obtaining a job execution time from past job execution history information is disclosed (for example, refer to Patent Document 2). According to the technique disclosed in Patent Document 2, a method has been proposed in which job execution simulation is performed based on parameter information such as job multiplicity increase / decrease and job scheduling is analyzed.
しかし、特許文献1に開示された技術は、ジョブが実行中に障害が発生した場合、代替のための計算機に、障害によって中断されていたサービスを割り当てて処理を続行する。このため、特許文献1に開示された技術を用いた場合、ジョブ実行前に予定されていたジョブ終了時間を超過する可能性がある。
However, in the technique disclosed in
また、特許文献2に開示された技術は、短時間でバッチジョブが完了するように、ジョブを並列実行して効率のよいジョブスケジュールを生成するが、ジョブ実行中に計算機に障害が発生した場合について考慮されていない。このため、特許文献2に開示された技術を用いた場合、障害が発生した場合、ジョブ実行前に予定されていたジョブ終了時間を超過する可能性がある。 In addition, the technique disclosed in Patent Document 2 generates an efficient job schedule by executing jobs in parallel so that batch jobs can be completed in a short time, but when a computer failure occurs during job execution Is not considered. For this reason, when the technique disclosed in Patent Document 2 is used, if a failure occurs, there is a possibility that the job end time scheduled before the job execution will be exceeded.
本発明の目的は、ジョブ実行中に計算機において、障害等による想定外なシステム停止が発生しても、事前に予定されたジョブ終了時間を満たすように、ジョブをスケジューリングする手段を提供する。 An object of the present invention is to provide means for scheduling a job so that a job end time scheduled in advance is satisfied even if an unexpected system stoppage due to a failure or the like occurs in a computer during job execution.
本発明の代表的な一形態によると、複数のジョブを処理する一つ以上の実行計算機と、前記一つ以上の実行計算機と接続され、前記複数のジョブを前記一つ以上の実行計算機に割り当てる管理計算機であって、前記各ジョブは、複数のサービスを含み、前記サービスは、前記実行計算機によって処理されるプログラムモジュールを含み、前記管理計算機は、所定の係数と、前記各ジョブの終了時間とを取得し、前記取得された所定の係数が示す回数分実行されるように、前記各サービスを前記実行計算機に割り当て、前記各サービスが前記実行計算機によって処理されている間に、前記サービスが割り当てられた前記実行計算機において障害が発生した場合、前記割り当てられたサービスを、前記実行計算機によって再度処理させる。 According to an exemplary embodiment of the present invention, one or more execution computers that process a plurality of jobs and the one or more execution computers are connected, and the plurality of jobs are assigned to the one or more execution computers. Each job includes a plurality of services, and the service includes a program module processed by the execution computer. The management computer includes a predetermined coefficient, an end time of each job, and And each service is assigned to the execution computer so that the service is executed as many times as indicated by the obtained predetermined coefficient, and the service is assigned while each service is being processed by the execution computer. If a failure occurs in the assigned execution computer, the assigned service is processed again by the execution computer.
本発明の一実施形態によると、ジョブ実行中に計算機に想定外なシステム停止が発生した場合でも、計算機リソースを有効利用しながら、ジョブの終了時間を見積もることができる。 According to an embodiment of the present invention, even when an unexpected system stoppage occurs in a computer during job execution, the job end time can be estimated while effectively using computer resources.
以下、本発明の実施の形態を、図面を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明の第1の実施形態のクラスタシステムの構成を示すブロック図である。 FIG. 1 is a block diagram showing the configuration of the cluster system according to the first embodiment of this invention.
本発明のクラスタシステムは、スケジュール管理計算機11、複数の実行計算機10−1〜10−n(nは任意の正の数)、及び処理データ141を格納するディスク装置を備える。なお、実行計算機10−1〜10−nを総称して、実行計算機10と記載する。
The cluster system of the present invention includes a schedule management computer 11, a plurality of execution computers 10-1 to 10-n (n is an arbitrary positive number), and a disk device that stores processing
本発明のクラスタシステムにおいてジョブスケジューリングする場合、スケジュール管理計算機11は、入力値101を入力される。入力値101は、入力データ量102、ジョブ終了時間103、及び障害安全係数104を含む。
When job scheduling is performed in the cluster system of the present invention, the schedule management computer 11 receives an
入力データ量102は、ジョブが処理する入力データの量である。入力データの量は、ジョブ実行時間が増減する要因となる値である。入力データの量以外の要因によって、ジョブの処理時間が増減する場合、入力値101には、ジョブの処理時間を増減する要因を数値化した値が保持されてもよい。また、入力値101がジョブに含まれるサービス毎に異なる場合、入力値101は、入力データ量102をサービス毎に複数保持してもよい。なおサービスとは、ジョブに含まれる実行単位である。サービスについては詳細を後述する。
The
ジョブ終了時間103は、ジョブ及びジョブに含まれるすべてのサービスが終了すべき時間を示す時間である。ジョブ及びジョブに含まれるサービスは、ジョブ終了時間103が示す終了時間を超過しないようにスケジューリングされる。
The
障害安全係数104は、0以上の整数値であり、ジョブが実行される間に、実行計算機10において障害が発生した場合においても、ジョブ終了時間103を満たすことができる、ジョブの再実行回数を示す。すなわち、障害安全係数104をnとした場合、ジョブ実行中に実行計算機10にn回障害が発生した場合においても、ジョブ終了時間103を超過しないようにジョブがスケジューリングされる。
The
障害安全係数104は、ジョブの重要度、又は、ジョブに含まれるサービスを実行するための実行計算機10の稼働率などに従って、ユーザ又はシステムによって値を指定されてもよい。また、システムにおける固定値として保持されてもよい。
The
例えばユーザは、必ず実行される必要があるジョブには、障害安全係数104に高い値を指定する。これによって、高い値を指定されたジョブは、実行中に障害が発生しても、障害安全係数104の値分繰り返して実行される。
For example, the user designates a high value for the
ジョブの重要度に従って障害安全係数104を判定する方法には、ジョブに含まれるサービスが、データを参照するサービス、又は、重要度の低いデータを更新するサービスでしかなく、ジョブの実行を中断しても後続ジョブの動作に影響を与えないようなサービスである場合、障害安全係数104が低く指定される方法がある。また、この方法を用いた場合、重要度の高いデータを更新するサービス、又は、ジョブを中断すると後続ジョブの動作に影響を与えるようなサービスには、障害安全係数104が高く指定される。
In the method of determining the
実行計算機10の稼働率に従って障害安全係数104を判定する方法は、過去のシステム停止発生件数、実行計算機の稼働年数、又は、ハードウェア構成などの情報に基づいて、システム停止の可能性が高いと判定された実行計算機10を備えるクラスタシステムには、障害安全係数104を高く指定するという方法である。
The method for determining the
スケジュール管理計算機11は、ジョブ受付部111、ジョブスケジューリング部112、実行指示部113、及び、統計情報管理部114を備える。
The schedule management computer 11 includes a
ジョブ受付部111は、ユーザ等から前述の入力値101をスケジュール管理計算機11に入力するためのインターフェースである。ジョブスケジューリング部112は、入力された入力値101と統計情報管理テーブル132のデータとに基づいて、ジョブをスケジューリングする。そして、ジョブをスケジューリングした結果を、スケジュール管理テーブル131に格納する。
The
実行指示部113は、スケジュール管理テーブル131に格納されたデータに基づいて、実行計算機10−1〜10−nにサービスのデプロイ及びサービスの実行を指示する。
The
実行計算機10−1〜10−nは、サービスデプロイ部121、サービス実行部122、統計情報転送部123を備える。
The execution computers 10-1 to 10-n include a
サービスデプロイ部121は、実行指示部113から受けた指示に従って、サービスを計算機上にデプロイする。デプロイとは、サービスが用いるアプリケーションのローディング、及び、アプリケーションの各種設定を行い、サービスを実行可能な状態に、実行計算機10を構築するための処理である。
The
サービス実行部122は、実行指示部113から受けた指示に従って、処理データ141を参照及び更新しながら、サービスを実行する。統計情報転送部123は、サービスデプロイ部121及びサービス実行部122において、サービスを実行するために経過した時間を、統計情報管理部114に転送する。
The
統計情報管理部114は、統計情報転送部123から転送された、サービスデプロイ部121において経過した時間及びサービス実行部122において経過した時間を、統計情報管理テーブル132に格納する。
The statistical
スケジュール管理計算機11は、実行中の実行計算機10−1〜10−nに障害が発生した場合、障害を検出する手段を備える。障害を検出する手段は、サービスのデプロイ、又は、サービスの実行終了の時刻までに、統計情報管理部114に統計情報が転送されないことを契機として、障害を検出する方法であってもよい。また、実行指示部113の通信が途絶えることを契機として障害を検出する方法であってもよい。また、前記以外の別の通信によって直接あるいは間接的に監視する方法を用いてもよい。
The schedule management computer 11 includes means for detecting a failure when a failure occurs in the running execution computers 10-1 to 10-n. The means for detecting a failure may be a method for detecting a failure when the statistical information is not transferred to the statistical
図2は、本発明の第1の実施形態のスケジュール管理計算機11のハードウェアの構成を示すブロック図である。 FIG. 2 is a block diagram illustrating a hardware configuration of the schedule management computer 11 according to the first embodiment of this invention.
スケジュール管理計算機11は、CPU21、ディスプレイ装置22、キーボード23、マウス24、ネットワークインタフェースカード(NIC)25、ハードディスク26及びメモリ27を備える。CPU21、ディスプレイ装置22、キーボード23、マウス24、NIC25、ハードディスク26及びメモリ27は、バス28によって接続される。
The schedule management computer 11 includes a
スケジュール管理計算機11は、NIC25を介してネットワークに接続され、実行計算機10及び他のスケジュール管理計算機11と相互に通信する。ネットワークは、LAN、WANなどいずれのネットワークでもよい。
The schedule management computer 11 is connected to the network via the
CPU21は、メモリ27に記憶されたプログラムを実行する。メモリ27は、CPU21によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。メモリ27には、オペレーティングシステム30、スケジューリング制御プログラム91、ジョブ受付部111、ジョブスケジューリング部112、実行指示部113、統計情報管理部114、スケジュール管理テーブル131及び統計情報管理テーブル132などのプログラムが格納される。
The
スケジューリング制御プログラム91は、オペレーティングシステム30上で実行されるプログラムである。ジョブ受付部111、ジョブスケジューリング部112、実行指示部113及び統計情報管理部114は、スケジューリング制御プログラム91によって呼び出されるプログラムである。ジョブ受付部111、ジョブスケジューリング部112、実行指示部113及び統計情報管理部114は、図1において説明した処理を実行する。
The
スケジュール管理テーブル131には、図1において説明したように、ジョブのスケジュールに関する情報が格納される。統計情報管理テーブル132は、図1において説明したように、サービスのデプロイ時間及び実行時間に関する情報が格納される。 As described with reference to FIG. 1, the schedule management table 131 stores information related to job schedules. As described with reference to FIG. 1, the statistical information management table 132 stores information related to service deployment time and execution time.
ディスプレイ装置22は、業務処理の実行結果、すなわちジョブの実行結果などの各種情報を表示する。キーボード23及びマウス24は、利用者が入力値101を入力する際に、利用者によって用いられる装置である。
The
NIC25は、スケジュール管理計算機11がネットワークに接続するためのインターフェースである。ハードディスク26は、メモリ27に格納される処理データ、及び、メモリ27にロードされるプログラムなどが格納される。
The
スケジュール管理計算機11は、仮想計算機上で実行されるプログラムによって実装されてもよい。 The schedule management computer 11 may be implemented by a program executed on the virtual computer.
図3は、本発明の第1の実施形態の実行計算機10−1〜10−nのハードウェアの構成を示すブロック図である。 FIG. 3 is a block diagram illustrating a hardware configuration of the execution computers 10-1 to 10-n according to the first embodiment of this invention.
実行計算機10−1〜10−nは、図2において説明したスケジュール管理計算機11のハードウェア構成と同様なハードウェアを備える。実行計算機10のCPU31、ディスプレイ装置32、キーボード33、マウス34、ネットワークインタフェースカード(NIC)35、ハードディスク36及びメモリ37は、スケジュール管理計算機11のCPU21、ディスプレイ装置22、キーボード23、マウス24、NIC25、ハードディスク26及びメモリ27と同じ装置である。
The execution computers 10-1 to 10-n include hardware similar to the hardware configuration of the schedule management computer 11 described in FIG. The
ただし、実行計算機10に備わるメモリ37には、オペレーティングシステム30、実行制御プログラム92、サービスデプロイ部121、サービス実行部122、統計情報転送部123及びサービス99が格納される。
However, the
実行制御プログラム92は、オペレーティングシステム30上で実行されるプログラムである。サービスデプロイ部121、サービス実行部122、及び、統計情報転送部123は、実行制御プログラム92によって呼び出されるプログラムである。サービスデプロイ部121、サービス実行部122、及び、統計情報転送部123は、図1において説明した処理を実行する。サービス99は、サービスデプロイ部121によってメモリ27上に複数格納されるプログラムであり、サービス実行部122の指示によって実行される。
The
実行計算機10−1〜10−nは、仮想計算機上で実行されるプログラムによって実装されてもよい。 The execution computers 10-1 to 10-n may be implemented by a program executed on the virtual computer.
図4は、本発明の第1の実施形態のスケジュール管理テーブル131の構成を示す説明図である。 FIG. 4 is an explanatory diagram illustrating a configuration of the schedule management table 131 according to the first embodiment of this invention.
スケジュール管理テーブル131は、各実行計算機10において実行されるサービスデプロイ処理及びサービス実行処理の、開始時刻と終了時刻とを各々保持する。サービスデプロイ処理及びサービス実行処理は、ジョブスケジューリング部112によってスケジューリングされる。
The schedule management table 131 holds the start time and the end time of the service deployment process and the service execution process executed on each
スケジュール管理テーブル131は、実行計算機名131−1、開始時刻131−2、終了時刻131−3、処理内容131−4、及び、対象処理131−5を含む。実行計算機名131−1は、サービス99が実行される実行計算機10を一意に示す名称が格納される。
The schedule management table 131 includes an execution computer name 131-1, a start time 131-2, an end time 131-3, a process content 131-4, and a target process 131-5. The execution computer name 131-1 stores a name that uniquely indicates the
開始時刻131−2は、実行計算機名131−1に示される実行計算機10においてサービス99が開始される時刻を示す。終了時刻131−3は、実行計算機名131−1に示される実行計算機10においてサービス99が終了する時刻を示す。
The start time 131-2 indicates a time at which the
処理内容131−4は、サービス99が処理される内容を示し、「デプロイ」又は「処理実行」の二つの内容を保持する。対象処理131−5は、処理されるサービス99を一意に示す名称が格納される。
The processing content 131-4 indicates the content to be processed by the
図4に示すスケジュール管理テーブル131は、全ての実行計算機10におけるサービス99を、一つのテーブルによって管理する場合の、テーブル例である。なお、サービス99は、実行計算機10毎に分けられたテーブルによって、管理されてもよい。
The schedule management table 131 shown in FIG. 4 is a table example when the
図5は、本発明の第1の実施形態の統計情報管理テーブル132の構成を示す説明図である。 FIG. 5 is an explanatory diagram illustrating a configuration of the statistical information management table 132 according to the first embodiment of this invention.
統計情報管理テーブル132によって、各サービス99のデプロイ時間及び実行時間の履歴情報が管理される。統計情報管理テーブル132は、サービス名132−1、デプロイ時間132−2、及び、実行時間132−3を含む。各実行計算機10の統計情報転送部123は、サービス99が実行された後、デプロイ処理に要した時間、及び実行処理に要した時間を、統計情報管理部114に送信し、統計情報管理部114によって統計情報管理テーブル132が更新される。
The statistical information management table 132 manages the history information of the deployment time and execution time of each
サービス名132−1は、処理されるサービス99を一意に示す名称である。デプロイ時間132−2は、サービス名132−1が示すサービス99がデプロイに要する時間を示す。実行時間132−3は、サービス名132−1が示すサービス99が実行されるために要する時間を示す。
The service name 132-1 is a name that uniquely indicates the
統計情報管理テーブル132は、図1において説明したとおり、サービスデプロイ部121によってサービス99がデプロイされた時間(デプロイ時間132−2)、及び、サービス実行部122によってサービス99が実行された時間(実行時間132−3)の履歴情報を保持する。統計情報管理テーブル132は、前述のとおり統計情報管理部113によって値が格納される。また、統計情報管理部113は、統計情報転送部123から転送されたジョブ98の実行結果に基づいて、統計情報管理テーブル132に格納する値を算出する。
As described in FIG. 1, the statistical information management table 132 includes the time when the
統計情報管理テーブル132のデプロイ時間132−2及び実行時間132−3は、入力データ量102によって比例して増減する。このため統計情報管理テーブル132は、実行済みのジョブ98の入力データ量102を”100”とすることによって、ジョブ98に含まれるサービス99が、デプロイ処理に要した時間及び実行処理に要した時間を、相対時間に変換し、変換された各々の時間をデプロイ時間132−2及び実行時間132−3に格納する。
The deployment time 132-2 and the execution time 132-3 of the statistical information management table 132 increase and decrease in proportion to the
例えば、実行されたジョブ98の入力データ量102が400(バイト)であり、ジョブ98に含まれるサービスAのデプロイ処理に要した時間が40(分)であった場合、デプロイ時間132−2には「10」が格納される。
For example, if the input data amount 102 of the executed
入力データ量102以外の要因によって、サービスの処理時間が増減する場合は、当該要因を数値化した値に基づいて相対時間を算出し、算出された相対時間を統計情報管理テーブル132に格納してもよい。また、統計情報管理テーブル132に格納する時間は、過去の履歴情報における最大値を格納してもよい。
When the service processing time increases or decreases due to a factor other than the
この場合、初回実行時は履歴情報が存在しないため、本発明によるジョブスケジューリングを行わずに各サービスのデプロイ及び実行を、手動で起動することによって、あらかじめデプロイ時間132−2及び実行時間132−3に値を格納する。 In this case, since there is no history information at the time of the first execution, the deployment time 132-2 and the execution time 132-3 are previously started by manually starting the deployment and execution of each service without performing job scheduling according to the present invention. Store the value in.
図6は、本発明の第1の実施形態のジョブ98及びサービス99の関係の例を示す説明図である。
FIG. 6 is an explanatory diagram illustrating an example of a relationship between the
サービス99は、ジョブ98を構成する実行単位であり、ジョブ98は、一つ以上のサービス99を含む。図中の矢印は、サービス99の依存関係であり、後続のサービス99を実行する前に、先行するサービス99を実行する必要があることを示す。例えば、サービス99Aは、サービス99B、サービス99C、及び、サービス99Eよりも先行して実行され、サービス99B、サービス99C、及び、サービス99Eは、サービス99Aが実行された後に、実行される。
The
また、各サービス99の実行前には、そのサービス99がデプロイされている必要がある。すなわち、サービス99Bが実行される前には、サービス99Bがデプロイされている必要がある。
In addition, before each
ジョブ98の依存関係に対応するため、サービス99は、サービス99の実行順序に対応した情報を各々保持する。サービス99が保持する実行順序は、例えば、図6に示すように所定の命名ルールによって生成されたサービス99を一意に示す識別子によって、示されてもよい。識別子の命名ルールによってサービス99の実行順序を示す場合、サービス名の末尾に英文字(A−Z)の識別子を付与する。
In order to correspond to the dependency relationship of the
例えば識別子は、英文字の先頭文字Aから付与され、あるサービス99に先行するサービス99がある場合、識別子は、先行するサービス99に付与した英文字よりも後となる英文字が付与される。ジョブ98に含まれるサービル99のうち、最後に実行されるサービス99は、サービス99中で一番後となる英文字を識別子として付与される。図6ではサービス99A〜99Fの6つのサービス99が、一つのジョブ98に含まれる例を示す。
For example, the identifier is given from the first letter A of English letters, and when there is a
図6に示すジョブ98を実行計算機10−1〜10−n上で実行する場合、まずサービス99Aを実行する。そして、サービス99A実行終了後、サービス99B、サービス99C、及び、サービス99Eを実行する。サービス99B、サービス99C、及び、サービス99Eの実行順序は問わない。
When the
またサービス99は、複数の実行計算機10上で並列に実行されてもよい。例えば、サービス99B及びサービス99Cの処理内容に関連がなく、別々の実行計算機10によって並列に実行されてもよい場合、ジョブスケジューリング112は、サービス99B及びサービス99Cを別々の実行計算機10にスケジューリングする。
The
サービス99B、サービス99Cの実行終了後、サービス99Dを実行する。サービス99D、サービス99Eの実行終了後、サービス99Fを実行する。サービス99Fの実行終了をもってジョブ98が終了する。
After the execution of the
図7は、本発明の第1の実施形態のジョブスケジューリング部112によるジョブスケジューリング処理401の手順を示す説明図である。
FIG. 7 is an explanatory diagram illustrating a procedure of
CPU21は、ジョブ受付部111が実行するべきジョブ98を受け付けた場合、ジョブスケジューリング部112によって、図7に示す処理を行う。
When the
CPU21は、各実行計算機10のメモリ27の空き容量及びCPU21の使用状況などに基づいて、ジョブスケジューリング可能な実行計算機10が存在するか否かを判定する(ステップ402)。ジョブスケジューリング可能な実行計算機10が1台もないと判定された場合、CPU21は実行不可と判定し、ジョブスケジューリング処理401を終了する。
The
CPU21は、ステップ402においてジョブスケジューリング可能と判定された実行計算機10に、サービスのデプロイ処理及び処理実行の組を割り当て、各実行計算機10に対応するスケジュール管理テーブル131を更新する(ステップ405)。デプロイ処理及び実行処理のために要する時間は、統計情報管理テーブル132に格納された値に入力データ量102の相対値を掛け合わせることによって算出される。
The
CPU21は、障害安全係数104の値に1を加算した値分、ステップ405の処理を、繰り返し実行する(ステップ404)。そして、ステップ404の処理によって、デプロイ処理及び実行処理の組を、同一実行計算機10に複数回割り当てる。障害安全係数104の値に1を加算する理由は、最初の1回目の処理回数を加算するためである。
The
またCPU21は、ジョブ98を構成するサービス99の実行順序毎に、ステップ404における繰り返し処理を、繰り返し実行する(ステップ403)。ステップ403の処理によって、各サービス99のデプロイ処理及び実行処理の複数の組を、同一実行計算機10に割り当てる。
Further, the
CPU21は、サービス99を割り当てた各実行計算機10において、ジョブ98の終了予定時刻がジョブ終了時間103を超過するか否かを判定する(ステップ406)。超過していない場合は、実行可能と判定し、ジョブスケジューリング処理401を終了する。
The
その後、CPU21は、実行指示部113によって、スケジューリングされたサービス99を各実行計算機10に送信する。そして、実行計算機10におけるサービスデプロイ部121及びサービス実行部122は、スケジュール管理計算機11から送信されたサービス99を実行する。
Thereafter, the
ステップ406において超過すると判定された場合、CPU21は、後述するサービス振り分け処理を実施する(ステップ407)。ステップ407は、図8にて詳細に説明する。
If it is determined in
その後CPU21は、ステップ407の処理において振り分け可能であるか否かを判定し(ステップ408)、振り分け可能であると判定された場合、ステップ406の処理に戻る。振り分け不可であると判定された場合、実行不可と判定し、ジョブスケジューリング処理401を終了する。
Thereafter, the
なお、ステップ406においてCPU21は、ジョブ98の終了予定時刻がジョブ終了時間103以下になった場合に、実行可能と判定するため、不要な実行計算機10にサービス99を振り分けることがない。このため本実施形態のスケジュール管理計算機11は、実行計算機10のリソースを最低限に抑えつつ、サービス99を振り分けることができる。
In
図8は、本発明の第1の実施形態のジョブスケジューリング部112によるサービス振り分け処理407の手順を示す説明図である。
FIG. 8 is an explanatory diagram illustrating a procedure of the
CPU21は、ジョブ98の終了予定時刻がジョブ終了時間103を超過すると判定された実行計算機10を1台選択する(ステップ421)。そして、選択された実行計算機10に、後述する処理を実行する。
The
CPU21は、ステップ421において選択された実行計算機10に振り分けられたサービス99毎に、ステップ423〜ステップ425の処理を繰り返す(ステップ422)。
The
同一サービス99に割り当てられたデプロイ処理及び実行処理が、2以上か否か判定する(ステップ423)。そして、同一サービス99に2以上のデプロイ処理及び実行処理が割り当てられている場合、CPU21は、振り分け対象として当該サービス99を仮選択する(ステップ425)。
It is determined whether or not the deployment process and the execution process assigned to the
また、図6で説明したとおり、サービス99を別実行計算機10上で並列に実行可能か否かを判定する(ステップ424)。なおサービス99には、並列に実行可能であるか否かを示す情報があらかじめ含まれている。サービス99が並列に実行可能な場合、CPU21は、並列に実行可能なサービス99を、振り分け対象として仮選択する(ステップ425)。
Further, as described with reference to FIG. 6, it is determined whether or not the
その後CPU21は、振り分け対象として仮選択したサービス99があるか否かを判定する(ステップ426)。そして、仮選択したサービス99がないと判定した場合、振り分け不可と判定し、サービス振り分け処理407を終了する。
Thereafter, the
CPU21は、仮選択したサービス99のうち、サービス99のデプロイ処理及び実行処理の合計時間が最大のサービス99を、振り分け対象サービス99として選択する(ステップ427)。そして別実行計算機10のうち、実行計算機10においてサービス99が実行された後の時間帯に、選択された振り分け対象サービス99を割り当て可能な実行計算機10が存在するか否かを判定する(ステップ428)。
The
ステップ428において、振り分け対象サービス99を振り分ける別の実行計算機10が存在しない場合、CPU21は、振り分け不可と判定し、サービス振り分け処理407を終了する。
In
ステップ428において、振り分け対象サービス99を振り分ける別の実行計算機10が存在する場合、CPU21は、ステップ425において選択された振り分け対象サービス99のデプロイ処理及び実行処理を、ステップ428において判定された実行計算機10に、割り当て直し、スケジュール管理テーブル131を更新する(ステップ429)。そして、振り分け可能と判定し、サービス振り分け処理407を終了する。
If there is another
図9Aは、本発明の第1の実施形態のジョブスケジューリング処理のサービス99の具体例を示す説明図である。
FIG. 9A is an explanatory diagram illustrating a specific example of the
後述するケース1及びケース2におけるジョブ98は、サービス99A、サービス99B、サービス99C及びサービス99Dを含む。サービス99Aは、サービス99B及びサービス99Cに先行して実行され、サービス99B及びサービス99Cは、サービス99Aの実行が終了した後に実行される。サービス99Dは、サービス99B及びサービス99Cに後続して実行され、サービス99B及びサービス99Cは、サービス99Dに先行して実行される。
A
また、サービス99B及びサービス99Cは、お互いに並列に実行可能である。さらに、サービスA及びサービスDは、自らのサービスA及びサービスDと並行に実行可能である。
Further, the
図9Bは、本発明の第1の実施形態の統計情報管理テーブル132の具体例を示す説明図である。 FIG. 9B is an explanatory diagram illustrating a specific example of the statistical information management table 132 according to the first embodiment of this invention.
統計情報管理テーブル132は、図9Aに示す各サービス99のデプロイ時間132−2及び実行時間132−3を、入力データ量102に対する相対時間として保持する。図9Bに示す統計情報管理テーブル132は、サービス99A、サービス99B、サービス99C及びサービス99Dのデプロイ時間132−2及び実行時間132−3を保持する。
The statistical information management table 132 holds the deployment time 132-2 and execution time 132-3 of each
図10Aは、本発明の第1の実施形態のケース1における入力値101の具体例を示す説明図である。
FIG. 10A is an explanatory diagram illustrating a specific example of the
ケース1におけるジョブ98の実行開始時刻は、2:00であり、ジョブ終了時間103の値は、単位が分である。また、図10Aに示すケース1における入力値101は、入力データ量102が100であり、ジョブ終了時間103が130(分)であり、障害安全係数104が1である。
The execution start time of the
図10Bは、本発明の第1の実施形態のケース1におけるジョブスケジューリング結果を示す説明図である。
FIG. 10B is an explanatory diagram illustrating a job scheduling result in
図10Bは、実行計算機10−1へ割り当てられたサービス99を示す。また、図10Bは、ジョブスケジューリング部112が、図9Aに示すジョブ98、図9Bに示す統計情報管理テーブル132及び図10Aに示す入力値101に基づいて、実行計算機10−1においてサービス99A〜サービス99Dをスケジューリングした結果を示す。図10Bにおいて、「Aデ」は、「サービスAのデプロイ処理」を示し、「A実」は、「サービスAの実行処理」を示す。
FIG. 10B shows the
ケース1におけるCPU21は、図7に示すステップ403〜405において、障害安全係数104「1」に1を加算して「2」を取得する。そして、各サービス99のデプロイ処理及び実行処理を2回ずつ割り当てる。また、ステップ406において、ジョブ終了予定時間が、ジョブ終了時間103よりも小さいと判定し、ジョブスケジューリング処理を終了する。
In
図10Cは、本発明の第1の実施形態のケース1におけるスケジュール管理テーブルを示す説明図である。
FIG. 10C is an explanatory diagram illustrating a schedule management table in
ジョブスケジューリング部112は、図10Bに示すスケジュール結果を、スケジュール管理テーブル131に格納する。図10Cに示す実行計算機名131−1の値は、すべて実行計算機10−1である。CPU21は、図10Cに示すスケジュール管理テーブル131によって、各実行計算機10にサービス99を割り当てる。そして実行計算機10−1は、割り当てられたサービス99終了後、処理結果を処理データ141に送信する。
The
ケース1におけるCPU21は、図9Aに示すジョブ98と、図10Aに示す入力値101を受信した場合、統計情報管理テーブル132の情報に従って、図10Bに示すタイムスケジュールのようにジョブ98をスケジュールする。ケース1におけるCPU21は、図7に示すステップ406において、1台の実行計算機10−1において120分以内に、ジョブ98を実行可能と判定する。このため、ケース1におけるジョブ98は、すべて1台の実行計算機10−1においてスケジュールされる。
When receiving the
図10Bにおいて示すタイムチャートにおける各サービス99のデプロイ処理及び実行処理の開始時刻131−2、終了時刻131−3は、スケジュール管理テーブル131に格納される。CPU21は、入力値101の障害安全係数104に基づいて、実行計算機10−1において全てのサービス99のデプロイ処理及び実行処理を、2回ずつスケジューリングする。このため、スケジュール管理テーブル131には、すべてのサービス99のデプロイ処理及び実行処理の組が二つずつ格納される。
The start time 131-2 and end time 131-3 of the deployment process and execution process of each
ジョブ98が実行され、サービス99が正常に実行された場合、複数回スケジューリングされたサービス99のデプロイ処理及び実行処理は、スキップされ、実行されない。また、ジョブ98が実行され、サービス99のデプロイ処理時又は実行処理時に障害が発生した場合、CPU21は、障害が発生した旨を検知し、障害の要因に従って、処理を継続する実行計算機10を選択する。
When the
障害の要因がサービス99のソフトウェア障害等であり、実行制御プログラム92が処理可能な場合、CPU21は、同一実行計算機10において再度サービス99のデプロイ処理及び実行処理を実行させる。
When the cause of the failure is a software failure of the
障害の要因が実行計算機10におけるハードウェア障害又はネットワーク障害等であり、実行制御プログラム92が処理不可能な場合、CPU21は、直ちに別の実行計算機10に残りのサービス99のスケジュールを割り当て直し、処理を続行させる。残りのサービス99を新たに割り当てられた実行計算機10は、障害の発生した実行計算機10において実行されていたサービス99のデプロイ処理から実行する。
If the cause of the failure is a hardware failure or a network failure in the
これによって、CPU21は、ジョブ98実行中に障害安全係数104によって指定された数である、「1」回の障害が発生した場合においても、ジョブ終了時間103の130分以内にジョブを終了可能である。
As a result, the
ケース2は、ケース1と異なり、ジョブ終了時間103が75分である場合、ジョブスケジューリング部112によってスケジューリングされた各実行計算機10へのサービス99の割り当てを示す。
Case 2 is different from
図11Aは、本発明の第1の実施形態のケース2における入力値101の具体例を示す説明図である。
FIG. 11A is an explanatory diagram illustrating a specific example of the
ケース2の入力値101は、入力データ量102が100であり、ジョブ終了時間103が75(分)であり、障害安全係数104が1である。
In the
ケース2におけるCPU21は、図7に示す406においてジョブ終了予定時刻が、ジョブ終了時間103よりも多いため、図8に示すサービス振り分け処理を行う。
The
図11Bは、本発明の第1の実施形態のケース2におけるジョブスケジューリング結果を示す説明図である。 FIG. 11B is an explanatory diagram illustrating a job scheduling result in case 2 according to the first embodiment of this invention.
図11Bは、実行計算機10−1及び実行計算機10−2へ割り当てられたサービス99を示す。サービス99Aは、二つの実行計算機10において並列に実行される。
FIG. 11B shows the
サービス99Cは、サービス99Aの実行後であり、サービス99Bと並列に実行されてもよいため、実行計算機10−2の2:15からと、実行計算機10−1の2:35にスケジュールされる。サービス99Dは、サービス99B及びサービス99Cの後続にスケジュールされる。
Since the service 99C is executed after the
ケース2におけるCPU21は、図8に示すステップ423〜ステップ425において、サービス99A〜サービス99Dの全てを仮選択する。そして、ステップ427において、仮選択したサービス99の中から、デプロイ処理及び実行処理の合計時間が最大のサービス99を選択し、実行計算機10−2に割り当てる。
The
ここで、サービス99Bは、最もデプロイ処理及び実行処理に要する時間が少ないため、実行計算機10−2に振り分けられる順番は遅くなる。ケース2におけるCPU21は、デプロイ処理及び実行処理に要する時間の多い順に、サービス99D、サービス99A、サービス99Cを実行計算機10−2に振り分け(ステップ407)、その後、ジョブ終了時間内にジョブ98が終了する予定であると判定する(ステップ406)。このため、ケース2におけるサービス99Bは、実行計算機10−2に振り分けられない。
Here, since the
図11Cは、本発明の第1の実施形態のケース2におけるスケジュール管理テーブル131を示す説明図である。 FIG. 11C is an explanatory diagram illustrating the schedule management table 131 in Case 2 according to the first embodiment of this invention.
図11Cに示す実行計算機名131−1は、実行計算機10−1と実行計算機10−2とが格納される。図11に示すスケジュール管理テーブル131には、図11Bに示すスケジュールに基づいて、値が格納される。ケース2において、ジョブ98の終了予定時刻は、サービス99Dの終了時刻131−3が示す3:10であり、ジョブ98が実行されてから75分間で終了する予定である。
The execution computer name 131-1 illustrated in FIG. 11C stores the execution computer 10-1 and the execution computer 10-2. Values are stored in the schedule management table 131 shown in FIG. 11 based on the schedule shown in FIG. 11B. In Case 2, the scheduled end time of the
ケース2におけるCPU21は、図9Aに示すジョブ98と、図11Aに示す入力値101を受信した場合、統計情報管理テーブル132の情報に従って、図11Bに示すタイムスケジュールのようにジョブ98をスケジュールする。ケース2におけるCPU21は、図7に示すステップ406において、2台の実行計算機10−1及び実行計算機10−2において70分以内に、ジョブ98を実行可能と判定する。このため、ケース2におけるジョブ98は、2台の実行計算機10−1及び実行計算機10−2においてスケジュールされる。
When receiving the
ケース1とは異なり、ケース2におけるCPU21は、複数のサービス99のデプロイ処理及び実行処理を2台の実行計算機10に割り当てる。ジョブ98が実行され、複数の実行計算機10に割り当てられたサービス99が正常に実行された場合、いずれか一つの実行計算機10は、処理結果を処理データ141に反映する。
Unlike
スケジュール管理計算機11は、実行計算機10毎に優先順位を設けることによって、いずれの実行計算機10の処理結果を処理データ141に反映するかを定めてもよい。また、一つの実行計算機10が、処理結果を反映している間、スケジュール管理計算機11上又は処理データ141上に、処理結果を反映中であることを示す情報を保持してもよい。そして、処理結果を反映中であることを示す情報を他の実行計算機10が参照することによって、他の実行計算機10が反映処理をスキップしてもよい。
The schedule management computer 11 may determine which
本実施形態によれば、各実行計算機10において、割り当てられたサービス99のデプロイ処理時及び実行処理時に障害が発生した場合、残りの実行計算機10によって同一のサービス99が実行されるため、ジョブ98は、継続して実行される。ジョブ実行中に1回の障害が発生した場合、障害安全係数104によって「1」が指定されていれば、ジョブ終了時間103の75分以内にジョブを終了させることができる。
According to the present embodiment, if a failure occurs during the deployment process and the execution process of the assigned
例えば、実行計算機10−1においてサービス99Aが実行されている際に、障害が発生した場合、実行計算機10−2においてもサービス99Aが同時に実行されているため、サービス99B及びサービス99Cは、継続してスケジュール通り実行される。なお、実行計算機10−1及び10−2においてサービス99Aが正常に実行された場合、前述の通り、優先順位に従っていずれかの実行計算機10による処理結果が処理データ141に反映されてもよいし、より早く送信された処理結果が処理データ141に反映されてもよい。
For example, when a failure occurs while the
また例えば、実行計算機10−2においてサービス99Cが実行されている際に、障害が発生した場合、二つ目のサービス99Cがスケジュール通り実行されるため、後続のサービス99Dもスケジュール通り実行される。なお、サービス99Cが正常に実行された場合、サービス99Cはスキップされ、サービス99Dはスケジュール通り実行される。 Further, for example, if a failure occurs while the service 99C is being executed in the execution computer 10-2, the second service 99C is executed as scheduled, so the subsequent service 99D is also executed as scheduled. When the service 99C is normally executed, the service 99C is skipped and the service 99D is executed as scheduled.
また、図11Bに示すサービス99Bは直列に実行されるが、サービス99Bにおいて障害が発生した場合、ケース1と同様に、スケジュール管理計算機11は、障害の内容に従って実行計算機10を選択すればよい。
The
前述のスケジューリングによって、スケジュール管理計算機11は、障害が発生しても、予定した3:10にジョブ98を終了させることができる。
Due to the scheduling described above, the schedule management computer 11 can finish the
図12は、本発明の第1の実施形態のディスプレイ装置22に表示されるジョブ投入画面を示す説明図である。
FIG. 12 is an explanatory diagram illustrating a job input screen displayed on the
前述したジョブスケジューリングシステムに対するジョブ98の投入は、システムが自動的に行う場合、又は、ユーザによってジョブ98の投入がオペレーションされる場合が考えられる。ジョブ98の投入とは、実行されるジョブ98の情報をシステムに入力することである。
The
ユーザがジョブを投入する場合、スケジュール管理計算機11は、図12に示すジョブ投入画面501をディスプレイ装置22に表示する。そしてユーザは、ジョブ98を実行するために必要な情報を、ジョブ投入画面501を介して入力する。そしてスケジュール管理計算機11は、図7及び図8に示すジョブスケジューリングを行い、ジョブ98の実行可否情報をユーザに通知する。
When the user submits a job, the schedule management computer 11 displays a
ジョブ投入画面501は、ジョブ名502、入力データファイル名503、ジョブ実行時刻504、障害安全係数505及びジョブ投入ボタン506を含む入力情報領域と、ジョブ投入結果507を含む結果情報領域とを含む。
The
ジョブ名502は、実行するジョブを指定するための領域である。
A
入力データファイル名503は、入力データ量102を指定するための領域である。また、入力データファイル名503に示される入力データファイル以外の形式によってジョブ98の入力データ量を指定する場合、別の入力値から算出した値を用いてもよい。
The input data file
ジョブ実行時刻504は、ジョブ終了時間103、すなわち、スケジュール管理テーブル131の開始時刻131−2、終了時刻131−3を指定するための領域である。
The
障害安全係数505は、障害安全係数104を入力するための領域である。当該指定値については、図1において説明したように、ジョブ98の重要度を示す数値によってユーザに候補となる指定値を提示してもよく、実行計算機10の稼働率などの情報に基づいて、システムが自動的に指定してもよい。
The
ジョブ投入ボタン506は、システムにジョブ投入を指示するためのボタンである。システムは、ジョブ投入後、前述したように、ジョブ98をスケジューリングする。
A
ジョブ投入結果507は、ジョブ98をスケジューリングした結果として、ジョブ98のスケジューリング可否、ジョブ98の予定開始時刻及び予定終了時刻をユーザに通知するための領域である。ジョブ投入結果507には、サービス99が割り当てられる実行計算機10の台数、又は、実行計算機10毎のサービス実行予定などの情報を含めてもよい。
The
本発明の実施の形態によれば、ジョブ実行時に障害が発生してもジョブ終了時間を満たすようにジョブ98のサービス99を実行計算機10に割り当てることが可能となる。また本発明は、ジョブ終了時間103を満たす範囲で、サービス99を実行計算機10へ振り分け、サービス99を冗長してスケジューリングしないため、実行計算機10のリソースを有効活用するようにジョブ98をスケジューリングすることができる。
According to the embodiment of the present invention, even if a failure occurs during job execution, the
以上、本発明の最適な実施形態を示したが、本発明は前記実施形態に限定されず、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば以下のような実施形態が考えられる。 As mentioned above, although the optimal embodiment of this invention was shown, this invention is not limited to the said embodiment, In the range which does not deviate from the meaning of this invention, it can change suitably. For example, the following embodiments can be considered.
(第2の実施形態)
第1の実施形態におけるサービス99は、各実行計算機10においてデプロイされていない状態において、ジョブスケジューリングされた。実行計算機10上に振り分け対象のサービス99がデプロイ済みであった場合、第2の実施形態におけるスケジュール管理計算機11は、初回のサービス99のデプロイ処理を省略することによって、ジョブ98の実行時間を短縮することができる。
(Second Embodiment)
The
さらに、スケジュール管理計算機11は、各実行計算機10においてデプロイ済みのサービス99の一覧を管理し、図7に示すステップ402及び図8に示すステップ428において、サービス99に対するデプロイが済んでいる実行計算機10を優先的に割り当てることによって、ジョブ98の実行時間を短縮することができる。
Further, the schedule management computer 11 manages a list of
(第3の実施形態)
第1の実施形態では、図8に示すステップ429において、先行するサービスが終了した後の時間帯に別の実行計算機10へ後続のサービス99を割り当てていたが、先行するサービス99が実行される前に、サービス99のデプロイ処理に要する時間以上の空き時間が存在した場合、その空き時間に初回のサービス99のデプロイ処理を割り当てることによって、ジョブ98の実行時間を短縮することができる。なお、デプロイ処理は一般的に他のサービスと並行して実行されることができる。
(Third embodiment)
In the first embodiment, in
10、10−1〜10−n 実行計算機
11 スケジュール管理計算機
21 CPU
22 ディスプレイ装置
23 キーボード
24 マウス
25 ネットワークインタフェースカード(NIC)
26 ハードディスク
27 メモリ
28 バス
30 オペレーティングシステム
91 スケジューリング制御プログラム
92 実行制御プログラム
99、99A〜99F サービス
101 入力値
102 入力データ量
103 ジョブ終了時間
104 障害安全係数
111 ジョブ受付部
112 ジョブスケジューリング部
113 実行指示部
114 統計情報管理部
121 サービスデプロイ部
122 サービス実行部
123 統計情報転送部
131 スケジュール管理テーブル
132 統計情報管理テーブル
141 処理データ
10, 10-1 to 10-n Execution computer 11
22
26
Claims (16)
前記各ジョブは、複数のサービスを含み、
前記サービスは、前記実行計算機によって処理されるプログラムモジュールを含み、
前記管理計算機は、
所定の係数と、前記各ジョブの終了時間とを取得し、
前記取得された所定の係数が示す回数分実行されるように、前記各サービスを前記実行計算機に割り当て、
前記各サービスが前記実行計算機によって処理されている間に、前記サービスが割り当てられた前記実行計算機において障害が発生した場合、前記割り当てられたサービスを、前記実行計算機によって再度処理させることを特徴とする管理計算機。 One or more execution computers for processing a plurality of jobs, and a management computer connected to the one or more execution computers and allocating the plurality of jobs to the one or more execution computers,
Each job includes a plurality of services,
The service includes a program module processed by the execution computer,
The management computer is
Obtain a predetermined coefficient and the end time of each job,
Assigning each service to the execution computer to be executed the number of times indicated by the acquired predetermined coefficient,
When a failure occurs in the execution computer to which the service is assigned while each service is being processed by the execution computer, the assigned service is processed again by the execution computer. Management computer.
前記取得された所定の係数が示す回数分実行されるように、前記各サービスを第1の前記実行計算機に割り当て、
前記割り当てられた各サービスを処理するために要する時間の総和に基づいて、前記ジョブを処理するために要する時間を算出し、
前記算出された時間が、前記取得されたジョブの終了時間を超過する場合、前記第1の実行計算機に割り当てられた複数のサービスのうち、前記ジョブの終了時間内に処理可能な前記サービスを前記第1の実行計算機に割り当て、
前記第1の実行計算機に割り当てられなかったサービスを、第2の前記実行計算機に割り当てることを特徴とする請求項1に記載の管理計算機。 The management computer is
Assigning each of the services to the first execution computer so as to be executed the number of times indicated by the acquired predetermined coefficient;
Calculating the time required to process the job based on the total time required to process the assigned services;
When the calculated time exceeds the end time of the acquired job, among the services assigned to the first execution computer, the service that can be processed within the end time of the job Assigned to the first execution computer,
2. The management computer according to claim 1, wherein a service that has not been assigned to the first execution computer is assigned to the second execution computer.
前記所定の係数が示す回数分実行されるように、前記第1の実行計算機に割り当てられた複数のサービスのうち、並行して処理することができる前記サービスを抽出し、
前記第1の実行計算機と前記第2の実行計算機とに、前記抽出されたサービスを割り当てることを特徴とする請求項2に記載の管理計算機。 The management computer is
Extracting the services that can be processed in parallel from among a plurality of services assigned to the first execution computer so that the predetermined coefficient is executed the number of times indicated,
3. The management computer according to claim 2, wherein the extracted service is allocated to the first execution computer and the second execution computer.
前記所定の係数が示す回数分実行されるように前記第1の実行計算機に割り当てられた複数のサービスのうち、前記処理するために要する時間が長い前記サービスを抽出し、
前記抽出されたサービスを前記第2の実行計算機に割り当てることを特徴とする請求項3に記載の管理計算機。 The management computer is
Extracting the service that takes a long time to process from among a plurality of services assigned to the first execution computer so that it is executed the number of times indicated by the predetermined coefficient,
4. The management computer according to claim 3, wherein the extracted service is assigned to the second execution computer.
前記管理計算機は、
前記サービスの準備処理が済んでいる前記実行計算機を選択し、
前記選択された実行計算機においてサービスの準備処理が済んでいるサービスを、前記選択された実行計算機に割り当てることを特徴とする請求項1に記載の管理計算機。 The process of the service includes a preparation process of the service and an execution process of the service,
The management computer is
Select the execution computer that has completed the service preparation process,
2. The management computer according to claim 1, wherein a service for which a service preparation process has been completed in the selected execution computer is allocated to the selected execution computer.
前記管理計算機は、
前記第2の実行計算機に割り当てられたサービスのうち、前記第2の実行計算機においてサービスが処理されていない時間において、前記サービスの準備処理が可能な前記サービスを抽出し、
前記サービスが処理されていない時間に、前記抽出されたサービスの準備処理を割り当てることを特徴とする請求項2に記載の管理計算機。 The process of the service includes a preparation process of the service and an execution process of the service,
The management computer is
Of the services assigned to the second execution computer, extract the service that can be prepared for the service at a time when the service is not processed in the second execution computer,
The management computer according to claim 2, wherein a preparation process of the extracted service is assigned at a time when the service is not processed.
前記各ジョブは、複数のサービスを含み、
前記サービスは、前記実行計算機によって処理されるプログラムモジュールを含み、
前記方法は、
管理計算機が、所定の係数と、前記各ジョブの終了時間とを取得する手順と、
前記管理計算機が、前記取得された所定の係数が示す回数分実行されるように、前記各サービスを前記実行計算機に割り当てる手順と、
前記各サービスが前記実行計算機によって処理されている間に、前記サービスが割り当てられた前記実行計算機において障害が発生した場合、前記管理計算機が、前記割り当てられたサービスを、前記実行計算機によって再度処理させる手順と、を含むことを特徴とするジョブスケジューリング方法。 One or more execution computers that process a plurality of jobs, and a job scheduling method that is connected to the one or more execution computers and assigns the plurality of jobs to the one or more execution computers,
Each job includes a plurality of services,
The service includes a program module processed by the execution computer,
The method
A procedure in which the management computer obtains a predetermined coefficient and an end time of each job;
A procedure for allocating the services to the execution computer so that the management computer is executed the number of times indicated by the acquired predetermined coefficient;
If a failure occurs in the execution computer to which the service is assigned while each service is being processed by the execution computer, the management computer causes the execution computer to process the assigned service again. And a job scheduling method.
前記管理計算機が、前記取得された所定の係数が示す回数分実行されるように、前記各サービスを第1の前記実行計算機に割り当てる手順と、
前記管理計算機が、前記割り当てられた各サービスを処理するために要する時間の総和に基づいて、前記ジョブを処理するために要する時間を算出する手順と、
前記算出された時間が、前記取得されたジョブの終了時間を超過する場合、前記管理計算機が、前記第1の実行計算機に割り当てられた複数のサービスのうち、前記ジョブの終了時間内に処理可能な前記サービスを前記第1の実行計算機に割り当てる手順と、
前記管理計算機が、前記第1の実行計算機に割り当てられなかったサービスを、第2の前記実行計算機に割り当てる手順と、を含むことを特徴とする請求項7に記載のジョブスケジューリング方法。 The procedure for assigning the service to the execution computer is as follows:
A procedure for allocating the services to the first execution computer so that the management computer is executed the number of times indicated by the acquired predetermined coefficient;
A procedure for calculating a time required for processing the job based on a total time required for the management computer to process the assigned services;
When the calculated time exceeds the end time of the acquired job, the management computer can process within the end time of the job among a plurality of services assigned to the first execution computer Assigning the service to the first execution computer;
The job scheduling method according to claim 7, further comprising: a procedure in which the management computer assigns a service that has not been assigned to the first execution computer to the second execution computer.
前記管理計算機が、前記所定の係数が示す回数分実行されるように、前記第1の実行計算機に割り当てられた複数のサービスのうち、並行して処理することができる前記サービスを抽出する手順と、
前記管理計算機が、前記第1の実行計算機と前記第2の実行計算機とに、前記抽出されたサービスを割り当てる手順と、を含むことを特徴とする請求項8に記載のジョブスケジューリング方法。 The procedure for assigning the service to the execution computer is as follows:
A procedure for extracting the services that can be processed in parallel among a plurality of services assigned to the first execution computer so that the management computer is executed the number of times indicated by the predetermined coefficient; ,
9. The job scheduling method according to claim 8, wherein the management computer includes a procedure for assigning the extracted service to the first execution computer and the second execution computer.
前記管理計算機が、前記所定の係数が示す回数分実行されるように、前記第1の実行計算機に割り当てられた複数のサービスのうち、前記処理するために要する時間が長い前記サービスを抽出する手順と、
前記管理計算機が、前記抽出されたサービスを前記第2の実行計算機に割り当てる手順とを含むことを特徴とする請求項9に記載のジョブスケジューリング方法。 The procedure for assigning the service to the execution computer is as follows:
A procedure for extracting the service that takes a long time to process among a plurality of services assigned to the first execution computer so that the management computer is executed the number of times indicated by the predetermined coefficient. When,
The job scheduling method according to claim 9, further comprising: a procedure in which the management computer assigns the extracted service to the second execution computer.
前記サービスを実行計算機に割り当てる手順は、
前記管理計算機が、前記サービスの準備処理が済んでいる前記実行計算機を選択する手順と、
前記選択された実行計算機においてサービスの準備処理が済んでいるサービスを、前記選択された実行計算機に割り当てる手順と、を含むことを特徴とする請求項7に記載のジョブスケジューリング方法。 The process of the service includes a preparation process of the service and an execution process of the service,
The procedure for assigning the service to the execution computer is as follows:
A procedure for the management computer to select the execution computer for which the service preparation processing has been completed;
The job scheduling method according to claim 7, further comprising: allocating a service for which a service preparation process has been completed in the selected execution computer to the selected execution computer.
前記サービスを実行計算機に割り当てる手順は、
前記管理計算機が、前記第2の実行計算機に割り当てられたサービスのうち、前記第2の実行計算機においてサービスが処理されていない時間において、前記サービスの準備処理が可能な前記サービスを抽出する手順と、
前記サービスが処理されていない時間に、前記抽出されたサービスの準備処理を割り当てる手順と、を含むことを特徴とする請求項8に記載のジョブスケジューリング方法。 The process of the service includes a preparation process of the service and an execution process of the service,
The procedure for assigning the service to the execution computer is as follows:
A procedure for the management computer to extract the services that can be prepared for the service at a time when the service is not processed in the second execution computer among the services assigned to the second execution computer; ,
The job scheduling method according to claim 8, further comprising a step of allocating a preparation process of the extracted service at a time when the service is not processed.
前記各ジョブは、複数のサービスを含み、
前記サービスは、前記実行計算機によって処理されるプログラムモジュールを含み、
前記ジョブスケジューリングプログラムは、
管理計算機に、所定の係数と、前記各ジョブの終了時間とを取得させ、
前記管理計算機に、前記取得された所定の係数が示す回数分実行されるように、前記各サービスを前記実行計算機に割り当てさせ、
前記各サービスが前記実行計算機によって処理されている間に、前記サービスが割り当てられた前記実行計算機において障害が発生した場合、前記管理計算機に、前記割り当てられたサービスを、前記実行計算機によって再度処理させることを特徴とするジョブスケジューリングプログラム。 One or more execution computers for processing a plurality of jobs, and a job scheduling program connected to the one or more execution computers and allocating the plurality of jobs to the one or more execution computers,
Each job includes a plurality of services,
The service includes a program module processed by the execution computer,
The job scheduling program is:
Let the management computer obtain a predetermined coefficient and the end time of each job,
Causing the management computer to allocate the services to the execution computer so that the management computer is executed the number of times indicated by the acquired predetermined coefficient;
When a failure occurs in the execution computer to which the service is assigned while each service is being processed by the execution computer, the management computer is caused to process the assigned service again by the execution computer. A job scheduling program.
前記管理計算機に、前記取得された所定の係数が示す回数分実行されるように、前記各サービスを第1の前記実行計算機に割り当てさせ、
前記管理計算機に、前記割り当てられた各サービスを処理するために要する時間の総和に基づいて、前記ジョブを処理するために要する時間を算出させ、
前記算出された時間が、前記取得されたジョブの終了時間を超過する場合、前記管理計算機に、前記第1の実行計算機に割り当てられた複数のサービスのうち、前記ジョブの終了時間内に処理可能な前記サービスを前記第1の実行計算機に割り当てさせ、
前記管理計算機に、前記第1の実行計算機に割り当てられなかったサービスを、第2の前記実行計算機に割り当てさせることを特徴とする請求項13に記載のジョブスケジューリングプログラム。 The job scheduling program is:
Causing the management computer to allocate the services to the first execution computer so that the management computer is executed the number of times indicated by the acquired predetermined coefficient;
Causing the management computer to calculate the time required to process the job based on the total time required to process the allocated services;
If the calculated time exceeds the end time of the acquired job, the management computer can process the plurality of services assigned to the first execution computer within the end time of the job. And assigning the service to the first execution computer,
14. The job scheduling program according to claim 13, wherein the management computer causes a service that has not been assigned to the first execution computer to be assigned to the second execution computer.
前記管理計算機に、前記所定の係数が示す回数分実行されるように、前記第1の実行計算機に割り当てられた複数のサービスのうち、並行して処理することができる前記サービスを抽出させ、
前記管理計算機に、前記第1の実行計算機と前記第2の実行計算機とに、前記抽出されたサービスを割り当てさせることを特徴とする請求項14に記載のジョブスケジューリングプログラム。 The job scheduling program is:
Causing the management computer to extract the services that can be processed in parallel among a plurality of services assigned to the first execution computer so that the management computer is executed the number of times indicated by the predetermined coefficient;
15. The job scheduling program according to claim 14, wherein the management computer is caused to allocate the extracted service to the first execution computer and the second execution computer.
前記管理計算機に、前記所定の係数が示す回数分実行されるように、前記第1の実行計算機に割り当てられた複数のサービスのうち、前記処理するために要する時間が長い前記サービスを抽出させ、
前記管理計算機に、前記抽出されたサービスを前記第2の実行計算機に割り当てさせることを特徴とする請求項15に記載のジョブスケジューリングプログラム。 The job scheduling program is:
Causing the management computer to extract the service that takes a long time to process among a plurality of services assigned to the first execution computer so that the management computer is executed the number of times indicated by the predetermined coefficient;
16. The job scheduling program according to claim 15, wherein the management computer causes the extracted service to be assigned to the second execution computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010105301A JP5417626B2 (en) | 2010-04-30 | 2010-04-30 | Management computer, job scheduling method and job scheduling program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010105301A JP5417626B2 (en) | 2010-04-30 | 2010-04-30 | Management computer, job scheduling method and job scheduling program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011233086A JP2011233086A (en) | 2011-11-17 |
JP5417626B2 true JP5417626B2 (en) | 2014-02-19 |
Family
ID=45322314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010105301A Active JP5417626B2 (en) | 2010-04-30 | 2010-04-30 | Management computer, job scheduling method and job scheduling program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5417626B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170849B2 (en) * | 2012-01-09 | 2015-10-27 | Microsoft Technology Licensing, Llc | Migration of task to different pool of resources based on task retry count during task lease |
CN103346980B (en) | 2013-07-02 | 2016-08-10 | 华为技术有限公司 | A kind of business scheduling method, device and the network equipment |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362211A (en) * | 2003-06-04 | 2004-12-24 | Fujitsu Ltd | Typical operation automatic processing program and method and typical operation automatic processor |
JP3936924B2 (en) * | 2003-06-18 | 2007-06-27 | 株式会社日立製作所 | Job scheduling method and system |
-
2010
- 2010-04-30 JP JP2010105301A patent/JP5417626B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2011233086A (en) | 2011-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ren et al. | Hopper: Decentralized speculation-aware cluster scheduling at scale | |
US8458712B2 (en) | System and method for multi-level preemption scheduling in high performance processing | |
JP6233413B2 (en) | Task assignment determination device, control method, and program | |
WO2011142031A1 (en) | Resource management method, resource management device and program | |
CN110673927B (en) | Scheduling method and device of virtual machine | |
EP1965303A1 (en) | Information processing apparatus, computer, resource allocation method and resource allocation program | |
WO2019160060A1 (en) | Virtual resource management device, virtual resource allocation method, and virtual resource allocation program | |
JPWO2012025977A1 (en) | Schedule management method and schedule management server | |
US10067793B2 (en) | Data processing method and apparatus for executing task code using reservation instruction and release instruction | |
JP6107801B2 (en) | Information processing apparatus, information processing system, task processing method, and program | |
JP6924083B2 (en) | Information processing system and resource allocation method | |
JP2011180894A (en) | Job scheduling program, device, and method | |
JP5417626B2 (en) | Management computer, job scheduling method and job scheduling program | |
CN117435324A (en) | Task scheduling method based on containerization | |
JP5879117B2 (en) | Information processing system and operation management method | |
JP5444900B2 (en) | Job execution management system, job execution management method, job execution management program | |
JP2009237858A (en) | Server task management program and server task management method | |
CN111359205A (en) | Operation method and device of cloud game, computer equipment and storage medium | |
CN112130979B (en) | Method, device, terminal and medium for scheduling task and training neural network model | |
CN111597037B (en) | Job allocation method, job allocation device, electronic equipment and readable storage medium | |
JP5056346B2 (en) | Information processing apparatus, information processing system, virtual server movement processing control method, and program | |
JP2017010473A (en) | System and method for job execution control | |
CN112631743B (en) | Task scheduling method, device and storage medium | |
CN112860446A (en) | Message distribution method | |
JP5867215B2 (en) | Information processing apparatus, information processing method, and information processing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120302 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130806 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130807 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131004 |
|
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: 20131022 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131029 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5417626 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |