(57)【特許請求の範囲】
【請求項１】
システムに投入されるジョブをその規模に準じてクラス分けされたキューに投入するジョブ投入手段と、前記キューからジョブを取出し実行するジョブ実行手段とを具え、前記クラス毎にジョブの多重度を設定してジョブ実行管理を行うシステムにおいて、当該システムが更に、実行されたジョブの待ち時間および実行時間に関するデータを作成するデータ作成手段と、該データ作成手段のデータに基づいてクラスの作成の要否を判断する判断手段と、この判断に応じてクラスを新設する設定変更手段と、を具えることを特徴とするジョブ実行管理システム。
【請求項２】
請求項１に記載のジョブ実行管理システムにおいて、前記データ作成手段が、少なくとも前記キューにおける各ジョブの待ち時間を記録する手段と、各ジョブの実行時間を記録する手段とを具え、待ち時間が大きなジョブの実行時間分布のデータを作成することを特徴とするジョブ実行管理システム。
【請求項３】
請求項２に記載のジョブ実行管理システムにおいて、前記判断手段が、前記待ち時間が大きなジョブについての実行時間が当該ジョブが振り分けられたジョブクラスに適当でない場合に、当該ジョブの実行時間について適当なクラスを新設するよう判断することを特徴とするジョブ実行管理システム。
【請求項４】
請求項２又は３に記載のジョブ実行管理システムにおいて、前記判断手段が更に、前記待ち時間が大きなジョブについての実行時間が当該ジョブが振り分けられたジョブクラスに適当である場合に、当該ジョブクラスについての多重度を増やすよう判断すると共に、前記設定変更手段が、前記判断手段の判断に応じて当該ジョブクラスについての多重度を増やすことを特徴とするジョブ実行管理システム。
【請求項５】
請求項１乃至４のいずれかに記載のジョブ実行管理システムにおいて、当該システムが更に、前記ジョブ実行手段によるジョブの実行実績を記録する手段と、前記クラスの削除の要否を判断するクラス削除判断手段と、このクラス削除判断手段の判断に基づいて、前記実行実績の低いジョブクラスの削除を行うクラス削除手段とを具えることを特徴とするジョブ実行管理システム。
【請求項６】
請求項１乃至５のいずれかに記載のジョブ実行管理システムにおいて、当該システムが更に、その時点での前記キューの設定をオペレータに表示する表示手段を具えることを特徴とするジョブ実行管理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムにおけるジョブ実行管理システムに関し、特に、ジョブ実行管理設定の最適化を自動的に行うジョブ実行管理システムに関する。
【０００２】
【従来の技術】
コンピュータシステムのジョブ実行管理においては、システムに投入される多数のジョブはその処理の種類、所要メモリ容量、処理時間、緊急度その他の特徴によっていくつかのジョブクラスに分類され、ジョブキュー（ジョブクラス待行列）に割り付けられる。ここから予め設定されたクラス毎のジョブ多重度に基づいてジョブを取出し実行させることにより、多種多様なジョブを相次ぎ平行して効率よく処理できるようにしている。
【０００３】
従来のシステムでは、各ジョブクラスについて平行して実行されうるジョブ数（ジョブ多重度）等のジョブ管理設定情報は予めオペレータにより与えられ、これに基づいてＯＳがジョブ実行管理を遂行するが、このジョブ管理情報の変更にはオペレータの介入を必要としていた。予めＯＳに複数セットのジョブ処理管理情報を保存しておき、ＯＳがこれらを選択的に用いるシステムも提案されているが（特開昭６０−２７９４９号公報）、この場合でも予め用意するジョブ処理管理情報セットは全てオペレータが用意しなければならない。
【０００４】
オペレータの介入を不要とする試みが、特開平２−４２５３９号公報「自動ジョブスケジューリング方法」に開示されている。この方法では、各ジョブクラスについての実際のジョブ処理状況データを蓄積し、未処理ジョブ件数や平均ジョブ実行時間等の状況データに基づいて各ジョブクラスへのイニシエータの割り当て（ジョブ多重度）が実際のジョブ処理状況に適合するように決定することにより、ジョブ投入状況の変化に応じて自動的にシステムの運用効率の向上を図るようにしている。
【０００５】
【発明が解決しようとする課題】
この方法により、過去の処理傾向からクラスのジョブ多重度についての自動最適化が可能になった。しかしながら、この技術を含む従来の技術ではクラス設定の自動化についてはなんら考慮されていないため、以下のような課題が残るものである。
【０００６】
即ち、極端な例えであるが、十秒以下の処理を想定したクラスと、それ以上の時間を要するクラスとにクラス分けされたキューに、２時間程の処理を要するジョブと数十秒で終了するジョブとが投入される場合を想定する。この場合には両方のジョブが同じキュークラス（十秒以上の処理を要するクラス）に登録されるが、２時間程のジョブがそのクラスの多重度を占有している場合には数十秒で終了するジョブであってもその実行処理を長時間待たされ非効率的となる場合が生ずる。また、予め細分化した多数のクラスを用意しておくことも考えられるが、実際のジョブ投入状況によっては大多数のクラスが無駄なものになり、省いた方がイニシエータの割り当てについて効率アップとなる場合もある。
【０００７】
そこで、本発明は、実際のジョブ投入状況のデータに基づいてジョブキュークラスを作成／削除することにより、ジョブクラス設定についても自動化を図り最適なジョブ実行管理を実現するジョブ実行管理システムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
この目的を達成するために、本発明は、システムに投入されるジョブをその規模に準じてクラス分けされたキューに投入するジョブ投入手段と、前記キューからジョブを取出し実行するジョブ実行手段とを具え、前記クラス毎にジョブの多重度を設定してジョブ実行管理を行うシステムにおいて、当該システムが更に、ジョブ実行処理のデータを作成するデータ作成手段と、該データ作成手段のデータに基づいてクラスの作成の要否を判断する判断手段と、この判断に応じてクラスを新設する変更手段と、を具えることを特徴とする。
【０００９】
このように、その時々のジョブ投入状況に応じてジョブクラスの設定が適切か否かを判断し、クラスを増設した方が良い場合には新たにジョブクラスを作成する手段を設けることにより、例えば従来技術のようにジョブ規模の異なる複数ジョブが同じジョブクラスに振り分けられることを原因とするジョブ実行の遅延を防ぐことができ、ジョブ処理の効率を向上させることができる。
【００１０】
また、本発明のジョブ実行管理システムは、前記データ作成手段が、少なくとも前記キューにおける各ジョブの待ち時間を記録する手段と、各ジョブの実行時間を記録する手段とを具え、待ち時間が大きなジョブの実行時間分布のデータを作成することを特徴とする。このようにデータ作成手段を構成することにより、その時々のジョブ投入状況において、どの規模のジョブがどれ程の待ち時間となっているかを把握して、非合理的な待ち時間がかかっているジョブ規模についての判断を行うことが可能となる。
【００１１】
また、本発明のジョブ実行管理システムは、前記判断手段が、前記待ち時間が大きなジョブについての実行時間が当該ジョブが割り付けられたジョブクラスに適当でない場合に、当該ジョブの実行時間について適当なクラスを新設するよう判断することを特徴とする。このように、ジョブ実行時間（即ち、ジョブの規模）に対して待ち時間が大きなジョブを抽出し、これらのジョブが振り分けられるジョブクラスが適当か否か（例えば、数十秒で終了するジョブが２時間を要するジョブと同じクラスに振り分けられていないか）を判断し、適当でない場合には当該ジョブ規模について妥当なジョブクラスを新設するようにすれば、非効率的なジョブ実行管理を是正することができる。
【００１２】
また、本発明のジョブ実行管理システムは、前記判断手段が更に、前記待ち時間が大きなジョブについての実行時間が当該ジョブが割り付けられたジョブクラスに適当である場合に、当該ジョブクラスについての多重度を増やすよう判断すると共に、前記変更手段が、前記判断手段の判断に応じて当該ジョブクラスについての多重度を増やすことを特徴とする。このようにシステムを構成し、待ち時間が大きいジョブのクラスが適当であると判断される場合には、当該ジョブクラスのジョブ実行多重度を増加させるようにすれば、当該クラスのジョブの待ち時間を減らして効率的なジョブ実行管理を行うことができる。
【００１３】
本発明のジョブ実行管理システムは更に、前記ジョブ実行手段によるジョブの実行実績を記録する手段と、前記ジョブクラスの削除を判断するクラス削除判断手段と、このクラス削除判断手段の判断に基づいて、前記実行実績の低いジョブクラスの削除を行うクラス削除手段とを具えることを特徴とする。このように既に存在するジョブクラスであっても、例えば長いこと全く使用されていないジョブクラスは無駄なものであり、そのクラス自体を削除して割り当てたイニシエータを他に割り当てた方が合理的な場合がある。このような場合にジョブクラスの実行実績を監視して適切にクラスを削除するようにすれば、より効率的なジョブ実行管理を自動的に行うことができる。
【００１４】
更に、本発明のジョブ実行管理システムは更に、その時点でのジョブキュークラスの設定をオペレータに表示する表示手段を具えることを特徴とする。このようにオペレータに有効なキューのクラスを表示すれば、オペレータが見積もったジョブ規模に対し適切なキューを選択する基準を与えることができる。
【００１５】
【発明の実施の形態】
本発明の実施の形態を、添付の図面を参照しながら以下に詳細に説明する。図１は本発明に係るジョブ実行管理システムの一実施形態の構成を示すブロック図である。図１に示すように、このシステムは、端末装置１と、ジョブキュークラス表示手段２と、ジョブ投入手段３と、キュー（ジョブ規模に応じてクラス分けされた待行列）４と、ジョブ実行手段５と、ジョブ待ち時間記録手段６と、ジョブ実行時間記録手段７と、ジョブ規模別度数分布作成手段８と、ジョブキュークラス作成判断手段９と、ジョブキュークラス作成手段１０とを具えている。これらの構成要素１〜１０は、それぞれ概略以下の機能を有する。
【００１６】
端末装置１は、ユーザとの対話処理を行い、サーバマシンとの通信を中継する。ジョブキュークラス表示手段２は、サーバ側における有効なキューのクラスを端末装置１に表示し、ユーザが見積もったジョブ規模に対し適切なキューを選択する基準を与える。ジョブ投入手段３は、端末装置１から送られてきたジョブをキュー４に対して割り付ける。キュー４は、メモリ／ディスク等のリソース不足や多重度大等の理由により実行待ちとなっているジョブを待ち行列方式で管理する。ジョブ実行手段は、キュー４からジョブを取り出し、順次実行する。
【００１７】
ジョブ待ち時間記録手段６は、キュー４での各ジョブの待ち時間を、ジョブ単位で記録する。ジョブ実行時間記録手段７は、ジョブ実行手段５における各ジョブの実行時間を、ジョブ単位で記録する。これらのデータは図２に示すログ１４に書き込まれる。ジョブ規模別度数分布作成手段８は、ログ１４のデータを集計し、少なくとも待ち時間の大きいジョブについての実行時間の分布を作成する。
【００１８】
ジョブキュークラス作成判断手段９は、前記度数分布作成手段８の結果において度数の大きいジョブ実行時間に注目し、ここで注目した実行期間（即ち、ジョブの規模）のジョブについて、割り付けたクラスが妥当なものであるか否かを判断する。実行時間がキューのクラスと照らし合わせて妥当であれば、当該キューでの実行多重度を増加する旨の指示を出す。一方、ジョブ規模がキューのクラスと照らし合わせて妥当でなければ、新規クラスを持ったキューを作成する旨の指示を出す。ジョブキュークラス作成手段１０はこの信号に応じてキューを作成し、更新する。
【００１９】
このように構成したシステムの動作を、以下に説明する。図２は図１に示すシステムの動作を説明するフローチャートである。まず、ユーザは投入するジョブについて最適と思われるクラスを選択する（ステップＳ２）。クラスはキューに対応している。ジョブ投入手段３によりジョブはキュー４に投入され（ステップＳ３）、ジョブ実行手段５により取り出されて実行される。この際のキュー４内での待ち時間と実行処理に要した時間、及び割り付けられたクラス（キュー）がジョブ待ち時間記録手段６及びジョブ実行時間記録手段７により、ログ１４に記録される（ステップＳ４）。この記録処理フローは、当該サーバにおけるジョブ規模の傾向を類推するために、予め設定したＮ回に達するまで繰り返される。
【００２０】
Ｎ回の記録がなされた後（ステップＳ１）、記録したログに基づいてデータの集計が行われる（ステップＳ５）。ここでは、各クラスにつきジョブ実行時間に比べ待ち時間の大きなジョブを予め設定した基準で抽出し、これらジョブの実行時間の度数分布を作成する。ここで作成されたデータに基づき、ジョブキュークラス作成判断手段９にてジョブ実行管理設定を変更するか否かの判断が行われる（ステップＳ６）。即ち、前記分布において予め設定した度数を超えるジョブ実行時間帯の有無が検出され、無い場合にその時点ではジョブ実行管理設定は適切であることが分かり、設定の変更を行わずに再びログ記録行程（ステップＳ１〜Ｓ４）を繰り返す。
【００２１】
ステップＳ６にて予め設定した分布度数を越えるジョブ実行時間帯があった場合は、更に、その実行時間帯がそれらのジョブが割り付けられたクラスに設定した実行時間帯と一致するか否かが判断される（ステップＳ７）。このことにより、その規模に対して待ち時間が大きなジョブが相当数ある場合に、これらのジョブが投入されたクラスはそのジョブ規模に妥当なものであるか、即ちジョブ投入状況に対してクラス設定は適切であるかが判明する。この結果実行時間帯が一致した場合は、クラス設定は適切であるが当該クラスについての処理能力が足りないことが分かり、このクラスへのジョブ多重度を増加させる（ステップＳ８）。一方、実行時間帯が一致しない場合は、クラス設定が適切でないことが分かり、前記待ち時間が大きな実行時間帯のジョブ規模に適したクラスを新設する（ステップＳ９）。最後にジョブキュークラスの更新が行われ（ステップＳ１０）、ジョブキュークラス表示手段２によりユーザに最新情報を提供できるようにする。
【００２２】
具体的な動作の例を挙げると、数十秒程度の処理を想定したキューに数十秒で終了するジョブがそのクラスの多重度を超えて多数投入されると、結果として実行処理までに相当期間待たされることになる。この場合は、待ち時間大として検出されるがジョブ実行時間がキューに想定したジョブ実行時間と一致するため、当該キューへの処理能力不足と判断して多重度が増加される。一方、２時間程度の処理を想定したキューに数十秒で終了するジョブを投入した場合、そのキューが空でなければ最低２時間は待たされることになる。この場合も待ち時間大として検出され、更にジョブ実行時間（数十秒程度）がキューに想定したジョブ実行時間（２時間程度）と異なるので、この規模のジョブに適切なクラスの新設が行われる（数十秒程度のジョブを想定したクラスが新設される）。
【００２３】
図３は、本発明に係るジョブ実行管理システムの更なる実施形態の構成を示す図である。図３に示すシステムは、図１に記載した構成要素の全てに加えて、ジョブ実行実績記録手段１１と、ジョブキュークラス削除判断手段１２とを具える。また、図１に示すジョブキュークラス作成手段１０は図３の例では作成／削除手段１３に代替されている。これらの構成要素以外は図１に示す実施形態と全く同一の構成及び動作をするものとし、同じ符号を付してその重複する説明は省略する。
【００２４】
ジョブ実行実績記録手段１１は、ジョブ実行手段５でのジョブ実行実績を記録／保存する。また、ジョブキュークラス削除判断手段１２は、ジョブ実行実績記録手段１１からのデータに基づき、実行実績の少ないジョブキュークラスを削除するか否かの判断を行う。具体的には、所定の期間各クラスについてその実行回数が記録され、実行実績が０回あるいは予め定められた基準値以下であるクラスを削除する判断を行うようにする。ジョブキュークラス削除判断手段１２にてクラスを削除すべき判断が行われた場合はジョブキュークラス作成／削除手段１３に指示が出され、当該クラスが削除される。
【００２５】
このことにより、実行実績がなくもはや不要となったクラスを整理することができ、当該クラスへのイニシエータの割り当て等を考慮する必要がなくなるため、ジョブ実行管理の効率化を図ることができる。なお、本発明のシステムでは上述したようにクラスの新設を行うことを可能としているため、実行実績のないクラスを削除してもその後に必要に応じて新設することができる。
【００２６】
【発明の効果】
上記に詳細に説明した通り、本発明のジョブ実行管理システムでは、ジョブ実行時間の傾向を記録し、その時々の傾向に合わせてクラス設定を行うことを可能にしている。そのため、クラス（キュー）に対する多重度の最適化のみならず、クラスの最適化設定を動的かつ自動的に行うことが可能となるため、非合理的なジョブの実行待ち時間を削減することができ、ジョブ処理の効率化を図ることができる。
【図面の簡単な説明】
【図１】図１は、本発明に係るジョブ実行管理システムの構成を示すブロック図である。
【図２】図２は、図１に示すシステムの動作を説明するフローチャートである。
【図３】図３は、本発明に係るジョブ実行管理システムの別の実施形態の構成を示す図である。
【符号の説明】
１      端末装置
２      ジョブキュークラス表示手段
３      ジョブ投入手段
４      キュー
５      ジョブ実行手段
６      ジョブ待ち時間記録手段
７      ジョブ実行時間記録手段
８      ジョブ規模別度数分布作成手段
９      ジョブキュークラス作成判断手段
１０    ジョブキュークラス作成手段
１１    ジョブ実行実績記録手段
１２    ジョブキュークラス削除判断手段
１３    ジョブキュークラス作成／削除手段
１４    ログ
【図１】
0003543658.tif 000002
【図２】
0003543658.tif 000003
【図３】
0003543658.tif 000004