(57)【要約】【課題】スケジュール運用を行うシステムにおいて、リアルタイムにリソースの状態を監視することで、マシンの状態に応じた同時実行ジョブ数やジョブの実行優先順位をリアルタイムに自動で設定し、リソースを効率よく使用し、かつシステムを安定稼動させる技術を提供することを目的とする。【解決手段】ジョブのスケジュール運用を行うシステムにおいて、システム内のリソースの利用量を監視し、該リソースの利用量の増減が検出されたとき、該リソースの利用状態に基づいて同時実行ジョブ数を算出し、算出されたジョブ数のジョブが実行されるようにジョブの実行を制御する。また、リソースの利用状態に基づいて、優先順位を変更する対象のジョブを決定するとともに、それらのジョブの優先順位の増減値を算出し、前記優先順位の変更対象のジョブの優先順位を、前記算出された増減値に基づいて変更する。【選択図】図１
2008204243.tif 000002
【特許請求の範囲】
【請求項１】
予め定められたスケジュールに従ってジョブのスケジュール運用を行うシステムにおけるジョブ実行制御方法であって、
前記システムのリソース監視手段が、該システム内のリソースの利用量を監視する工程と、
前記システムの同時実行ジョブ数算出手段が、前記監視工程によりリソースの利用量の増減が検出されたとき、該リソースの利用状態に基づいて同時実行ジョブ数を算出する工程と、
前記システムの同時実行ジョブ制御手段が、前記算出されたジョブ数のジョブが実行されるようにジョブの実行を制御する工程と
を備えることを特徴とするジョブ実行制御方法。
【請求項２】
予め定められたスケジュールに従ってジョブのスケジュール運用を行うシステムにおけるジョブ実行制御方法であって、
前記システムのリソース監視手段が、該システム内のリソースの利用量を監視する工程と、
前記システムのジョブ実行優先順位算出手段が、前記監視工程によりリソースの利用量の増減が検出されたとき、該リソースの利用状態に基づいて、優先順位を変更する対象のジョブを決定するとともにそれらのジョブの優先順位の増減値を算出する工程と、
前記システムのジョブ実行優先順位制御手段が、前記優先順位の変更対象のジョブの優先順位を、前記算出された増減値に基づいて変更する工程と
を備えることを特徴とするジョブ実行制御方法。
【請求項３】
請求項１または２に記載のジョブ実行制御方法において、
前記システムは、仮想化技術によって物理マシン上に作成された仮想マシン上のシステムであることを特徴とするジョブ実行制御方法。
【請求項４】
仮想化技術によって物理マシン上に作成された仮想マシン上で予め定められたスケジュールに従ってジョブのスケジュール運用を行うシステムにおけるジョブ実行制御方法であって、
前記システムのリソース監視手段が、前記仮想マシン上のシステムで利用可能なリソース量の範囲内で、そのリソースの利用量を監視する工程と、
前記システムの同時実行ジョブ数算出手段が、前記監視工程によりリソースの利用量の増減が検出されたとき、前記仮想マシン上のシステムで利用可能なリソース量と、リソースの利用量の増減の状態に基づいて、同時実行ジョブ数を算出する工程と、
前記システムの同時実行ジョブ制御手段が、前記仮想マシン上のシステムで前記算出されたジョブ数のジョブが実行されるようにジョブの実行を制御する工程と
を備えることを特徴とするジョブ実行制御方法。
【請求項５】
仮想化技術によって物理マシン上に作成された仮想マシン上で予め定められたスケジュールに従ってジョブのスケジュール運用を行うシステムにおけるジョブ実行制御方法であって、
前記システムのリソース監視手段が、前記仮想マシン上のシステムで利用可能なリソース量の範囲内で、そのリソースの利用量を監視する工程と、
前記システムのジョブ実行優先順位算出手段が、前記監視工程によりリソースの利用量の増減が検出されたとき、前記仮想マシン上のシステムで利用可能なリソース量と、リソースの利用量の増減の状態に基づいて、優先順位を変更する対象のジョブを決定するとともにそれらのジョブの優先順位の増減値を算出する工程と、
前記システムのジョブ実行優先順位制御手段が、前記優先順位の変更対象のジョブの優先順位を、前記算出された増減値に基づいて変更する工程と
を備えることを特徴とするジョブ実行制御方法。
【請求項６】
予め定められたスケジュールに従ってジョブのスケジュール運用を行うジョブ実行制御システムであって、
前記システム内のリソースの利用量を監視するリソース監視手段と、
前記リソース監視手段によりリソースの利用量の増減が検出されたとき、該リソースの利用状態に基づいて同時実行ジョブ数を算出する同時実行ジョブ数算出手段と、
前記算出されたジョブ数のジョブが実行されるようにジョブの実行を制御する同時実行ジョブ制御手段と
を備えることを特徴とするジョブ実行制御システム。
【請求項７】
予め定められたスケジュールに従ってジョブのスケジュール運用を行うジョブ実行制御システムであって、
前記システム内のリソースの利用量を監視するリソース監視手段と、
前記リソース監視手段によりリソースの利用量の増減が検出されたとき、該リソースの利用状態に基づいて、優先順位を変更する対象のジョブを決定するとともにそれらのジョブの優先順位の増減値を算出するジョブ実行優先順位算出手段と、
前記優先順位の変更対象のジョブの優先順位を、前記算出された増減値に基づいて変更するジョブ実行優先順位制御手段と
を備えることを特徴とするジョブ実行制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジュール運用を行うシステムにおいて、リソースを監視することでジョブを効率よく実行し、かつシステムが不安定な状態に陥ることを自動で防止するジョブ実行制御の技術に関するものである。
【背景技術】
【０００２】
ハードウェア・ソフトウェアの発達、および業務内容の複雑化にともない、スケジュール運用を行うシステムで扱うジョブは、多様化および増加傾向にある。そのようなシステムの運用に際しては、近年では、(1)効率のよいジョブのスケジューリング、および、(2)安定したシステムの稼動、が重視すべきポイントとなっている。
【０００３】
現在、上記(1)および(2)のポイントから見ると、ユーザーが同時実行ジョブ数(同時に実行するジョブ数の制限値)やジョブの実行優先順位(ジョブの実行優先の高低)を事前にテスト環境で測定し、または論理計算から適切と推定される値を算出し、システム、またはジョブに対して手動で設定しているのが実情である。
【０００４】
なお、スケジュール運用を行うシステムに限定しなければ、システムの安定稼動を実現するものとして、以下の特許文献に記載の技術が知られている。該文献に記載のシステムは、同時に実行できるプログラムの数を制限、またプログラムの実行状況を監視することで、アプリケーションプログラムを信頼性高く処理し、計算機システムの安定的な運転管理機能を提供するものである。
【特許文献１】特開平8−328880号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した同時実行ジョブ数やジョブの実行優先順位を事前に手動で設定する手法では、システムが不安定な状態に陥った場合、ジョブの実行に失敗する、または他のプログラムの運用に影響を与える等の可能性がある。また、特許文献１に記載の技術は、スケジュール運用を行うシステムに適用するものではない。特にスケジュール運用においては、ジョブ終了の制限時刻が決まっていることも多く（例えば、店舗閉店後の夜間に開始したジョブは、翌朝の開店時刻前に終了しなければならない等）、従来技術においては、開始時刻を適宜設定できたとしても、マシン負荷が高かったり、他アプリケーションの優先順位が高い等の要因があってシステムの稼動状態が不安定になると、目的のジョブを制限時刻までに終了させることができず、利用者の業務等に多大な支障を与えるおそれがある。
【０００６】
本発明の目的は、スケジュール運用を行うシステムにおいて、リアルタイムにリソースの状態を監視することで、マシンの状態に応じた同時実行ジョブ数やジョブの実行優先順位をリアルタイムに自動で設定し、リソースを効率よく使用し、かつシステムを安定稼動させる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、予め定められたスケジュールに従ってジョブのスケジュール運用を行うシステムにおけるジョブ実行制御の技術であって、システム内のリソースの利用量を監視し、該リソースの利用量の増減が検出されたとき、該リソースの利用状態に基づいて同時実行ジョブ数を算出し、算出されたジョブ数のジョブが実行されるようにジョブの実行を制御することを特徴とする。また、システム内のリソースの利用量を監視し、該リソースの利用量の増減が検出されたとき、該リソースの利用状態に基づいて、優先順位を変更する対象のジョブを決定するとともにそれらのジョブの優先順位の増減値を算出し、前記優先順位の変更対象のジョブの優先順位を、前記算出された増減値に基づいて変更することを特徴とする。前記システムは、物理マシン上のシステムであってもよいし、仮想化技術によって物理マシン上に作成された仮想マシン上のシステムであってもよい。
【発明の効果】
【０００８】
本発明に係るスケジュール運用におけるリソース使用量に連動するジョブ実行制御技術によれば、適切に自動でジョブの同時実行数、およびジョブの実行優先順位を制御して、リソースを有効活用し、かつシステムを安定稼動させることができる。また、仮想化技術によって作成された仮想マシン上で動作する場合、その仮想マシンに割り当てられるリソースは種々の要因で変動するが、そのような場合においても、各仮想マシンで適切に自動でジョブの同時実行数、およびジョブの実行優先順位を制御して、各仮想マシンのリソースを有効活用し、かつシステムを安定稼動させることができる。従って、仮想マシン環境全体としてもリソースの有効利用とシステムの安定稼動を図ることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施する場合の一形態を図面を用いて具体的に説明する。
【００１０】
図１は、本発明の一実施形態の構成を表す図である。ジョブのスケジュール運用を行う本システムは、スケジュール管理システムとジョブ実行システムとを備える。スケジュール管理システムとジョブ実行システムは、同一マシンでも別マシンでもかまわない。スケジュール管理システムは、ユーザーが定義したスケジュールに合わせてジョブ実行要求をジョブ実行システムへ送信する。ジョブ実行システムは、スケジュール管理システムから受信したジョブ実行要求を実行する。
【００１１】
図１では、101をスケジュール管理システム、102をジョブ実行システムとしている。スケジュール管理システム101からジョブ実行要求が送信されると、ジョブ実行システム102が、ジョブ受付要求処理機能103で当該要求を受信する。本構成では、ジョブ実行システム102は、ジョブA〜ジョブEの5要求を受信するものとする。ジョブ受付要求処理機能103で設定されている同時実行ジョブ数をＸとする(104)。いまＸ＝３が設定されているものとし、ジョブ受付要求処理機能103は、同時実行ジョブ数Ｘ＝３に従ってジョブA〜Cの3ジョブを実行するものとする。
【００１２】
ジョブ実行システム102には、リソース監視機能105が実装されている。リソース監視機能105は、ジョブが実行されている場合に、常にマシンのリソースの状態を自動で監視する。リソース監視機能105がリソース状態の変化を検知した場合、ジョブ実行優先順位制御機能106およびジョブ受付要求処理機能103へそのリソース状態を通知する。
【００１３】
リソース監視機能105からリソースの状態を受信したジョブ実行優先順位制御機能106は、受信したリソース状態からジョブの実行優先順位の変更を検討する。例えば、受信したリソース状態からリソースに余裕があると判定した場合、ジョブ実行優先順位制御機能106は、何れかのジョブの実行優先順位を引き上げる処理を行う。図１の例では、ジョブ実行優先順位制御機能106は、ジョブBおよびジョブCを実行優先順位の変更対象とし、それらのジョブの実行優先順位を「Ｙ」から「Ｙ＋β」へ引き上げている(107)。逆にリソース状態がリソースに余裕がない状態に変化した場合は、何れかのジョブの実行優先順位を引き下げる(上記のβを負の数にする)ことになる。
【００１４】
リソース監視機能105からリソースの状態を受信したジョブ受付要求処理機能103は、受信したリソースの状態から同時実行ジョブ数の変更を検討する。例えば、受信したリソース状態からリソースに余裕があると判定した場合、ジョブ受付要求処理機能103は、同時実行ジョブ数を引き上げる処理を行う。図１の例では、ジョブ受付要求処理機能103は、同時実行ジョブ数を「Ｘ」から「Ｘ＋α」へ引き上げ(108)、ジョブDおよびジョブEを新たに実行するように処理している(109)。逆にリソース状態がリソースに余裕がない状態に変化した場合は、同時実行ジョブ数を引き下げる(上記のαを負の数にする)ことになる。
【００１５】
なお、上述の各機能103，105，106は、システム内の処理装置で所定のプログラムを実行することにより実現される。
【００１６】
図２は、仮想化技術によって仮想マシン環境201を構築した際に、本発明を適用した一実施形態の構成を表す図である。図２は、通常の物理マシン202と仮想マシン203，204とが混在する構成である。仮想マシン203，204は物理マシン202上で仮想化技術に係る所定のソフトウエアを動作させることにより実現しているが、ネットワークを介して当該仮想マシン環境201にアクセスする際には、物理マシンか仮想マシンかの区別はなく３台のマシンが動作しているように検出されるため、図２では物理マシン202と仮想マシン203，204とを並列に記載している。
【００１７】
マシン202，203，204は、それぞれ、スケジュール管理システムとジョブ実行システムとを備え、ジョブ受付要求処理機能205A，205B，205C、ジョブ実行優先順位制御機能206A，206B，206C、およびリソース監視機能207A，207B，207Cを備えている。ジョブ受付要求処理機能205A，205B，205Cはそれぞれ図１のジョブ受付要求処理機能103に、ジョブ実行優先順位制御機能206A，206B，206Cはそれぞれ図１のジョブ実行優先順位制御機能106に、リソース監視機能207A，207B，207Cはそれぞれ図１のリソース監視機能105に、対応する。リソース監視機能207A，207B，207Cは、OS(operating system)から各マシンに割り当てられたリソースの上限に合わせて、各マシン202〜204内でのリソース状態を監視する。各マシン202〜204は、図１で説明した動作に従い、OSから割り当てられたリソース内で効率よくリソースを使用する。また、各マシンが不安定な状態に陥ることを防止し、ひとつのマシンの運用が不安定になることで、すべてのマシンの運用が不安定になることを防止する。
【００１８】
図２の仮想マシン環境201において、各マシン202〜204に割り当てられるリソースは種々の状況に応じて変化する。例えば、仮想マシン203の負荷が増して割り当てリソース量が増加し、これにより他のマシン202，204の割り当てリソース量が減少したりする。そのような割り当てリソース量の変化があった場合、本システムでは各マシン202〜204にジョブ受付要求処理機能とジョブ実行優先順位制御機能とリソース監視機能を備え、各マシンで図１で説明した動作を行うので、各マシンに割り当てられたリソースの範囲内で有効にリソースを利用できシステムを安定稼動できるとともに、仮想マシン環境201の全体としてもリソースの有効利用とシステムの安定稼動を図ることができる。
【００１９】
図３は、本実施形態のシステムにおける処理の流れの概要を示すフローチャートである。これは、図１のシステムにおける処理の流れを示すとともに、図２の各マシンのそれぞれにおける処理の流れを示すものである。
【００２０】
まず、「ジョブ受付要求処理機能」が、スケジュール管理システムからジョブ実行要求を受信する(ステップ301)。「ジョブ受付要求処理機能」は、設定されている同時実行ジョブ数Ｘに従ってジョブを実行する(ステップ302)。同時実行ジョブ数Ｘの初期値の決め方は任意であるが、ここではユーザにより同時実行ジョブ数Ｘの初期値が設定されているものとする。ジョブ実行中は「リソース監視機能」がリソースの状態を一定間隔で監視する(ステップ303)。「リソース監視機能」は、リソースの状態に変化があったと判断した場合(ステップ304)、「ジョブ受付要求処理機能」および「ジョブ実行優先順位制御機能」にそのリソースの状態を通知する(ステップ306)。
【００２１】
「ジョブ受付要求処理機能」は、通知されたリソース状態から同時実行ジョブ数の増減値αを決定する。また「ジョブ実行優先順位制御機能」は、通知されたリソース状態から優先順位を増減させるジョブとその増減値βを決定する(ステップ307)。最後に、ステップ307で算出した値を使用して、「ジョブ受付要求処理機能」は同時実行ジョブ数を「Ｘ」から「Ｘ＋α」へ変更し、「ジョブ実行優先順位制御機能」は該当するジョブの優先順位を「Ｙ」から「Ｙ＋β」へ変更する(ステップ308)。「リソース監視機能」がリソースの状態に変化がなかったと判断した場合は(ステップ305)、リソースの監視を続行する(ステップ303へ戻る)。
【００２２】
図４は、「リソース監視機能」の処理の流れの概要を示すフローチャートである。これは、図３のステップ303〜306の処理を詳細に示したものである。
【００２３】
「リソース監視機能」は、一定間隔でジョブが実行されているかを監視する(ステップ401)。ジョブが実行されていない場合は、再度、ジョブの実行状態を監視する(ステップ401へ戻る)。ジョブが実行されている場合(ステップ402)は、マシンのリソース状態を監視する(ステップ403)。このリソース監視時に、リソースの状態に変化があった場合(ステップ404)は、「ジョブ受付要求処理機能」および「ジョブ実行優先順位制御機能」にそのリソースの状態を通知する(ステップ405)。状態通知後は、再び監視処理に戻る(ステップ401へ戻る)。
【００２４】
なお、リソース状態の監視は、例えば「CPU使用率の増減」、「メモリ使用量の増減」、「ディスクへのデータ書き込みの増減」、「ネットワークトラフィックの増減」、あるいは「ディスク空き容量の増減」などの要因を監視するものである。また、このリソース監視機能は、一時的、かつ極端なリソースの変動に異常反応しないようにする。例えば、一定間隔でリソースを監視して、リアルタイムにリソース使用状況の平均を算出し、算出した平均値から以下の方式でリソース状態の変化を検知する。
(1)算出した平均値Yが前回平均値Xから変動しているか判定する。変動しているときは(2)に進む。
(2)一定時間経過後、再度平均値Zを算出する。
(3)平均値Zから平均値Yの増減が一時的でないと判断できる。
【００２５】
図５は、「ジョブ受付要求処理機能」の処理の概要を示すフローチャートである。まず、「ジョブ受付要求処理機能」は、スケジュール管理システムからジョブ実行要求を受信する(ステップ501)。その後、ユーザーによって設定された同時実行ジョブ数Ｘに従ってジョブを実行する(ステップ502)。図５では不図示だが、ジョブ実行後の「ジョブ受付要求処理機能」は、スケジュール管理システム、または「リソース監視機能」からの要求待ちとなる。
【００２６】
「リソース監視機能」は、リソースの状態に変化があったと判断した場合、図４のステップ405でリソース状態の通知を送信する。「ジョブ受付要求処理機能」は、「リソース監視機能」から送信されるリソース状態の通知を受信する(ステップ503)。受信したリソース状態と後述する各種の要因から、実行中であるジョブのリソース使用量を求めるとともに実行予定であるジョブのリソース使用予定量をシミュレートし、これらの値から同時実行ジョブ数の増減値αを算出する(ステップ504)。算出した結果から、同時実行ジョブ数を「Ｘ」から「Ｘ＋α」へ変更し、安定したシステム運用を実現する(ステップ505)。なお、ステップ505で同時実行ジョブ数が変更された場合は、変更後の新たな同時実行ジョブ数に応じてステップ502の制御が行われ、実際にシステム内で同時に実行されるジョブ数が変更される。
【００２７】
上記ステップ504の処理について詳しく説明する。この処理では、受信したリソース状態に加え、「実行待ちとなっているジョブの定義内容」、「実行待ちとなっているジョブを実行した場合のリソース使用予定量」、「現在実行中であるジョブの今後の状況(ジョブが更にリソース使用する、または、すぐに終了してリソースの空きが増加する等)」、および「現在の同時実行ジョブ数で運用を続けた場合のリソース使用量(現在のリソースの空きが、一時的なものかどうかを判定する)」などの要因から、実行中および実行予定のジョブのリソース使用量と使用予定量を算出・予測する。この算出・予測は、リソース使用量定義ファイルを用いて行う。リソース使用量定義ファイルは、実行が終了したジョブについて、当該ジョブの実行に際して使用したリソース使用量をリアルタイムに記録するファイルである。言わば、ジョブの定義内容とリソース使用量との対応表をリアルタイムに作成・更新するファイルである。当該ファイルから、実行予定または実行中であるジョブのリソース使用量を予測・算出することができる。
【００２８】
なお、同時実行ジョブ数の変更により、スケジュール管理システムから送られるジョブの実行のためにマシン内のCPUやメモリが占有される場合がある。そのような占有が起きると、スケジュール管理システムから送られるジョブ以外の種々の処理が滞るという不都合が生じる。そのため、本実施形態のシステムでは、スケジュール管理システムから送られるジョブの実行のために割り当てるCPUやメモリなどのリソース量の上限を、マシン上限の70〜80%に設定している。また、ディスクへのデータ書き込み、およびネットワークトラフィックについては、マシンスペックから自動的に閾値(ディスクへのデータ書き込み時のデータ転送レートの上限値や、ネットワーク利用時の割り当て帯域量の上限値など)を算出し、当該閾値を超えないように調整する。すなわち、これらのリソースについても、スケジュール管理システムで占有しないように、占有条件をマシン上限の70〜80%とする。
【００２９】
図６は、「ジョブ実行優先順位制御機能」の処理の流れの概要を示すフローチャートである。「ジョブ実行優先順位制御機能」は、常に「リソース監視機能」からの要求待ち状態になっている。「リソース監視機能」は、リソースの状態に変化があったと判断した場合、図４のステップ405でリソース状態の通知を送信する。「ジョブ実行優先順位制御機能」は、「リソース監視機能」から送信されるリソース状態の通知を受信する(ステップ601)。受信したリソース状態と後述する各種の要因から、実行中であるジョブのリソース使用量をシミュレートし、実行優先順位を変更するジョブを決定するとともに、それらのジョブの実行優先順位の増減値βを算出する(ステップ602)。算出した結果から、実行優先順位変更対象ジョブの実行優先順位を「Ｙ」から「Ｙ＋β」へ変更し、安定したシステム運用を実現する(ステップ603)。
【００３０】
上記ステップ602の処理について詳しく説明する。この処理では、受信したリソース状態に加え、「実行中のジョブの定義内容」、「実行中のジョブの実行状況(スケジュールに対して実行が遅れていないか判定する)」、および「実行中のジョブのリソース使用量(必要なリソースが確保できず実行に支障をきたしていないかを確認する)」などの要因から、実行優先順位を変更するジョブと、その順位の増減値を算出する。実行中であるジョブのリソース使用量については、ジョブ受付要求処理機能と同様にリソース使用量定義ファイルからリソース使用量を予測する。
【００３１】
また、実行優先順位の変更によるスケジュール管理システムでのCPUおよびメモリの占有を防止するため、占有条件をマシン上限の70〜80%とするのも、同時実行ジョブ数の変更による場合と同様である。ディスクへのデータ書き込み、およびネットワークトラフィックについて、マシンスペックから自動的に閾値を算出し、当該閾値を超えないように調整し、当該リソースについてスケジュール管理システムで占有しないように占有条件をマシン上限の70〜80%とする点も、同時実行ジョブ数の変更による場合と同様である。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施の形態例を示すシステム構成図
【図２】仮想化技術によって作成された仮想マシンを構築した場合における本発明の一実施の形態例を示すシステム構成図
【図３】本発明の処理の概要を示すフローチャート
【図４】ジョブ受付要求処理機能の概要を示すフローチャート
【図５】ジョブ実行優先順位制御機能の概要を示すフローチャート
【図６】リソース監視機能の概要を示すフローチャート
【符号の説明】
【００３３】
101…スケジュール管理システム、102…ジョブ実行システム、103…ジョブ受付要求処理機能、104，108…同時実行ジョブ数Ｘ、105…リソース監視機能、106…ジョブ実行優先順位制御機能、107…ジョブ実行優先順位。
【図１】
2008204243.tif 000003
【図２】
2008204243.tif 000004
【図３】
2008204243.tif 000005
【図４】
2008204243.tif 000006
【図５】
2008204243.tif 000007
【図６】
2008204243.tif 000008