(57)【要約】【課題】複数のジョブの実行において、実行期間を変更することにより、制約条件を満たしつつ、性能劣化を防ぐ。【解決手段】プロセッサは、複数のジョブに対し、各ジョブの実行予定期間と、各ジョブのリソース使用予定量と、制約条件と、ジョブ間の従属関係とを示すジョブ情報を取得し、複数のジョブの実行状況を取得し、ジョブ情報及び実行状況に基づいて、各ジョブが、予め設定された逸脱条件を満たすか否かを判定する、ように構成される。複数のジョブが逸脱条件を満たすと判定された場合、プロセッサは、常に複数のジョブのリソース使用予定量の合計が、予め設定されたリソース使用量閾値以下であり、且つ複数のジョブの中の特定ジョブが制約条件を満たす、という変更条件の下で、複数のジョブの中の変更ジョブの実行期間を変更する。【選択図】図１
2018041296.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリに接続されるプロセッサと、
を備え、
前記プロセッサは、
複数のジョブに対し、各ジョブの実行予定期間と、各ジョブのリソース使用予定量と、制約条件と、ジョブ間の従属関係とを示すジョブ情報を取得し、
前記複数のジョブの実行状況を取得し、
前記ジョブ情報及び前記実行状況に基づいて、各ジョブが、予め設定された逸脱条件を満たすか否かを判定する、
ように構成され、
前記複数のジョブが前記逸脱条件を満たすと判定された場合、前記プロセッサは、常に前記複数のジョブのリソース使用予定量の合計が、予め設定されたリソース使用量閾値以下であり、且つ前記複数のジョブの中の特定ジョブが制約条件を満たす、という変更条件の下で、前記複数のジョブの中の変更ジョブの実行期間を変更する、
計算機システム。
【請求項２】
前記制約条件は、前記特定ジョブが、予め設定された終了期限以前に終了することである、
請求項１に記載の計算機システム。
【請求項３】
前記複数のジョブが前記逸脱条件を満たすと判定された場合、前記プロセッサは、前記変更ジョブの実行期間候補を算出し、前記ジョブ情報及び前記実行期間候補に基づいて、前記実行期間候補が前記変更条件を満たすか否かを判定し、前記実行期間候補が前記変更条件を満たす場合、前記変更ジョブの実行期間を前記実行期間候補に変更する、
請求項２に記載の計算機システム。
【請求項４】
前記実行期間候補が前記変更条件を満たさない場合、前記プロセッサは、前記実行期間候補の算出と前記実行期間候補の判定とを繰り返し、
前記実行期間候補の判定の回数が、規定回数に達した場合、前記プロセッサは、アラームを報知する、
請求項３に記載の計算機システム。
【請求項５】
前記実行状況は、実行されたジョブの実行期間の実績である実行実績期間を含み、
前記逸脱条件は、前記実行されたジョブの実行予定期間の開始時刻と、前記実行されたジョブの実行実績期間の開始時刻との差、又は前記実行されたジョブの実行予定期間の終了時刻と、前記実行されたジョブの実行実績期間の終了時刻との差が、予め設定された時刻閾値よりも大きいことである、
請求項４に記載の計算機システム。
【請求項６】
前記実行状況は、前記実行されたジョブの処理件数を含み、
前記ジョブ情報は、前記実行されたジョブの処理件数の予定量である処理予定件数を含み、
前記プロセッサは、前記実行されたジョブの処理予定件数及び処理件数に基づいて、前記実行されたジョブの実行期間の長さを、処理予測時間として予測し、前記実行されたジョブの処理予測時間に基づいて、各ジョブの実行期間を予測する、
請求項４に記載の計算機システム。
【請求項７】
前記逸脱条件は、前記実行されたジョブの処理予定件数と、前記実行されたジョブの現在の処理件数との差が、予め設定された処理件数変化量閾値よりも大きいことである、
請求項６に記載の計算機システム。
【請求項８】
前記プロセッサは、前記変更ジョブの前記変更された実行期間を、表示デバイスに表示させるように構成されている、
請求項１乃至７の何れか一項に記載の計算機システム。
【請求項９】
前記プロセッサは、前記変更ジョブの前記変更された実行期間の開始時刻を示す指令を、前記複数のジョブを実行する業務システムへ発行するように構成されている、
請求項１乃至７の何れか一項に記載の計算機システム。
【請求項１０】
複数のジョブに対し、各ジョブの実行予定期間と、各ジョブのリソース使用予定量と、制約条件と、ジョブ間の従属関係とを示すジョブ情報を取得し、
前記複数のジョブの実行状況を取得し、
前記ジョブ情報及び前記実行状況に基づいて、各ジョブが、予め設定された逸脱条件を満たすか否かを判定し、
前記複数のジョブが前記逸脱条件を満たすと判定された場合、常に前記複数のジョブのリソース使用予定量の合計が、予め設定されたリソース使用量閾値以下であり、且つ前記複数のジョブの中の特定ジョブが制約条件を満たす、という変更条件の下で、前記複数のジョブの中の変更ジョブの実行期間を変更する、
ことを備える、
ジョブ実行計画変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに関する。
【背景技術】
【０００２】
近年、様々な事業分野の自由化や、企業の事業拡大に伴い、業務システムには機能の多様化が求められている。
【０００３】
様々な機能を具備した大規模業務システムを構築する際、複数のサブシステムを構築し、サブシステム間で情報を共有することにより、１つの業務システムとして機能させることがある。サブシステムは、業務機能毎に構築されたり、既存システムを組み合わせて構築されたりすることにより、各々の機能に沿った業務を実施する。
【０００４】
サブシステム間で情報を共有するにあたり、他サブシステムの処理結果を参照（データ参照）することや、特定の処理を契機に他サブシステムと連携（イベント連携）することがある。データ参照やイベント連携を正しく行うために、ＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）と呼ばれる終了期限を設けることがある。
【０００５】
また、各業務機能はそれぞれに性能特性を持つため、リソースの消費傾向に応じて性能を左右する要因が異なる。特許文献１では、このような性能特性が異なる複数のアプリケーションが混在して稼働している環境において、ボトルネック要因を推定することにより、性能劣化の要因を特定する技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１５／１４５６６４号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１では性能特性が異なるアプリケーションがジョブとして稼働し、遅延が発生することによる影響については考慮されていない。そのため、ジョブの処理時間の増加や障害により本来の実行期間と異なる期間に走行することによる性能劣化の推定ができない。性能劣化はＳＬＡ超過の原因となる。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様である計算機システムは、メモリと、前記メモリに接続されるプロセッサと、を備える。前記プロセッサは、複数のジョブに対し、各ジョブの実行予定期間と、各ジョブのリソース使用予定量と、制約条件と、ジョブ間の従属関係とを示すジョブ情報を取得し、前記複数のジョブの実行状況を取得し、前記ジョブ情報及び前記実行状況に基づいて、各ジョブが、予め設定された逸脱条件を満たすか否かを判定する、ように構成される。前記複数のジョブが前記逸脱条件を満たすと判定された場合、前記プロセッサは、常に前記複数のジョブのリソース使用予定量の合計が、予め設定されたリソース使用量閾値以下であり、且つ前記複数のジョブの中の特定ジョブが制約条件を満たす、という変更条件の下で、前記複数のジョブの中の変更ジョブの実行期間を変更する。
【発明の効果】
【０００９】
複数のジョブの実行において、実行期間を変更することにより、制約条件を満たしつつ、性能劣化を防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】実施例に係る計算機システムの構成の一例を示す。
【図２】ジョブフローの一例を示す。
【図３】ジョブ実行実績統合ＤＢ１１０の一例を示す。
【図４】リソース使用率の時間変化の第１の例を示す。
【図５】ジョブ遅延判定情報５００の一例を示す。
【図６】リソース使用率の時間変化の第２の例を示す。
【図７】性能劣化回避処理を示す。
【図８】性能劣化回避情報６００の一例を示す。
【図９】リソース使用率の時間変化の第３の例を示す。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態を説明する。
【００１２】
以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部又は一部が１つのテーブルであってもよい。
【００１３】
また、以下の説明では、要素の識別情報として、ＩＤが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
【００１４】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたＩＤを使用することがある。
【００１５】
また、以下の説明では、Ｉ／Ｏ（Input/Output）要求は、ライト要求又はリード要求であり、アクセス要求と呼ばれてもよい。
【００１６】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central Processing Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又はインターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ（例えばＣＰＵ）と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。
【００１７】
図１は、実施例に係る計算機システムの構成の一例を示す。
【００１８】
計算機システムは、メモリ１００、ＣＰＵ２００、入力デバイス３００、表示デバイス４００を含む。本実施例において、計算機システムの各機能は一つの計算機（サーバ）上に搭載されている。メモリ１００は、プログラムおよびデータを格納する。ＣＰＵ２００は、メモリ１００に格納されたプログラムに従って処理を実行する。入力デバイス３００は、管理者からの情報の入力を受け付ける。表示デバイス４００は、ＣＰＵ２００からの指示に従って情報を表示する。入力デバイス３００、表示デバイス４００の代わりに、ネットワークを介して計算機システムに接続される端末装置が用いられてもよい。
【００１９】
メモリ１００は、プログラムとして、業務システム１０１、リソース監視部１０２、リソース情報収集部１０３、ジョブ実行部１０５、ジョブ実行実績収集部１０６、ジョブ実行実績統合部１０９、ジョブ遅延判定部１１１、性能劣化判定部１１２、性能劣化回避部１１３を格納する。更にメモリ１００は、データとして、リソース情報データベース（ＤＢ）１０４、ジョブ実行実績ＤＢ１０７、ジョブ構成管理ＤＢ１０８、ジョブ実行実績統合ＤＢ１１０を格納する。
【００２０】
業務システム１０１は、複数のサブシステムを含み、各サブシステム間でイベント連携やデータ参照を行うことにより日々の業務を実施する。
【００２１】
ジョブ構成管理ＤＢ１０８は、イベント連携情報や、データ参照関係といった各ジョブネットの前後関係を保持する。ジョブネットは、少なくとも一つのジョブを含む。例えば、ジョブネットの前後関係は、当該ジョブネットの前段である前提ジョブネットや、当該ジョブネットの後段である後続ジョブネットを示す。データ参照関係は、ジョブネットが前提ジョブネットのデータを参照することを示す。イベント連携情報は、ジョブネットが前提ジョブネットのイベントを受けて処理を開始することを示す。イベント連携情報や、データ参照関係を、従属関係と呼ぶことがある。
【００２２】
また、ジョブ構成管理ＤＢ１０８は、特定のジョブネットの終了期限を示すＳＬＡ時刻を保持する。ジョブ構成管理ＤＢ１０８は、特定のジョブネットについて計画された開始時刻（開始計画時刻）を保持してもよい。ジョブ構成管理ＤＢ１０８に格納されるジョブ構成情報は、予め管理者または開発者により設定される。
【００２３】
ジョブ構成管理ＤＢ１０８が保持している情報を元に、ジョブ実行部１０５は、業務システム１０１にジョブの実行の命令を出す。例えば、ジョブ構成管理ＤＢ１０８が、あるジョブネットの開始時刻を保持している場合、ジョブ実行部１０５は、開始時刻に、当該ジョブネットの実行の命令を業務システム１０１に発行する。また、ジョブ実行部１０５は、例えば命令に対する返り値に基づいてジョブが正常に完了したか否かを判定する。
【００２４】
開始時刻が設定されているジョブネットが、前提ジョブネットから出力されるデータを参照する場合で、前提ジョブネットの終了時刻が当該ジョブネットの開始時刻よりも遅延すると、当該ジョブネットが異常終了する等の不具合が発生する。
【００２５】
ジョブ実行実績収集部１０６は、業務システム１０１が実行したジョブの実行情報を、ジョブ実行部１０５を通じて収集し、収集された実行情報をジョブ実行実績としてジョブ実行実績ＤＢ１０７に登録する。例えば、ジョブ実行実績ＤＢ１０７は、実行されたジョブの開始時刻、終了時刻、処理件数を含む。例えば、ジョブネットがファイル内のレコードを処理する場合、処理件数は、当該ファイル内のレコード件数であってもよい。また、ジョブネットがＤＢに登録されるデータを処理する場合、処理件数は、ＤＢに登録されているデータ量の増分であってもよい。ジョブ実行実績ＤＢ１０７は、正常に完了したか否かを示す実行結果を含んでもよい。
【００２６】
リソース監視部１０２は、業務システム１０１が業務を実行している際のＣＰＵやメモリといった各種リソースの使用状況を、繰り返し監視する。
【００２７】
リソース情報収集部１０３は、リソース監視部１０２が監視した結果を、リソース使用率等のリソース情報としてリソース情報ＤＢ１０４に登録する。リソース情報は、ＣＰＵの使用時間やメモリの使用量等の、リソース使用量であってもよい。
【００２８】
ジョブ実行実績統合部１０９は、リソース情報ＤＢ１０４、ジョブ実行実績ＤＢ１０７、ジョブ構成管理ＤＢ１０８に登録されたデータを統合し、統合されたデータをジョブ実行実績統合ＤＢ１１０に蓄積する。ジョブ実行実績統合ＤＢ１１０に蓄積される情報の一例として、ジョブネット毎の、開始予定時刻、終了予定時刻、ＳＬＡ時刻、処理予定件数、リソース使用率、前提ジョブネット、後続ジョブネットがある。ここで、ジョブ実行実績統合部１０９は、ジョブ実行実績ＤＢ１０７に登録されている日々の業務の実行実績をもとに、開始予定時刻、終了予定時刻、処理予定件数を算出する。また、ジョブ実行実績統合部１０９は、リソース情報ＤＢ１０４をもとに、リソース使用率を算出する。また、ジョブ実行実績統合部１０９は、ジョブ構成管理ＤＢ１０８に登録されている情報をもとに、ＳＬＡ時刻、前提ジョブネット、後続ジョブネットを、ジョブ実行実績統合ＤＢ１１０へ格納する。
【００２９】
ジョブ遅延判定部１１１は、ジョブ実行実績統合ＤＢ１１０に蓄積された過去のデータと現在のジョブ実行実績とから、ジョブネットに遅延の発生が見込まれるかを判定する。このとき、ジョブ遅延判定部１１１は、実行されたジョブネットの開始時刻および終了時刻の遅延を検出してもよい。また、ジョブ遅延判定部１１１は、実行されたジョブネットの処理件数の推移から処理時間の増減を推定することにより、ジョブネットに遅延発生が見込まれるかを判定してもよい。処理時間は、ジョブネットの開始時刻から終了時刻までの時間の長さである。
【００３０】
ジョブ遅延判定部１１１にてジョブネットの遅延が発生する見込みであると判定された際、性能劣化判定部１１２は、性能劣化が発生しうるか判定する。ここで性能劣化判定部１１２は、ジョブ実行実績統合ＤＢ１１０に蓄積されたジョブ構成情報と、リソース情報と、ジョブ遅延判定部１１１により判定された処理時間の増減とから、リソース限界による性能劣化が起こりうるかを判定する。具体的には、性能劣化判定部１１２は、遅延が発生すると見込まれたジョブネット及び後続のジョブネットと、同期間に走行するジョブネットとのリソース使用率の合計が１００％を超過する場合、性能劣化が見込まれる期間として判定する。
【００３１】
性能劣化判定部１１２にて性能劣化の発生が見込まれると判定された際、性能劣化回避部１１３は、性能劣化が見込まれる期間のジョブ開始時刻変更指令をジョブ実行部１０５に出す。ここで性能劣化回避部１１３は、ジョブ実行実績統合ＤＢ１１０に蓄積されている情報をもとに、開始時刻を変更するジョブに対して、変更先の期間において性能劣化が発生するか、また変更後にＳＬＡ時刻超過が発生するかを評価する。評価の結果、性能劣化が発生せず、且つＳＬＡ時刻超過が発生しないと判定された場合、性能劣化回避部１１３は、ジョブ開始時刻変更指令を出す。評価の結果、性能劣化またはＳＬＡ時刻超過が発生すると判定された場合、性能劣化回避部１１３は、アラームの報知を行う。
【００３２】
あるジョブネットの変更後の開始時刻を示すジョブ開始時刻変更指令を受けたジョブ実行部１０５は、ジョブ構成管理ＤＢ１０８に開始時刻が設定されている場合であっても、変更後の開始時刻を優先し、変更後の開始時刻に当該ジョブネットを実行する。
【００３３】
なお、業務システム１０１が、別のサーバ上にあってもよい。また、リソース監視部１０２、リソース情報収集部１０３、リソース情報ＤＢ１０４が、別のサーバ上にあってもよい。また、ジョブ実行部１０５、ジョブ実行実績収集部１０６、ジョブ実行実績ＤＢ１０７、ジョブ構成管理ＤＢ１０８が、別のサーバ上にあってもよい。ジョブ実行実績統合部１０９、ジョブ遅延判定部１１１、性能劣化判定部１１２、性能劣化回避部１１３、ジョブ実行実績統合ＤＢ１１０が、別のサーバ上にあってもよい。
【００３４】
例えば、業務システム１０１内の各サブシステムが既存システムであり、それぞれのサブシステムが、リソース監視、ジョブ実行管理を行う際、ジョブ実行実績統合部１０９が各サブシステムのリソース情報、ジョブ実行実績、ジョブ構成情報を収集する。
【００３５】
なお、リソース監視部１０２、リソース情報収集部１０３、リソース情報ＤＢ１０４、ジョブ実行実績統合部１０９、ジョブ実行実績統合ＤＢ１１０、性能劣化判定部１１２、性能劣化回避部１１３は、ＣＰＵ、メモリ等、複数の種類のリソースのリソース使用率を用いてもよい。
【００３６】
図２は、ジョブフローの一例を示す。
【００３７】
ジョブフローは、イベント連携やデータ参照関係など、ジョブネット間の前後関係を示している。例えば、ジョブネットＡは、ジョブネットＢの前提ジョブネットであり、ジョブネットＢはジョブネットＡの後続ジョブネットの関係にある。ジョブネットＢは、ジョブネットＡの結果のデータを読み込んで処理を開始するため、ジョブネットＡの終了前に開始することができず、順番を逆にしたり、同時に処理したりすることはできない。また、ジョブネットＨ、Ｉ、Ｊ、Ｋは、ジョブネットＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇとの前後関係を持たず、並列に処理することができる。また、ジョブネットＥ、Ｆ、Ｆは、ジョブネットＣ、Ｄとの前後関係を持たず、並列に処理することができる。
【００３８】
ジョブ構成管理ＤＢ１０８は、ジョブフローの実行期間を含む、実行計画を示す。実行計画は、予め設定された実行周期毎に実行される。本実施例において、実行周期は１日である。
【００３９】
図３は、ジョブ実行実績統合ＤＢ１１０の一例を示す。
【００４０】
この図の例は、図２にて述べたジョブフローに対応する。ジョブ実行実績統合ＤＢ１１０は、ジョブネット毎のエントリを有する。一つのジョブネットに対応するエントリは、ジョブネット名４１１、開始予定時刻４１３、終了予定時刻４１６、ＳＬＡ時刻４２３、処理予定件数４２２、リソース使用率４２４、前提ジョブネット４３１、後続ジョブネット４３２を含む。
【００４１】
ジョブネット名４１１は、当該ジョブネットを示す。開始予定時刻４１３は、当該ジョブネットの実行開始の予定時刻を示す。終了予定時刻４１６は、当該ジョブネットの実行終了の予定時刻を示す。ＳＬＡ時刻４２３は、当該ジョブネットに設定された終了期限を示す。処理予定件数４２２は、当該ジョブネットによる処理件数の予定量を示す。リソース使用率４２４は、当該ジョブネットによるリソース使用率の予定量を示す。前提ジョブネット４３１は、当該ジョブネットの前段のジョブネットを示す。後続ジョブネット４３２は、当該ジョブネットの後段のジョブネットを示す。
【００４２】
ＳＬＡ時刻４２３は、設定されないジョブネットがあってもよい。ＳＬＡ時刻４２３が設定されているジョブを特定ジョブと呼ぶことがある。
【００４３】
開始予定時刻４１３から終了予定時刻４１６までの期間を実行予定期間と呼ぶことがある。ジョブ構成管理ＤＢ１０８にジョブネットの開始時刻が登録されている場合、当該ジョブネットの開始予定時刻の代わりに、開始時刻が用いられてもよい。開始予定時刻４１３、終了予定時刻４１６、処理予定件数４２２は、ジョブ実行実績ＤＢ１０７に登録されている日々の業務の実行結果をもとに導かれる。例えば、ジョブ実行実績統合部１０９は、ジョブ実行実績ＤＢ１０７における各ジョブネットの、開始時刻、終了時刻、処理件数について、平均値を算出し、夫々、開始予定時刻４１３、終了予定時刻４１６、処理予定件数４２２として格納する。
【００４４】
リソース使用率４２４は、リソース情報ＤＢ１０４に登録されている日々の業務の実行結果をもとに導かれる。例えば、ジョブ実行実績統合部１０９は、各ジョブネットに対し、リソース情報ＤＢ１０４における実行期間中のリソース使用率の最大値を、ジョブ実行実績統合ＤＢ１１０のリソース使用率として算出する。リソース使用率４２４の代わりに、リソース使用量の予定量等、他のリソース使用予定量が用いられてもよい。
【００４５】
各ジョブネットの前後関係を示す前提ジョブネット４３１および後続ジョブネット４３２と、ＳＬＡ時刻４２３とは、ジョブ構成管理ＤＢ１０８にて管理されている。本実施例におけるＳＬＡ時刻は、業務システム１０１に対し、顧客との契約や他のシステムとの関係で定められる処理期限の時刻としている。この時刻までに特定のジョブネットの処理が完了しないことは、顧客や他のシステムに影響を与えるため、可能な限り回避されるべきである。回避不能な場合でも、早く予知して対策を講じることが求められる。
【００４６】
ＳＬＡ時刻の代わりに、ジョブネットの実行に対する他の制約条件が設定されてもよい。制約条件は、特定のジョブネットが正常に完了することであってもよいし、特定のジョブネットの実行期間が他のジョブネットの実行期間に重ならないことであってもよいし、実行計画が一定の周期で実行される場合、特定のジョブネットが次の周期の実行計画の開始までに完了することであってもよい。
【００４７】
ジョブ実行実績統合ＤＢ１１０、または、リソース情報ＤＢ１０４、ジョブ実行実績ＤＢ１０７、ジョブ構成管理ＤＢ１０８を、ジョブ情報と呼ぶことがある。ジョブ実行実績を実行状況と呼ぶことがある。
【００４８】
図４は、リソース使用率の時間変化の第１の例を示す。
【００４９】
この図の例は、図３の状態に対応する。即ち、この図は、通常時のリソース使用率の時間変化を示す。
【００５０】
この図において、縦軸は時刻を示し、横軸はリソース使用率を示す。点線は各ジョブネットの実行期間とリソース使用率を表し、実線は各時刻におけるリソース使用率の合計値を表す。この図の例では、リソース使用率が１００％を超えている時刻はなく、性能劣化は発生しない。
【００５１】
図５は、ジョブ遅延判定情報５００の一例を示す。
【００５２】
ジョブ遅延判定情報５００は、ジョブ遅延判定部１１１により収集される。ジョブ遅延判定情報５００は、ジョブネット毎のエントリを有する。一つのジョブネットに対応するエントリは、ジョブネット名５１１、開始時刻５１２、開始予測時刻５１３、終了時刻５１５、終了予測時刻５１６、処理件数５２１、処理予測件数５２２、ＳＬＡ時刻５２３、リソース使用率５２４を含む。
【００５３】
ジョブネット名５１１は、当該ジョブネットを示す。開始時刻５１２は、当該ジョブネットの開始時刻の実績値である。開始予測時刻５１３は、当該ジョブネットの開始時刻の予測値である。終了時刻５１５は、当該ジョブネットの終了時刻の実績値である。終了予測時刻５１６は、当該ジョブネットの終了時刻の予測値である。処理件数５２１は、当該ジョブネットの処理件数の実績値である。処理予測件数５２２は、当該ジョブネットの処理件数の予測値である。ＳＬＡ時刻５２３は、当該ジョブネットのＳＬＡ時刻４２３である。リソース使用率５２４は、当該ジョブネットのリソース使用率４２４である。
【００５４】
ジョブ遅延判定部１１１は、ジョブ実行実績ＤＢ１０７から、実行中のジョブネットの開始時刻、終了時刻、処理件数を収集する。ジョブ遅延判定部１１１は更に、ジョブ実行実績統合ＤＢ１１０の一部を収集する。ジョブ遅延判定部１１１は、何れかのジョブネットが、予め設定された逸脱条件を満たす場合、ジョブネットの実行が遅延し、業務システム１０１の性能劣化が発生すると判定する。
【００５５】
ここで、ジョブ遅延判定部１１１は、収集された情報に基づいて、実行中のジョブネットの処理件数および処理予定件数の差から、処理時間の増減を予測してもよい。例えば、逸脱条件は、あるジョブネットの処理件数が増加することであってもよい。具体的には、逸脱条件は、実行中のジョブネットの処理件数から処理予定件数を減じて得られる値が、予め設定された処理件数変化量閾値よりも大きいことであってもよい。
【００５６】
また、逸脱条件は、実行されたジョブネットの開始時刻の実績である開始実績時刻、または実行されたジョブネットの終了時刻の実績である終了実績時刻の何れかが遅延することであってもよい。例えば、逸脱条件は、あるジョブネットの開始実績時刻から、開始時刻５１２または開始予定時刻４１３を減じて得られる値が、予め設定された時刻変化量よりも大きいことであってもよい。また、逸脱条件は、あるジョブネットの終了実績時刻から、終了時刻５１５または終了予定時刻４１６を減じて得られる値が、予め設定された時刻変化量よりも大きいことであってもよい。開始実績時刻から終了実績時刻までの期間を、実行実績期間と呼ぶことがある。
【００５７】
また、ジョブ遅延判定部１１１は、過去の処理時間及び処理件数から単位処理件数あたりの処理時間を推定し、推定した単位処理件数あたりの処理時間に処理件数を乗算することにより、ジョブネットの処理時間を予測してもよい。ジョブ遅延判定部１１１は、予測された処理時間に基づいて、各ジョブネットの開始予測時刻５１３および終了予測時刻５１６を算出してもよい。逸脱条件は、あるジョブネットの開始予測時刻５１３から、開始時刻５１２または開始予定時刻４１３を減じて得られる値が、予め設定された時刻変化量よりも大きいことであってもよい。また、逸脱条件は、あるジョブネットの終了予測時刻５１６から、終了時刻５１５または終了予定時刻４１６を減じて得られる値が、予め設定された時刻変化量よりも大きいことであってもよい。
【００５８】
更にジョブ遅延判定部１１１は、イベント連携やデータ参照等の前後関係と、前提ジョブネットの処理件数とを用いて、後続ジョブネットの処理件数について予測を行う。
【００５９】
図５は、図３の例においてジョブネットＣの処理件数が増加した場合のジョブ遅延判定情報５００を示す。この図の例において、ジョブネットＣの処理件数が増加し、ジョブネットＣの処理時間が増加し、ジョブネットＣの終了予測時刻５１６が終了予定時刻４１６よりも遅延することが予測される。
【００６０】
図６は、リソース使用率の時間変化の第２の例を示す。
【００６１】
この図は、図５の状態に対応する。即ち、この図は、ジョブネットＣの処理件数が増加した場合のリソース使用率の時間変化を示す。
【００６２】
この図の例は、図４の例に比べて、ジョブネットＣの処理時間が延び、終了予測時刻が遅延することにより、本来同期間に走行することのなかったジョブネットＣとジョブネットＧとジョブネットＪとの処理が重なる。この場合、性能劣化判定部１１２は、斜線で示された期間において、リソース使用率が１００％を超過するため、性能劣化が発生すると判定する。この状態では、処理が非効率になり、リソース使用量の超過以上に処理遅延が大きくなるため、リソース超過は回避することが望ましい。
【００６３】
性能劣化が発生することにより、該当期間のジョブネット処理時間が延びることが想定される。したがって、ジョブネットＣ、ジョブネットＧ、ジョブネットＪの終了予測時刻が遅れるとともに、それぞれのジョブネットの後続の終了予測時刻にも影響が出る。
【００６４】
そのため、影響範囲下にあるジョブネットのうち、ジョブネットＤ、ジョブネットＪ、ジョブネットＫにおいて、ＳＬＡ時刻超過が発生することが考えられる。
【００６５】
図７は、性能劣化回避処理を示す。
【００６６】
ジョブネットの実行期間の遅延等により、性能劣化判定部１１２により特定の期間において性能劣化の発生が見込まれた場合、７１０において性能劣化回避部１１３は、性能劣化回避処理を開始する。例えば、性能劣化判定部１１２は、何れかのジョブネットが逸脱条件を満たす場合に、性能劣化が発生すると判定する。
【００６７】
７０２において性能劣化回避部１１３は、性能劣化の発生が見込まれた期間に実行予定となっているジョブネットの中から一つのジョブネットを選択し、実行期間を変更する。このとき、性能劣化回避部１１３は、ジョブ実行実績統合ＤＢ１１０にて管理されている各ジョブネットの前後関係を保持したままジョブネットの開始時刻を変更する。例えば、性能劣化回避部１１３は、性能劣化の発生する期間におけるジョブネットの開始時刻を、予め設定された時間間隔だけ後方へ変更する。性能劣化の発生する期間に複数のジョブネットが実行される場合、自身とそれよりも後段のジョブネットとにＳＬＡ時刻が設定されていないジョブネットを優先して選択し、その開始時刻を変更してもよい。７０２において選択されたジョブを変更ジョブと呼ぶことがある。７０２において変更された実行期間を、実行期間候補と呼ぶことがある。
【００６８】
７０３において性能劣化回避部１１３は、ジョブ実行実績統合ＤＢ１１０に基づいて、変更後のジョブネットの実行期間と、後続のジョブネットの実行期間とのリソース使用率の評価を行う。
【００６９】
７０４において性能劣化回避部１１３は、７０３の評価結果をもとに、新たに性能劣化が発生するか否かを判定する。ここで、性能劣化回避部１１３は、リソース使用率の合計が１００％を超える場合、性能劣化が発生すると判定する。
【００７０】
７０４の結果、性能劣化が発生しないと判定された場合（ＮＯ）、７０５において性能劣化回避部１１３は、変更後のジョブネットの終了時刻および、後続のジョブネットの終了時刻について、ジョブ実行実績統合ＤＢ１１０にて管理されている情報をもとに、評価を行う。
【００７１】
７０６において性能劣化回避部１１３は、７０５の評価結果をもとに、ＳＬＡ時刻が設定されているジョブネットについて、ＳＬＡ時刻超過が発生しているか否かを判定する。
【００７２】
７０６の結果、ＳＬＡ時刻超過が発生していないと判定された場合（ＮＯ）、７０７において性能劣化回避部１１３は、ジョブ実行部１０５にジョブネットの開始時刻変更指令を出し、７１０において性能劣化回避部１１３は、性能劣化回避処理を終了する。ここで、性能劣化回避部１１３は、変更された開始時刻を表示デバイスに表示させてもよい。また、性能劣化回避部１１３は、開始時刻が変更されたジョブネットのジョブネット名、終了予測時刻、ＳＬＡ時刻等を、表示デバイスに表示させてもよい。
【００７３】
７０３の結果、性能劣化が発生すると判定された場合（ＹＥＳ）、または７０５の結果、ＳＬＡ時刻超過が発生すると判定された場合（ＹＥＳ）、７０８において性能劣化回避部１１３は、７０２の変更回数が規定回数に到達したかを判定する。
【００７４】
７０８の結果、変更回数が規定回数に到達していないと判定された場合（ＮＯ）、性能劣化回避部１１３は、処理を７０２へ移行させる。
【００７５】
７０８の結果、変更回数が規定回数に到達したと判定された場合（ＹＥＳ）、７０９において性能劣化回避部１１３は、アラーム発報し、７１０において性能劣化回避部１１３は、性能劣化回避処理を終了する。アラームを受けた管理者は、業務システム１０１の性能劣化の影響を受ける別の業務システムの管理者へ、性能劣化を通知する等の対処を行う。
【００７６】
以上の性能劣化回避処理によれば、性能劣化回避部１１３は、性能劣化が発生せず、且つＳＬＡ時刻超過が発生しないという条件の下で、ジョブネットの開始時刻を変更することができる。
【００７７】
図８は、性能劣化回避情報６００の一例を示す。
【００７８】
性能劣化回避情報６００は、前述の性能劣化回避処理の７０３および７０５において、性能劣化回避部１１３により収集される。性能劣化回避情報６００は、ジョブネット毎のエントリを有する。一つのジョブネットに対応するエントリは、ジョブネット名６１１、開始時刻６１２、開始予測時刻６１３、変更後開始時刻６１４、終了時刻６１５、終了予測時刻６１６、変更後終了時刻６１７、処理件数６２１、処理予測件数６２２、ＳＬＡ時刻６２３、リソース使用率６２４を含む。
【００７９】
ジョブネット名６１１は、当該ジョブネットを示す。開始時刻６１２は、当該ジョブネットの開始時刻５１２である。開始予測時刻６１３は、当該ジョブネットの開始予測時刻５１３である。変更後開始時刻６１４は、当該ジョブネットに対し、性能劣化回避処理により変更された開始時刻である。終了時刻６１５は、当該ジョブネットの終了時刻５１５である。終了予測時刻６１６は、当該ジョブネットの終了予測時刻５１６である。変更後終了時刻６１７は、当該ジョブネットに対し、性能劣化回避処理により変更された終了時刻である。処理件数６２１は、当該ジョブネットの処理件数５２１である。処理予測件数６２２は、当該ジョブネットの処理予測件数５２２である。ＳＬＡ時刻６２３は、当該ジョブネットのＳＬＡ時刻４２３である。リソース使用率６２４は、当該ジョブネットのリソース使用率４２４である。
【００８０】
この図は、図５の例において、性能劣化の発生が見込まれる期間のジョブの開始時刻を変更した場合の性能劣化回避情報６００を示す。性能劣化回避部１１３は、ジョブ遅延判定部１１１が予測したジョブの開始予測時刻５１３、終了予測時刻５１６と、ジョブ実行実績統合ＤＢ１１０とを収集する。性能劣化回避部１１３は更に、収集された情報に基づいて、性能劣化回避処理を行い、変更後開始時刻６１４、変更後終了時刻６１７を算出する。
【００８１】
もし、性能劣化回避部１１３が、性能劣化の発生を回避するために、ジョブネットの前後関係を保持したまま、ジョブネットＣ、ジョブネットＪの開始時刻を変更すると、ジョブネットＤおよび、ジョブネットＪのＳＬＡ時刻超過が発生する。
【００８２】
一方、性能劣化回避部１１３が、この図に示したようにジョブネットＧの開始時刻を変更すると、全てのジョブネットにおいてＳＬＡ時刻超過が発生しないことが判る。
【００８３】
図９は、リソース使用率の時間変化の第３の例を示す。
【００８４】
この図は、図８の状態に対応する。即ち、この図は、ジョブネットＣの処理件数が増加した場合で、性能低下回避処理後のリソース使用率の時間変化を示す。
【００８５】
図６の例では、ジョブネットＣ、ジョブネットＧ、ジョブネットＪが同期間に走行することにより、リソース使用率の合計が１００％を超過していたが、この図の例では、ジョブネットＧの開始時刻を変更することにより、リソース使用率の合計が１００％を超過することがなくなり、性能劣化が回避されたことが判る。
【００８６】
本実施例の計算機システムは、ジョブネットを単位として実行計画を管理し変更しているが、計算機システムは、ジョブ等、他の単位で実行計画を管理し変更してもよい。
【００８７】
また、本実施例では、ジョブネットについて、特定の処理件数に対して、リソース使用率と処理時間を固定としたが、変更可否の情報を加えて開始時刻と終了時刻の差を変更してもよい。例えば、性能劣化回避部１１３は、ジョブネットのリソース使用量を減らして処理時間を長くするように変更してもよい。
【００８８】
また、性能劣化回避部１１３は、複数のジョブを含むジョブネットの実行を中断可能にして、実行期間を複数のジョブに分割可能にして、当該ジョブネット内の特定のジョブの開始時刻を変更してもよい。これらの変更により、変更の自由度が向上することで、性能劣化およびＳＬＡ時刻超過を回避する実行計画を実現しやすくなる。
【００８９】
逸脱条件は、実行中のジョブネットの処理件数および処理予定件数の差の大きさが、変化量閾値よりも大きいことであってもよい。これにより、ジョブ遅延判定部１１１は、実行中のジョブネットの処理予定件数から処理件数を減じた値が、変化量閾値よりも大きい場合、当該ジョブネットの終了時刻が早まると判定する。この場合、後続ジョブネットの開始時刻が早まり、それ以降の複数のジョブネットの実行期間が重なることによりリソース使用率が１００％以上になる可能性がある。また、逸脱条件は、あるジョブネットの開始予測時刻５１３と、開始時刻５１２または開始予定時刻４１３との差の大きさが、予め設定された時刻変化量よりも大きいことであってもよい。また、逸脱条件は、あるジョブネットの終了予測時刻５１６と、終了時刻５１５または終了予定時刻４１６との差の大きさが、予め設定された時刻変化量よりも大きいことであってもよい。
【００９０】
本実施例によれば、複数のジョブが逸脱条件を満たすと判定された場合、計算機システムは、変更条件の下で、ジョブの実行期間を変更することができる。例えば、変更条件は、常に複数のジョブのリソース使用予定量の合計が、予め設定されたリソース使用量閾値以下であり、且つ複数のジョブの中の特定ジョブが制約条件を満たすことである。本実施例において、リソース使用予定量はリソース使用率であり、リソース使用量閾値は１００％である。リソース使用量閾値は１００％より小さくてもよい。
【００９１】
計算機システムは、変更条件の下でジョブの実行期間を変更することにより、ジョブの処理遅延に伴って発生するＳＬＡ時刻超過や、それによるサブシステム間のイベント連携やデータ参照処理の異常を防ぐことができる。
【００９２】
実行予定期間の開始時刻は、開始予定時刻４１３や開始時刻５１２等に対応する。実行予定期間の終了時刻は、終了予定時刻４１６や終了時刻５１５等に対応する。実行予測期間の開始時刻は、開始予測時刻５１３等に対応する。実行予測期間の終了時刻は、終了予測時刻５１６等に対応する。
【００９３】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
【符号の説明】
【００９４】
１００…メモリ、  １０１…業務システム、  １０２…リソース監視部、  １０３…リソース情報収集部、  １０４…リソース情報ＤＢ、  １０５…ジョブ実行部、  １０６…ジョブ実行実績収集部、  １０７…ジョブ実行実績ＤＢ、  １０８…ジョブ構成管理ＤＢ、  １０９…ジョブ実行実績統合部、  １１０…ジョブ実行実績統合ＤＢ、  １１１…ジョブ遅延判定部、  １１２…性能劣化判定部、  １１３…性能劣化回避部、  ２００…ＣＰＵ、  ３００…入力デバイス、  ４００…表示デバイス
【図１】
2018041296.tif 000003
【図２】
2018041296.tif 000004
【図３】
2018041296.tif 000005
【図４】
2018041296.tif 000006
【図５】
2018041296.tif 000007
【図６】
2018041296.tif 000008
【図７】
2018041296.tif 000009
【図８】
2018041296.tif 000010
【図９】
2018041296.tif 000011