(57)【要約】【課題】複数の演算サーバの負荷状態を計測して、負荷が均等となるように制御プログラムのスケジューリングを行うクラウド制御システムの制御プログラムのスケジューリング方法を提供することを目的とする。【解決手段】制御プログラムを複数の演算サーバ２Ａ，２Ｂにスケジューリングする管理サーバ１と、演算サーバと、ネットワーク３と、を備え、管理サーバ１は、予めプログラムの処理時間情報を収集して、負荷均等化アルゴリズムに基づいて初期化時のスケジュールを設定し、夫々の演算サーバ２Ａ、２Ｂは、負荷計測プログラムに基づいて、プログラムを実行して自身の負荷情報を計測し、管理サーバ１は、当該負荷情報の計測値から負荷に相当する負荷相当処理時間を求め、負荷均等化アルゴリズムに基づいてプログラムのスケジュール更新し、夫々の演算サーバの処理時間が均等となるようにしたことを特徴とする。【選択図】  図４
2015138520.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムで構成される制御プログラムを複数の演算サーバに、予め定められる制御周期時間内で処理するようにスケジューリングする管理サーバと、前記管理サーバでスケジューリングされた１つ又は複数の前記プログラムを実行する、同一のプラットフォームで構成される複数の演算サーバと、前記管理サーバと複数の前記演算サーバとを接続するネットワークと、
を備え、
前記管理サーバは、並列実行可能な複数の前記プログラムと、予め計測された当該プログラム毎の処理時間情報と、予め設定される制御周期の処理時間内に、複数の前記プログラムの処理を複数の前記演算サーバに分散して割り当て、夫々の演算サーバの負荷を均等化する負荷均等化プログラムと、を記憶しておき、
前記演算サーバは、複数の前記プログラムと、前記管理サーバから予めその種類を設定される負荷情報を計測する負荷計測プログラムと、当該負荷情報と、を記憶しておき、
前記管理サーバは、最初の第１の制御周期の初期化処理として、前記負荷均等化プログラムとに基づいて前記処理時間情報を参照して、複数の前記プログラムについて夫々の前記処理時間情報を大きい順に並べて複数の前記演算サーバに割り当てし、
次に、割り当てた結果、処理時間の少ない前記演算サーバに対して、残った前記プログラムの前記演算処理時間情報の大きい順に割り当てし、
以後、この操作を繰り返して全ての前記プログラムを割り当てして、夫々の前記演算サーバのスケジュールを設定し、
夫々の前記演算サーバは、前記負荷計測プログラムに基づいて、スケジューリングされた前記プログラムを実行して自身の前記負荷情報を計測して前記管理サーバに送信し、
次に、前記管理サーバは、前記第１の制御周期の次以降の制御周期においては、前記負荷均等化処理プログラムに基づいて、前記負荷情報から負荷に相当する負荷相当処理時間を求め、
前記演算サーバに対して、前記負荷相当処理時間の少ない順に、前記処理時間情報が大きい順に前記プログラムを割り当て、
割り当てた結果の残った前記プログラムがある場合には、さらに、前記処理時間情報と前記負荷相当処理時間の加算値を求め、加算値が少ない前記演算サーバの順に、前記処理時間情報が大きい順に、残った前記プログラム割り当て、
次の前記制御周期で実行するスケジュールを生成して、前記演算サーバのスケジュールを更新し、
予め設定される前記制御周期時間内で、前記制御プログラムの処理が最短の時間で終了するように、且つ、夫々の前記演算サーバの処理時間が均等となるように、前記制御プログラムのスケジュールを更新するようにしたことを特徴とするクラウド制御システムの制御プログラムのスケジューリング方法。
【請求項２】
前記負荷情報は、前記ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度であり、
前記管理サーバは、前記負荷情報のいずれか１種類を予め前記演算サーバに設定しておき、前記演算サーバで計測された前記負荷情報の計測値から、
負荷Ａ＝制御周期×α×（今回計測のＣＰＵ使用率−予め計測されるＣＰＵ使用率）、
負荷Ｂ＝制御周期×β×（今回計測のメモリ使用率−予め計測されるメモリ使用率）、
負荷Ｃ＝制御周期×γ×（今回計測の演算時間−予め計測される演算時間）、
負荷Ｄ＝制御周期×δ×（今回計測の応答時間−予め計測される応答時間）、
負荷Ｅ＝制御周期×ε×（今回計測の演算サーバの演算チップ温度−予め計測される前記演算サーバの演算チップ温度）、
（但し、α、β、γ、δ、εは、０〜１．０の範囲の補正計数である。）の、
予め設定されたいずれか１つの演算式に基づいて前記負荷相当処理時間を求めるようにしたことを特徴とする前記請求項１に記載のクラウド制御システムの制御プログラムのスケジューリング方法。
【請求項３】
前記負荷情報は、前記ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度であり、
前記管理サーバは、前記負荷情報の種類を予め前記演算サーバに設定しておき、前記演算サーバで計測された前記負荷情報の計測値から、
負荷Ｆ＝（αｃ×負荷ＡＣ）＋（βｃ×負荷ＢＣ）＋（γｃ×負荷ＣＣ）＋（δｃ×負荷ＤＣ）＋（εｃ×負荷ＥＣ）、
（但し、
負荷ＡＣ＝制御周期×（今回計測のＣＰＵ使用率−予め計測されるＣＰＵ使用率）、
負荷ＢＣ＝制御周期×（今回計測のメモリ使用率−予め計測されるメモリ使用率）、
負荷ＣＣ＝制御周期×（今回計測の演算時間−予め計測される演算時間）、
負荷ＤＣ＝制御周期×（今回計測の応答時間−予め計測される応答時間）、
負荷ＥＣ＝制御周期×（今回計測の演算サーバの演算チップ温度−予め計測される演算サーバの演算チップ温度
とする。また、補正係数αｃ、βｃ、γｃ、δｃ、εｃ、の夫々の値は、
０〜１．０の範囲とし、その総和は１．０以下とする。）の、
演算式による前記負荷相当処理時間を求めるようにし、
前記管理サーバは、前記ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度の全ての前記負荷情報が均等となるように前記補正係数を調整するようにしたことを特徴とする前記請求項１に記載のクラウド制御システムの制御プログラムのスケジューリング方法。
【請求項４】
複数のプログラムで構成される制御プログラムを複数の演算サーバに、予め定められる制御周期時間内で処理するようにスケジューリングする管理サーバと、前記管理サーバでスケジューリングされた１つ又は複数の前記プログラムを実行する、同一のプラットフォームで構成される複数の演算サーバと、前記管理サーバと複数の前記演算サーバとを接続するネットワークと、
を備え、
前記管理サーバは、並列実行可能な複数の前記プログラムと、当該プログラム毎の処理時間情報と、を予め記憶する記憶部と、夫々の前記演算サーバの負荷を均等化する負荷均等化処理プログラムを備え、夫々の前記演算サーバのスケジュールを設定するスケジュール設定部と、
を備え、
前記演算サーバは、複数の前記プログラムを記憶する記憶部と、前記前記スケジュール設定部で設定された複数の前記プログラムを実行する演算部と、前記管理サーバから予めその種類を設定される負荷情報を計測する負荷計測プログラムと、当該負荷情報と、を記憶し、計測した複数の前記プログラムの当該負荷情報の計測値を前記管理サーバに送信する負荷情報計測部と、
を備え、
前記スケジュール設定部は、最初の第１の制御周期の初期化処理として、前記負荷均等化プログラムに基づいて前記処理時間情報を参照し、複数の前記プログラムについて夫々の前記処理時間情報を大きい順に並べて複数の前記演算サーバに割り当てし、
次に、割り当てた結果、処理時間の少ない前記演算サーバに対して、残った前記プログラムの前記演算処理時間情報の大きい順に割り当てし、
以後、この操作を繰り返して全ての前記プログラムを割り当てして、夫々の前記演算サーバのスケジュールを設定し、
夫々の前記負荷情報計測部は、前記負荷計測プログラムに基づいて、スケジューリングされた前記プログラムを実行して、前記演算部の前記負荷情報を計測してその計測値を前記管理サーバに送信し、
前記スケジュール設定部は、前記第１の制御周期の次以降の制御周期においては、前記負荷均等化処理プログラムに基づいて前記負荷情報の計測値から負荷に相当する負荷相当処理時間を求め、
前記演算サーバに対して、前記負荷相当処理時間の少ない順に、前記処理時間情報が大きい順に前記プログラムを割り当て、
割り当てた結果の残った複数の前記プログラムがある場合には、さらに、前記処理時間情報と前記負荷相当処理時間の加算値を求め、加算値が少ない前記演算サーバの順に、前記処理時間情報が大きい順に、残った前記プログラム割り当て、するスケジュールを生成して、前記演算サーバのスケジュールを更新し、
予め設定される前記制御周期時間内で、前記制御プログラムの処理が最短の時間で終了するように、且つ、夫々の前記演算サーバの処理時間が均等となるようにしたことを特徴とするクラウド制御システム。
【請求項５】
前記負荷情報は、前記ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度であり、
前記スケジュール設定部は、前記負荷情報のいずれか１種類を予め前記演算サーバに設定しておき、前記負荷時計測部で計測された前記負荷情報の計測値から、
負荷Ａ＝制御周期×α×（今回計測のＣＰＵ使用率−予め計測されるＣＰＵ使用率）、
負荷Ｂ＝制御周期×β×（今回計測のメモリ使用率−予め計測されるメモリ使用率）、
負荷Ｃ＝制御周期×γ×（今回計測の演算時間−予め計測される演算時間）、
負荷Ｄ＝制御周期×δ×（今回計測の応答時間−予め計測される応答時間）、
負荷Ｅ＝制御周期×ε×（今回計測の演算サーバの演算チップ温度−予め計測される前記演算サーバの演算チップ温度）、
（但し、α、β、γ、δ、εは、０〜１．０の範囲の補正計数である。）の、
いずれか１つの演算式に基づいて前記負荷情報処理時間を求めるようにしたことを特徴とする前記請求項４に記載のクラウド制御システム。
【請求項６】
前記負荷情報は、前記ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度であり、
前記スケジュール設定部は、前記負荷情報の種類を予め前記演算サーバに設定しておき、前記負荷時計測部で計測された複数の前記負荷情報の計測値から、
負荷Ｆ＝（αｃ×負荷ＡＣ）＋（βｃ×負荷ＢＣ）＋（γｃ×負荷ＣＣ）＋（δｃ×負荷ＤＣ）＋（εｃ×負荷ＥＣ）、
（但し、
負荷ＡＣ＝制御周期×（今回計測のＣＰＵ使用率−予め計測されるＣＰＵ使用率）、
負荷ＢＣ＝制御周期×（今回計測のメモリ使用率−予め計測されるメモリ使用率）、
負荷ＣＣ＝制御周期×（今回計測の演算時間−予め計測される演算時間）、
負荷ＤＣ＝制御周期×（今回計測の応答時間−計測される応答時間）、
負荷ＥＣ＝制御周期×（今回計測の演算サーバの演算チップ温度−予め計測される演算サーバの演算チップ温度
とする。また、補正係数αｃ、βｃ、γｃ、δｃ、εｃ、の夫々の値は、０〜１．０の範囲とし、その総和は１．０以下とする。）の、
演算式に基づいて、前記負荷相当処理時間を求めるようにし、
前記スケジュール設定部は、前記ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度の全ての前記負荷情報の計測値が均等になるように前記補正係数を更新するようにしたことを特徴とする前記請求項４に記載のクラウド制御システム。
【請求項７】
前記管理サーバと、前記演算サーバとは、同じプラットフォームの仮想サーバで構成し、前記ネットワークは、当該仮想サーバを接続する仮想ネットワークとし、前記クラウド制御システムが容易に構成できるようにした前記請求項４に記載のクラウド制御システム。
【請求項８】
さらに、前記ネットワークに接続され、前記制御プログラムを記憶する制御プログラムサーバを備え、制御プログラムの管理を当該制御プログラムサーバで一元化して管理するようにした前記請求項５に記載のクラウド制御システム。
【請求項９】
さらに、前記ネットワークに接続され、前記管理サーバがスケジューリングした前記制御プログラムのスケジューリング状態をモニタするスケジューリングモニタ処理部と、前記演算サーバの負荷状態をモニタする演算サーバ負荷情報モニタ処理部と、当該スケジューリングモニタ処理部及び当該演算サーバ負荷情報モニタ処理部が処理した結果をモニタするモニタと、を備える監視端末を備え、
当該監視端末のモニタには、前記負荷情報と前記制御プログラムのスケジューリング結果とを時系列に表示させ、前記制御プログラムの負荷状態を視認監視可能に表示させるようにした前記請求項４に記載のクラウド制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、クラウド制御システム、及びクラウド制御システムの制御プログラムのスケジューリング方法に関する。
【背景技術】
【０００２】
災害復旧を容易にするため、遠隔からネットワークを介して現場機器を制御する遠隔制御技術に注目が集まっている。遠隔に配置された複数のクラウドサーバから制御を行うシステムを、ここではクラウド制御システムと呼ぶ。
【０００３】
クラウド制御システムでは、制御プログラムを物理的に離れた複数のサーバに保持するので、被災時において、全ての制御プログラムが失われる恐れがないため、災害からの復旧の際、制御プログラムの再構築およびクラウドサーバの交換にかかる時間を短縮することができる。
【０００４】
このような背景から、クラウド制御システムにおいては、複数の制御プログラムを複数のサーバで並列実行させる制御プログラムのスケジューラ、または、スケジューリングシステムが求められている。
【０００５】
ところで、複数のタスクで構成される制御プログラムを複数の演算器に、各々の信頼性や緊急度を考慮して割り当てる情報処理装置がある（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２５９１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１においては、演算器が故障した場合を想定して、複数のタスクを演算器に割り当てるようにしているが、タスクを割り当てられる演算器の負荷状態を計測していないので、負荷の高い演算器にさらに負荷が高くなるタスクを割り当てる恐れがある。そのため、予め設定される制御周期でプログラム処理が完了しない恐れがある。
【０００８】
本願は、複数のサーバのネットワークで構成されるクラウド制御システムにおいて、サーバの負荷状態を計測して、予め設定される制御周期内に、制御プログラムが実行できるようにしたクラウド制御システム、及びクラウド制御システムの制御プログラムのスケジューリング方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本実施の形態のクラウド制御システムの制御プログラムのスケジューリング方法は、複数のプログラムで構成される制御プログラムを複数の演算サーバに、予め定められる制御周期時間内で処理するようにスケジューリングする管理サーバと、前記管理サーバでスケジューリングされた１つ又は複数の前記プログラムを実行する、同一のプラットフォームで構成される複数の演算サーバと、前記管理サーバと複数の前記演算サーバとを接続するネットワークと、を備え、前記管理サーバは、並列実行可能な複数の前記プログラムと、予め計測された当該プログラム毎の処理時間情報と、予め設定される制御周期の処理時間内に、複数の前記プログラムの処理を複数の前記演算サーバに分散して割り当て、夫々の演算サーバの負荷を均等化する負荷均等化プログラムと、を記憶しておき、前記演算サーバは、複数の前記プログラムと、前記管理サーバから予めその種類を設定される負荷情報を計測する負荷計測プログラムと、当該負荷情報と、を記憶しておき、前記管理サーバは、最初の第１の制御周期の初期化処理として、前記負荷均等化プログラムとに基づいて前記処理時間情報を参照して、複数の前記プログラムについて夫々の前記処理時間情報を大きい順に並べて複数の前記演算サーバに割り当てし、次に、割り当てた結果、処理時間の少ない前記演算サーバに対して、残った前記プログラムの前記演算処理時間情報の大きい順に割り当てし、以後、この操作を繰り返して全ての前記プログラムを割り当てして、夫々の前記演算サーバのスケジュールを設定し、夫々の前記演算サーバは、前記負荷計測プログラムに基づいて、スケジューリングされた前記プログラムを実行して自身の前記負荷情報を計測して前記管理サーバに送信し、次に、前記管理サーバは、前記第１の制御周期の次以降の制御周期においては、前記負荷均等化処理プログラムに基づいて、前記負荷情報から負荷に相当する負荷相当処理時間を求め、前記演算サーバに対して、前記負荷相当処理時間の少ない順に、前記処理時間情報が大きい順に前記プログラムを割り当て、割り当てた結果の残った前記プログラムがある場合には、さらに、前記処理時間情報と前記負荷相当処理時間の加算値を求め、加算値が少ない前記演算サーバの順に、前記処理時間情報が大きい順に、残った前記プログラム割り当て、次の前記制御周期で実行するスケジュールを生成して、前記演算サーバのスケジュールを更新し、予め設定される前記制御周期時間内で、前記制御プログラムの処理が最短の時間で終了するように、且つ、夫々の前記演算サーバの処理時間が均等となるように、前記制御プログラムのスケジュールを更新するようにしたことを特徴とする。
【００１０】
上記目的を達成するために、本実施の形態のクラウド制御システムは、複数のプログラムで構成される制御プログラムを複数の演算サーバに、予め定められる制御周期時間内で処理するようにスケジューリングする管理サーバと、前記管理サーバでスケジューリングされた１つ又は複数の前記プログラムを実行する、同一のプラットフォームで構成される複数の演算サーバと、前記管理サーバと複数の前記演算サーバとを接続するネットワークと、を備え、前記管理サーバは、並列実行可能な複数の前記プログラムと、当該プログラム毎の処理時間情報と、を予め記憶する記憶部と、夫々の前記演算サーバの負荷を均等化する負荷均等化処理プログラムを備え、夫々の前記演算サーバのスケジュールを設定するスケジュール設定部と、を備え、前記演算サーバは、複数の前記プログラムを記憶する記憶部と、前記前記スケジュール設定部で設定された複数の前記プログラムを実行する演算部と、前記管理サーバから予めその種類を設定される負荷情報を計測する負荷計測プログラムと、当該負荷情報と、を記憶し、計測した複数の前記プログラムの当該負荷情報の計測値を前記管理サーバに送信する負荷情報計測部と、を備え、前記スケジュール設定部は、最初の第１の制御周期の初期化処理として、前記負荷均等化プログラムに基づいて前記処理時間情報を参照し、複数の前記プログラムについて夫々の前記処理時間情報を大きい順に並べて複数の前記演算サーバに割り当てし、次に、割り当てた結果、処理時間の少ない前記演算サーバに対して、残った前記プログラムの前記演算処理時間情報の大きい順に割り当てし、以後、この操作を繰り返して全ての前記プログラムを割り当てして、夫々の前記演算サーバのスケジュールを設定し、夫々の前記負荷情報計測部は、前記負荷計測プログラムに基づいて、スケジューリングされた前記プログラムを実行して、前記演算部の前記負荷情報を計測してその計測値を前記管理サーバに送信し、前記スケジュール設定部は、前記第１の制御周期の次以降の制御周期においては、前記負荷均等化処理プログラムに基づいて前記負荷情報の計測値から負荷に相当する負荷相当処理時間を求め、前記演算サーバに対して、前記負荷相当処理時間の少ない順に、前記処理時間情報が大きい順に前記プログラムを割り当て、割り当てた結果の残った複数の前記プログラムがある場合には、さらに、前記処理時間情報と前記負荷相当処理時間の加算値を求め、加算値が少ない前記演算サーバの順に、前記処理時間情報が大きい順に、残った前記プログラム割り当て、するスケジュールを生成して、前記演算サーバのスケジュールを更新し、予め設定される前記制御周期時間内で、前記制御プログラムの処理が最短の時間で終了するように、且つ、夫々の前記演算サーバの処理時間が均等となるようにしたことを特徴とする。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のクラウド制御システムのブロック構成図。
【図２】前処理の動作説明図。
【図３】初期化処理の動作説明図。
【図４】制御プログラムのスケジューリング動作を説明するフローチャート。
【図５】初期化処理動作、プログラムの並べ替えの説明図
【図６】初期化処理動作のスケジューリングの例。
【図７】負荷均等化処理動作の説明図。
【図８】第２の実施の形態のクラウド制御システムのブロック構成図。
【図９】第３の実施の形態のクラウド制御システムのブロック構成図。
【図１０】負荷情報とスケジューリング結果のモニタ例。
【図１１】負荷情報とスケジューリング結果のモニタ例。
【図１２】負荷情報、スケジューリングした時間のトレンドモニタの例。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
【００１３】
（第１の実施の形態）
第１の実施の形態について図１乃至図７を参照して説明する。図１は、第１の実施の形態を説明するブロック構成図である。
【００１４】
図１において、本クラウド制御システムの構成は、複数のプログラムで構成される制御プログラムを演算サーバ２Ａ、及び演算サーバ２Ｂ(以後、演算サーバ２と記す)に、予め定められる制御周期時間内で処理するようにスケジューリングする管理サーバ１と、管理サーバ１でスケジューリングされた制御プログラムを実行する、同一のプラットフォームで構成される演算サーバ２と、管理サーバ１と演算サーバ２とを接続するネットワーク３と、を備える。
【００１５】
ここでネットワーク３は、各サーバ結ぶコンピュータネットであって、一般的には、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等の通信インフラが適用可能で、夫々のサーバは、災害対策上適当な離間した場所に設けられる。
【００１６】
このネットワーク３は、専用回線でも、また、パブリックなインターネットのいずれでも良い。
【００１７】
次に、各サーバの構成について説明する。管理サーバ１は、並列実行可能な複数のプログラムと、当該プログラム毎の予め計測される処理時間情報と、を予め記憶する記憶部１２と、夫々の演算サーバ２の負荷を均等化する、詳細を後述する負荷均等化処理プログラムを備え、夫々の演算サーバ２のスケジュールを設定するスケジュール設定部１１と、備える。
【００１８】
ここで、処理時間情報とは、予め計測される制御プログラムを構成する複数のプログラム（タスクでも良い）毎の処理時間であって、一般的な処理時間と識別するために、処理時間情報と称する。
【００１９】
また、適用するクラウド制御システムが使用される環境下において、この処理時間情報を異なる環境条件で種々計測して求め、求めた処理時間から、その平均的な値が記憶部１２に記憶される。
【００２０】
この処理は制御プログラム実行前の前処理として実行され、図２に示すように、例えば、プログラム１、６ｍｓ、プログラム２、３ｍｓのように対応付けしてプログラム毎の平均的な処理時間が保存される。
【００２１】
次に、スケジュール設定部１１では、最初の制御周期の初期化処理として、夫々の演算サーバ２に割付するプログラムのスケジュールが図示しない記憶部に記憶される。
【００２２】
例えば、図３に示すように、演算サーバ２Ａにはプログラム３、プログラム６、演算サーバ２Ｂにはプログラム１、プログラム５、演算サーバ２Ｃにはプログラム４、プログラム２、と、割付けされ、また、この割り付けられたプログラムの処理時間を加算した処理時間（ｍｓ）は、演算サーバ２Ａ、８ｍｓ、演算サーバ２Ｂ、８ｍｓ、演算サーバ２Ｃ、７ｍｓ、のように、夫々対応付けして記憶される。
【００２３】
次に、演算サーバ２は、複数のプログラムから構成される制御プログラムを記憶する記憶部２２と、スケジュール設定部１１で設定された複数のプログラムを実行する演算部２１と、管理サーバ１から予め設定される負荷情報と、負荷情報を計測する負荷計測プログラムと、を記憶し、計測した複数の前記プログラムの当該負荷情報の計測値を管理サーバ１に送信する負荷情報計測部２３と、を備える。
【００２４】
ここで、負荷情報と負荷計測プログラムについて説明する。負荷情報は、ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度であり、
負荷情報計測部２３では、設定された負荷情報を負荷計測プログラムに基づいて計測する。
【００２５】
ＣＰＵ使用率、メモリ使用率、演算時間、及び応答時間、等の負荷計測プログラムは、市販されている診断プログラム、または、当該演算サーバ１の基本プログラム（ＯＳ）に付属する診断プログラムを使用することが可能である。演算サーバ２の温度の計測は、演算チップの表面温度を検出する温度センサとその検出回路とで行う。
【００２６】
次に、スケジュール設定部１１が実行する負荷均等化処理プログラムの負荷均等化処理の構成について説明する。尚、この処理の詳細動作は後述する。
【００２７】
この負荷均等化処理には、制御プログラム実行前の最初の制御周期で実行する初期化処理と、制御プログラムを実行後の制御周期で、演算サーバ自身の負荷を予測して実行する初期化処理とがある。
【００２８】
また、スケジュール設定部１１は、最初の制御周期以降の制御周期の初期化処理においては、演算サーバ２の負荷を予測するため、スケジューリングされたプログラムを実行し予め設定される負荷情報について、負荷情報計測部２３で計測された演算サーバ２の計測値から、演算サーバ２の負荷を予測する負荷相当処理時間を求める予測処理がある。
【００２９】
そして、この計測値を制御周期での処理時間に変換する方法は、例えば、予め設定される負荷情報について、
負荷Ａ＝制御周期×α×（今回計測のＣＰＵ使用率−予め計測されたＣＰＵ使用率）、
負荷Ｂ＝制御周期×β×（今回計測のメモリ使用率−予め計測されたメモリ使用率）、
負荷Ｃ＝制御周期×γ×（今回計測の演算時間−予め計測された演算時間）、
負荷Ｄ＝制御周期×δ×（今回計測の応答時間−予め計測された応答時間）、
負荷Ｅ＝制御周期×ε×（今回計測の演算サーバの演算チップ温度−予め計測された前記演算サーバの演算チップ温度）、
（但し、α、β、γ、δ、εは、例えば、０〜１．０の範囲の補正計数である。）の、いずれか１つの演算式に基づいて、演算サーバ２の負荷を予測する負荷相当処理時間を求める。
【００３０】
即ち、負荷相当処理時間は、予め求められる初期の制御周期で計測された計測値と今回の制御周期での計測値の差を求め、この差分に対し補正計数を乗じて、制御周期に対する負荷時間の変動分を求める。
【００３１】
また、プログラム毎の処理時間情報と同様に、演算サーバ２では、設定される負荷情報について、想定される負荷環境での値を計測し、その平均的な値を初期値として記憶しておき、制御プログラムの実行段階では初期状態からの変化を各演算サーバの負荷状態の変化であると予測し、以降の制御周期での負荷の変動分を予測して、制御プログラムのスケジュールを更新する。
【００３２】
即ち、各演算サーバの全負荷は、負荷相当処理時間とスケジューリングされたプログラムの処理時間情報との加算値として予測できる。
【００３３】
尚、負荷相当処理時間は、以下に説明する方法を用いても良い。この方法では、負荷情報は、ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度等であり、スケジュール設定部１１は、負荷時計測部で計測された複数の前荷情報の計測値から、
負荷Ｆ＝（αｃ×負荷ＡＣ）＋（βｃ×負荷ＢＣ）＋（γｃ×負荷ＣＣ）＋（δｃ×負荷ＤＣ）＋（εｃ×負荷ＥＣ）、
（但し、
負荷ＡＣ＝制御周期×（今回計測のＣＰＵ使用率−予め計測されたＣＰＵ使用率）、
負荷ＢＣ＝制御周期×（今回計測のメモリ使用率−予め計測されたメモリ使用率）、
負荷ＣＣ＝制御周期×（今回計測の演算時間−予め計測された演算時間）、
負荷ＤＣ＝制御周期×（今回計測の応答時間−予め計測された応答時間）、
負荷ＥＣ＝制御周期×（今回計測の演算サーバの演算チップ温度−予め計測された演算サーバの演算チップ温度
とする。また、補正係数αｃ、βｃ、γｃ、δｃ、εｃ、の夫々の値は、例えば、０〜１．０の範囲とし、その総和は１．０以下とする。）の、
演算式に基づいて、負荷相当処理時間を求めるようにし、スケジュール設定部１１は、ＣＰＵ使用率、メモリ使用率、演算時間、応答時間、及び演算サーバ温度の全ての負荷情報の計測値の変化分から、夫々の負荷情報が負荷相当処理時間に対して均等に寄与する時間となるように補正係数を更新する。
【００３４】
尚この負荷相当処理時間Ｆは、負荷情報は２つ以上の場合であれば、いずれ負荷情報の組み合わせでも良い。
【００３５】
また、これらの負荷Ａ〜負荷Ｅの演算式の補正係数は、夫々適当な初期値を与えて試行し、実験的に求めることが可能である。
【００３６】
また、負荷Ｆの演算式の補正係数は、先ず、同一の初期値を与え、数時間以上の負荷情報の計測値を収集して、バラツキの多い負荷情報の補正係数の値を大きくして、他の負荷情報の補正係数の値を小さくする。そして、この操作を一定時間ごとに繰り返しすることで、夫々の負荷Ｆの演算値が均等になるように調整される。
【００３７】
尚、負荷Ａ〜負荷Ｆの補正係数を０〜１．０の範囲とする場合、制御周期での処理時間への変換する場合、夫々の演算式には、適宜変換定数を乗じるようにしても良い。
【００３８】
次に、このように構成されたクラウド制御システムの動作について、図４を参照して説明する。
【００３９】
先ず、システムの処理動作の構成について説明する。管理サーバ１の処理構成は、制御を実行する前に行う処理時間情報を取得する前処理ｓ１、最初の第１の制御周期の開始時の初期化処理ｓ２、ｓ３、及び、演算サーバ２が求めた負荷情報の計測値を受信する負荷情報受信処理ｓ４から構成される。
【００４０】
一方、演算サーバ２の処理構成は、制御を実行する前に予め負荷情報の取得する前処理（ｓ１１）、管理サーバ１からスケジューリングされる制御プログラム及び負荷情報の受信処理（ｓ１２）、制御プログラムの実行（ｓ１３）、負荷情報の計測処理（ｓ１４）、及び負荷情報の送信処理（ｓ１５）から構成される。
【００４１】
尚、前処理（ｓ１）、前処理（ｓ１１）以外の次の制御周期以降での処理は、同じ処理構成であるであるのでその説明は省略する。
【００４２】
次に、各処理ステップの詳細動作について説明する。前処理（ｓ１）、前処理（ｓ１１）は、既に説明したので省略する。
【００４３】
次に、管理サーバ１のスケジュール設定部１１が負荷均等化処理プログラムに基づく初期化処理として実行する、スケジューリング処理（ｓ２）の動作について説明する。
【００４４】
スケジューリング処理（ｓ２）では、例えば、図５に示すような複数のプログラム１〜プログラム６について、予め取得したプログラム毎の処理時間情報を参照して、処理時間の長い順に並べ替え、プログラム３（処理時間７ｍｓ）、プログラム１（処理時間６ｍｓ）、・・・プログラム６（処理時間１ｍｓ）のように、記憶部１２に一時記憶しておく。
【００４５】
そして、次に、図６に示すように、並び替えた複数のプログラムを複数の各演算サーバ２に割り付ける。例えば、演算サーバ２が、２Ａ、２Ｂ、２Ｃの３台の場合、演算サーバ２Ａにはプログラム３、演算サーバ２Ｂにはプログラム１、演算サーバ２Ｃには、プログラム４（処理時間４ｍｓ）を割付する。
【００４６】
次に、残ったプログラムは、今度は割付した各演算サーバ２の処理時間が少ない順に、残ったプログラムの処理時間情報が大きい値の順に割付する。
【００４７】
即ち、初回の割付で一番処理時間の短かった演算サーバ２Ｃには、一番処理時間情報の大きい値のプログラム２（処理時間３ｍ）を、２番目に処理時間の短かった演算サーバ２Ｂには、プログラム５（処理時間２ｍｓ）、一番処理時間の大きい値が割り付けられた演算サーバ２Ａには、プログラム６（１ｍｓ）が割り付けられる。
【００４８】
このような割付が繰り返された結果、演算サーバＡの処理時間の合計値は８ｍｓ、演算サーバ３の処理時間の合計値は８ｍｓ、演算サーバＣの処理時間の合計値は７ｍｓとなる。
【００４９】
そして、このように割付された制御プログラムは、選択した負荷情報の初期値と合わせて、管理サーバ１からネットワーク３を介して、夫々の演算サーバ２に送信される。
【００５０】
この制御プログラム実行の最初の第１の制御周期開始時点で行う負荷均等化処理プログラムによる初期化処理に拠れば、予め取得した複数のプログラム毎の処理時間情報に基づいて、クラウド制御システムの制御プログラムを複数の演算サーバ２で実行する場合に、処理時間が均等になるように割付することが出来る。
【００５１】
次に、スケジューリングされた制御プログラムを実行する演算サーバ２の処理動作について説明する。複数の演算サーバ２の処理（ｓ１２〜ｓ１５）は、同じ処理であるので、その１つである演算サーバ２Ｂの処理手順について説明し、他の演算サーバ２の説明を省略する。
【００５２】
演算サーバ２Ｂは、管理サーバ１から最初にスケジューリングされたさプログラムを受信（ｓ１２）して、制御プログラムを並列処理（ｓ１３）する。
【００５３】
そして、制御プログラムの実行が終了すると負荷計測プログラムに基づいて、自身の負荷情報を計測し（ｓ１４）、ネットワーク３を介して、管理サーバ１に送信する。
【００５４】
管理サーバ１は、送信された負荷情報を受信して（ｓ４）その制御周期の処理を完了する。
【００５５】
次に、管理サーバ１は受信した負荷情報に基づいて、第２の制御周期のスケジューリング処理（ｓ５）を実行する。
【００５６】
先ず、管理サーバ１のスケジュール設定部１１は、負荷均等化処理プログラムに基づいて第２の制御周期の初期化処理（ｓ５）として、予め設定される負荷Ａ〜負荷Ｆのいずれか１つの負荷情報の初期値と今回の計測値との差を負荷に相当する負荷相当処理時間として求める。
【００５７】
そして、複数の演算サーバ２から送信された負荷情報に基づいて、夫々の負荷相当処理時間を求め、この値の少ない演算サーバ２の順に、複数のプログラムの処理時間情報が大きいものから順に割り当てる。
【００５８】
この動作について、図７を参照して説明する。前回の制御周期で求めた負荷相当処理時間は、例えば、演算サーバ２Ａは５ｍｓ、演算サーバ２Ｂは６ｍｓ、演算サーバ２Ｃは４ｍｓ、であったとする。
【００５９】
すると、この値の最も小さい演算サーバ２Ｃにプログラム３（処理時間情報、７ｍｓ）を、次に小さかった演算サーバ２Ａにプログラム１（処理時間情報６ｍｓ）を、この値が一番大きい演算サーバＢにプログラム４（処理時間情報４ｍｓ）を割付する。
【００６０】
そして、次の割付は、割り当てた結果の残った複数のプログラムがある場合には、さらに、当該処理時間情報と負荷相当処理時間の加算値が少ない演算サーバ２の順に、残ったプログラムの処理時間情報が大きいものを順次割り当てる（ｓ５）。
【００６１】
即ち、演算サーバＢは、加算値が１０ｍｓでもっとも小さいので、残ったプログラムの処理時間情報の最も大きいプログラム２（処理時間情報３ｍｓ）を、
次に、演算サーバＡ、Ｃは、加算値がいずれも１１ｍｓなので、演算サーバＡにプログラム５（処理時間情報２ｍｓ）、最後に、演算サーバＣには残ったプログラム６（処理時間情報１ｍｓ）を割付して、夫々の負荷を均等になるように割付する。
【００６２】
このようにして作成したスケジュールを管理サーバ１から夫々の演算サーバ２にネットワーク３を介して送信する（ｓ６）。
【００６３】
以後、制御プログラムを実行するとともに、第２の制御周期の処理を繰り返し実行してゆく。また、このスケジューリングを繰り返すことで、各演算サーバの負荷が均等になるように制御される。
【００６４】
尚、ここで説明した管理サーバ１、及び演算サーバ２は、同じ処理時間情報で管理するため同一仕様のプラットフォームで構成する必要がある。
【００６５】
但し、夫々が仮想サーバで構成する場合には、同一仕様のプラットフォームで構成することが容易となる。
【００６６】
また、ネットワーク３は、一般的なインターネットや専用回線でも良く、仮想サーバで構成する場合には、仮想ネットワークでも良い。
【００６７】
尚、管理サーバ１のスケジュール設定部１１に備える負荷均等化処理プログラム、演算サーバ２の負荷情報計測部２３に備える、負荷情報及び負荷計測プログラムは、夫々各サーバの記憶部１２、記憶部２２に備えるように構成しても良く、適宜変更することは可能である。
【００６８】
以上説明したように、本実施の形態のクラウド制御システムの負荷情報均等化処理に拠れば、演算サーバ２、及びネットワークの負荷状況が変化しても、予め設定される制御周期時間内で、制御プログラムの並列処理が最短の時間で終了するように、且つ、夫々の演算サーバの処理時間が、均等にすることができるクラウド制御システムを提供できる。
【００６９】
（第２の実施の形態）
図８を参照して、クラウド制御システムの第２の実施の形態を説明する。第２の実施の形態が、第１の実施の形態各部と同一の部分は同一の符号で示しその説明を省略する。
【００７０】
第２の実施の形態が、第１の実施の形態と異なる点は、第１の実施の形態では、制御プログラムは管理サーバ１の記憶部１２、及び夫々の演算サーバ２の記憶部２２に備え、管理サーバ１では各プログラムの処理時間情報を求める場合に、また、演算サーバ２スケジュールされた演算プログラムを実行する場合に、夫々記憶部２２から制御プログラムを抽出して処理していたが、第２の実施の形態では、制御プログラムを専用の制御プログラムサーバ１３を備え、制御プログラムの保守管理を一元的に行えるように構成したことにある。
【００７１】
このような構成の第２の実施の形態に拠れば、制御プログラムが一元的に管理できるので、保守性の良いクラウド制御システムを提供することができる。
【００７２】
(第３の実施の形態)
図９乃至図１２を参照して、クラウド制御システムの第３の実施の形態を説明する。第３の実施の形態が、第１の実施の形態各部と同一の部分は同一の符号で示しその説明を省略する。
【００７３】
第３の実施の形態が、第１の実施の形態と異なる点は、制御プログラムをスケジューリングする場合の演算サーバ２の負荷情報、及びスケジューリングされた結果の負荷時間、及びこれらを時系列に監視する監視端末５を、ネットワーク３を介して接続する構成としたことにある。
【００７４】
監視端末５は、管理サーバ１がスケジューリングした制御プログラムのスケジューリング状態をモニタするスケジューリングモニタ処理部５３と、演算サーバ２の負荷情報をモニタする演算サーバ負荷情報モニタ処理部５２と、当該スケジューリングモニタ処理部５３及び当該演算サーバ負荷情報モニタ処理部５２が処理した結果をモニタするモニタ５１と、を備える。
【００７５】
図１０は、各演算サーバ２Ａ、演算サーバ２Ｂ、演算サーバ２Ｃの負荷情報の予め計測された初期値と、処理時間情報と、に基づいてスケジューリングした処理時間のモニタ例を示す。
【００７６】
また、図１１は、制御プログラムを実行して負荷情報から負荷相当処理時を求め、さらにその負荷相当処理時間に対して、スケジューリングした負荷時間のモニタ例を示す。
【００７７】
さらに、図１２は、スケジューリングした負荷時間(割り当て時間)の結果、また、負荷情報の計測値のトレンドのモニタ例を示す。
【００７８】
このような監視端末５を備えることで、スケジューリング処理の状態や、演算サーバの負荷状態を、監視することができるので、クラウド制御システムの異常を素早く監視することができる。
【００７９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８０】
１  管理サーバ
２Ａ、２Ｂ  演算サーバ
３  ネットワーク
４  制御プログラムサーバ
５  監視端末
１１  スケジュール設定部
１２、１３  記憶部
２１  演算部
２２  記憶部
２３  負荷情報計測部
５１  モニタ
５２  負荷情報モニタ処理部
５３  スケジューリングモニタ処理部
【図１】
2015138520.tif 000003
【図２】
2015138520.tif 000004
【図３】
2015138520.tif 000005
【図４】
2015138520.tif 000006
【図５】
2015138520.tif 000007
【図６】
2015138520.tif 000008
【図７】
2015138520.tif 000009
【図８】
2015138520.tif 000010
【図９】
2015138520.tif 000011
【図１０】
2015138520.tif 000012
【図１１】
2015138520.tif 000013
【図１２】
2015138520.tif 000014