(57)【特許請求の範囲】
【請求項１】
サーバごとに過去の消費電力データを記憶した消費電力記憶部と、
前記サーバごとに現在の消費電力を測定する消費電力測定部と、
ジョブ投入時、前記消費電力記憶部から出力された過去電力データと、前記消費電力測定部から出力された現消費電力から予測した予測消費電力を基に、あらかじめ設定された前記サーバの消費電力の上限値を超えるかどうかを判定し、超える場合は前記ジョブの投入タイミングを遅らせる制御を行う制御部と、
前記サーバの電源の起動、停止を管理する電源管理部と、
全ての前記サーバのアイドリング状態での消費電力データを記憶したアイドリング状態消費電力記憶部と
を含み、
前記制御部が前記ジョブの投入タイミングをユーザ設定の許容値まで遅らせてもユーザ投入希望のサーバの消費電力の上限値を下回らない場合、前記制御部が他のサーバにて消費電力の上限値を超えるかどうかを判定し、超えない場合はそのサーバに前記ジョブを投入し、超える場合は他の稼働中サーバの消費電力の余裕と前記アイドリング状態消費電力記憶部から出力された前記サーバのアイドリング状態消費電力データを基に、前記サーバのうち停止中のサーバの一つを稼動状態にできる場合、前記電源管理部が前記停止中サーバの電源を投入し、前記制御部が前記ジョブを投入する制御を行う電力制御システム。
【請求項２】
前記停止中のサーバを一つも稼動状態にできない場合、前記制御部が前記ユーザ投入希望のサーバ或いは前記稼働中サーバのうち最も消費電力の余裕があるサーバに対して前記予測消費電力と前記サーバの消費電力の上限値と他の稼働中サーバの消費電力の余裕を基に前記ジョブが投入できるかを判定し、投入できる場合は前記ジョブを投入する制御を行う請求項１に記載の電力制御システム。
【請求項３】
前記サーバの投入待ちジョブの投入待ち時間を基に、ジョブ投入待ち時間の余裕具合が小さい順になるようジョブ投入の順序を最適化する制御を行うジョブ行列制御部をさらに有する請求項１または２に記載の電力制御システム。
【請求項４】
前記ジョブ投入時にユーザからジョブ投入の優先度のデータを受信し、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過する場合、システム利用料金を引き下げる処理を行う請求項１乃至３のいずれか１項に記載の電力制御システム。
【請求項５】
前記稼働中サーバがあり、当該サーバに現在投入されているジョブが無い場合、前記電源管理部は当該サーバを停止させ電源断とし、前記制御部は停止したサーバのピーク電力を、ネットワークに接続された前記稼働中サーバ全てのピーク電力に均等に上乗せし更新する請求項１乃至４のいずれか１項に記載の電力制御システム。
【請求項６】
ジョブ投入時、サーバごとの消費電力記憶部が出力する過去の消費電力データと、前記サーバごとの消費電力測定部が出力する現消費電力から制御部が予測消費電力を予測し、
前記予測消費電力を基に前記制御部が、あらかじめ設定されたサーバの消費電力の上限値を超えるかどうかを判定し、超える場合は前記ジョブの投入タイミングを遅らせる制御を行い、
前記制御部が前記ジョブの投入タイミングをユーザ設定の許容値まで遅らせても前記サーバの消費電力の上限値を下回らない場合、前記制御部が他のサーバにて消費電力の上限値を超えるかどうかを判定し、超えない場合はそのサーバに前記ジョブを投入し、超える場合は他の稼働中サーバの消費電力の余裕とアイドリング状態消費電力記憶部から出力された前記サーバのアイドリング状態消費電力データを基に、前記サーバのうち停止中のサーバの一つを稼動状態にできる場合、電源管理部が前記停止中サーバの電源を投入し、前記制御部が前記ジョブを投入し、稼動状態にできない場合は前記制御部がユーザ投入希望のサーバ或いは前記稼働中サーバのうち最も消費電力の余裕があるサーバに対して前記予測消費電力と前記サーバの消費電力の上限値と他の稼働中サーバの消費電力の余裕を基に前記ジョブが投入できるかを判定し、投入できる場合は前記ジョブを投入する制御を行う電力制御方法。
【請求項７】
ジョブ投入制御方法において、前記ジョブの投入タイミングをユーザ設定の許容値まで遅らせても前記サーバの消費電力の上限値を下回らない場合、前記制御部が前記サーバの投入待ちジョブの投入待ち時間を基にジョブ投入の優先順位を判定し、最優先で投入するジョブであった場合、前記ジョブの順番を先頭に入れ替える制御を行う請求項６記載の電力制御方法。
【請求項８】
ジョブ投入制御方法において、前記制御部が前記ユーザ投入希望のサーバ或いは前記稼働中サーバのうち最も消費電力の余裕があるサーバに対して前記予測消費電力と前記サーバの消費電力の上限値と他の稼働中サーバの消費電力の余裕を基に前記ジョブが投入できるかを判定し、投入できない場合、前記制御部が前記サーバの投入待ちジョブの投入待ち時間を基にジョブ投入の優先順位を判定し、最優先で投入するジョブであった場合、前記ジョブの順番を先頭に入れ替える制御を行う請求項６記載の電力制御方法。
【請求項９】
ジョブ投入時、サーバごとの消費電力記憶部が出力する過去の消費電力データと、前記サーバごとの消費電力測定部が出力する現消費電力から予測消費電力を予測し、
前記予測消費電力を基に、あらかじめ設定されたサーバの消費電力の上限値を超えるかどうかを判定し、
超える場合は前記ジョブの投入タイミングを遅らせ、
前記ジョブの投入タイミングをユーザ設定の許容値まで遅らせても前記サーバの消費電力の上限値を下回らない場合、他のサーバにて消費電力の上限値を超えるかどうかを判定し、超えない場合はそのサーバに前記ジョブを投入し、超える場合は他の稼働中サーバの消費電力の余裕と前記サーバのアイドリング状態消費電力データを基に、前記サーバのうち停止中のサーバの一つを稼動状態にできる場合、前記停止中サーバの電源を投入し前記ジョブを投入し、稼動状態にできない場合は前記ユーザ投入希望のサーバ或いは前記稼働中サーバのうち最も消費電力の余裕があるサーバに対して前記予測消費電力と前記サーバの消費電力の上限値と他の稼働中サーバの消費電力の余裕を基に前記ジョブが投入できるかを判定し、投入できる場合は前記ジョブを投入する処理
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不要な消費電力を削減する電力制御システムおよび電力制御方法に関する。
【背景技術】
【０００２】
ストレージやデータセンタにおいて、消費電力削減を目的とする電力制御システムが知られている。この電力制御システムは、記憶している過去の情報から今後の負荷を予測し、その結果で装置の状態を制御し、不要な消費電力を削減する。
【０００３】
電力制御システムの一例が特許文献１に記載されている。特許文献１に記載されたジョブスケジューリング装置は、ジョブの投入による全ての計算機の消費電力増加分と温度上昇分を予測する。さらに、そのジョブスケジューリング装置は、その予測結果に従って前記所望のジョブを割り当てる計算機を決定する。
【０００４】
また、特許文献２に記載されたストレージシステムは、入出力エラーによる性能低下を招くことなくストレージの電源ON/OFFを制御する。
【０００５】
また、特許文献３に記載された負荷管理装置は、今後の総アクセス数を予測し、予測結果からサーバ群の負荷を見積もり省電力状態と稼動状態の制御を行う。
【０００６】
また、特許文献４に記載された負荷管理装置は、特許文献３に記載の負荷管理装置に更に見積もった負荷から電気料金の見込みを計算し、より安いリソースで代替することを可能とする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２４２６１４号公報
【特許文献２】特開２０１０−２３１６３６号公報
【特許文献３】特開２０１１−０７６４６９号公報
【特許文献４】特開２０１１−０７６４７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１に記載された装置では、予測温度のみでジョブを制御するため、計算機の状態によっては温度上昇値が大きいからといって消費電力が大きいとは限らない。したがって、消費電力削減の観点からはこの制御は適切ではないという問題点がある。また、特許文献２記載のストレージシステム、特許文献３記載の負荷管理装置、特許文献４記載の負荷管理装置は、システムの処理状況に応じてリソースを減少させ消費電力を削減する。したがって、消費電力ピーク時はシステムをフル稼働せざるを得ず、電力の上限値を超えない制御を実現できないという問題点がある。
【０００９】
本発明の目的の一例は、上述した問題点を解決できる電力制御システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一形態における第一の電力制御システムは、
サーバごとに過去の消費電力データを記憶した消費電力記憶部と、
前記サーバごとに現在の消費電力を測定する消費電力測定部と、
ジョブ投入時、前記消費電力記憶部から出力された過去電力データと、前記消費電力測定部から出力された現消費電力から予測した予測消費電力を基に、あらかじめ設定された前記サーバの消費電力の上限値を超えるかどうかを判定し、超える場合は前記ジョブの投入タイミングを遅らせる制御を行う制御部を備える。
【００１１】
本発明の一形態における第一の電力制御方法は、ジョブ投入時、サーバごとの消費電力記憶部が出力する過去の消費電力データと、前記サーバごとの消費電力測定部が出力する現消費電力から制御部が予測消費電力を予測し、
前記予測消費電力を基に前記制御部が、あらかじめ設定されたサーバの消費電力の上限値を超えるかどうかを判定し、
超える場合は前記ジョブの投入タイミングを遅らせる制御を行う。
【発明の効果】
【００１２】
本発明によれば、電力ピーク時も電力の上限値を超えない制御を実現できるという効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】図１は第１の実施形態の構成を示すブロック図である。
【図２】図２は、第１の実施の形態における電力制御システムのジョブ割り当ての動作を示すフローチャートである。
【図３】図３は、第１の実施の形態における電力制御システムの、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過してしまった場合のジョブ割り当ての動作を示すフローチャートである。
【図４】図４は、本発明の第２の実施形態の構成を示すブロック図である。
【図５】図５は、第２の実施の形態における電力制御システムのジョブ割り当ての動作を示すフローチャートである。
【図６】図６は、第２の実施の形態における電力制御システムの、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過してしまった場合のジョブ割り当ての動作を示すフローチャートである。
【図７】図７は、第２の実施の形態における電力制御システムの、全ての稼働中サーバを調査し、ジョブが投入できるサーバが無かった場合のジョブ割り当ての動作を示すフローチャートである。
【図８】図８は、第２の実施の形態における電力制御システムの、全ての停止中サーバを調査し、電源が投入できるサーバが無かった場合のジョブ割り当ての動作を示すフローチャートである。
【図９】図９は、第２の実施の形態における電力制御システムの、投入予定サーバの予測消費電力が当該サーバのピーク電力と余裕電力Ｗｍの和を超えている場合のジョブ割り当ての動作を示すフローチャートである。
【図１０】図１０は、第２の実施の形態における電力制御システムの、アイドリング状態のサーバの電源断の動作の一例を示すフローチャートである。
【図１１】図１１は、本発明の第３の実施形態の構成を示すブロック図である。
【図１２】図１２は、第３の実施の形態における電力制御システムのジョブ割り当ての動作を示すフローチャートである。
【図１３】図１３は、第３の実施の形態における電力制御システムの、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過してしまった場合のジョブ割り当ての動作を示すフローチャートである。
【図１４】図１４は、第３の実施の形態における電力制御システムの、ジョブ行列制御部による待ちジョブのソートを示すフローチャートである。
【図１５】図１５は、本発明の第４の実施形態の構成を示すブロック図である。
【図１６】図１６は、第４の実施の形態における電力制御システムのジョブ割り当ての動作を示すフローチャートである。
【図１７】図１７は、第４の実施の形態における電力制御システムの、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過してしまった場合のジョブ割り当ての動作を示すフローチャートである。
【図１８】図１８は、第４の実施の形態における電力制御システムの、全ての稼働中サーバを調査し、ジョブが投入できるサーバが無かった場合のジョブ割り当ての動作を示すフローチャートである。
【図１９】図１９は、第４の実施の形態における電力制御システムの、全ての停止中サーバを調査し、電源が投入できるサーバが無かった場合のジョブ割り当ての動作を示すフローチャートである。
【図２０】図２０は、第４の実施の形態における電力制御システムの、投入予定サーバの予測消費電力が当該サーバのピーク電力と余裕電力Ｗｍの和を超えている場合のジョブ割り当ての動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態における電力制御システム１００の構成を示すブロック図である。図１を参照すると、電力制御システム１００は、ネットワーク１０１とネットワーク１０１に接続された制御部１０２と、サーバ１１１（サーバＡ）、１１２（サーバＢ）とを備える。各サーバ１１１、１１２などは消費電力記憶部１２１、消費電力測定部１２２を備える。なお、サーバ１１１、１１２以外のサーバが、ネットワーク１０１に接続されても良く、接続されるサーバの数は、限定しない。
【００１６】
第１の実施の形態における電力制御システム１００において、サーバ１１１，１１２へのジョブ投入時、過去の消費電力データと、現消費電力から、制御部１０２はジョブ投入後の消費電力を予測する。予測された消費電力を基に制御部１０２は、あらかじめ設定されたサーバの消費電力の上限値を超えるかどうかを判定する。そして、超えると判定した場合、制御部１０２はジョブの投入タイミングを遅らせる制御を行う。したがって、第１の実施の形態における電力制御システム１００は、消費電力ピーク時も電力の上限値を超えない制御を実現できる。
【００１７】
次に、第１の実施の形態における電力制御システム１００の構成について説明する。
【００１８】
消費電力記憶部１２１は、サーバ１１１に、ユーザから過去にジョブが投入された回数（ジョブ投入回数）と、投入された際の消費電力の上昇分の平均値（過去電力データ）をユーザごとに記憶する。過去電力データは、言わば、ユーザごとのジョブ投入時の消費電力の電力増分であり、サーバごとに記憶される。また、消費電力記憶部１２１は、サーバごとに定めた消費電力の上限値（ピーク電力）も記憶する。
【００１９】
消費電力測定部１２２はサーバ１１１の現在の消費電力を測定する。また、消費電力測定部１２２は、ジョブ処理中のサーバの消費電力を測定することで、ジョブ投入で発生する消費電力上昇分を測定する。
【００２０】
制御部１０２は、ユーザによる操作に基づき、ジョブと投入サーバ（サーバ１１１または１１２）の指定、ジョブ処理の優先度の指定、性能の指定を受信し、それら指定に基づいて、ジョブの投入タイミングを制御してもよい。さらに、制御部１０２は、ジョブ処理の優先度が高いほどユーザから高いシステム使用料金を徴収するよう、サーバ１１１を制御してもよい。また制御部１０２は、ジョブ投入制御の際に参照するデータの更新とデータの出力を行う。ジョブ投入制御の際に更新し出力するデータとは、各サーバの消費電力記憶部１２１が記憶している過去電力データとジョブ投入回数、ピーク電力である。
【００２１】
制御部１０２が受信するジョブ処理の優先度は、ジョブの投入待ち時間の許容値とユーザから徴収する料金の情報を含む。この場合、たとえば、制御部１０２は、ジョブ投入サーバに対し、優先度が高いほど待ち時間の許容値を小さく、料金を高く設定する。
【００２２】
なお、制御部１０２は、ＣＰＵ（中央処理装置）と、プログラムを記録した記憶媒体を含み、その記憶媒体に記憶されたプログラムに基づいて、以降に説明する制御の動作を実行しても良い。
【００２３】
また、サーバ１１２及びそれ以外のサーバについてもサーバ１１１と同様の構成を有する。
【００２４】
以上のように構成された電力制御システム１００の動作について、図２のフローチャートを参照して説明する。
【００２５】
図２は、第１の実施の形態における電力制御システム１００でのジョブ割り当ての動作の概要を示すフローチャートである。
【００２６】
図２に示すように、まず、制御部１０２は、新規投入のジョブを受信したとする。この場合、制御部１０２は、ユーザの選択によってジョブ投入サーバを決定する（ステップＳ１０１）。
【００２７】
次に、制御部１０２は、ジョブ投入サーバの消費電力記憶部１２１が記憶している過去電力データと消費電力測定部１２２で測定される現消費電力を抽出する（ステップＳ１０２）。
【００２８】
ここで、制御部１０２は、過去電力データが消費電力記憶部１２１に登録されているかどうかを判定する（ステップＳ１０３）。制御部１０２は、登録されていると判定した場合、現消費電力に過去電力データを加算し、その加算値を予測消費電力のデータとして発生する（ステップＳ１０４）。
【００２９】
もし、過去電力データが消費電力記憶部１２１に無い場合、制御部１０２は消費電力記憶部１２１に記憶されている全ユーザの過去電力データの平均を算出し、ジョブ投入ユーザの過去電力データとして設定し、消費電力記憶部１２１にそのデータを格納する（ステップＳ１０５）。また、過去電力データが消費電力記憶部１２１に登録されている場合と同様、制御部１０２は、現消費電力に過去電力データを加算した値を予測消費電力のデータとして発生する（ステップＳ１０４）。
【００３０】
次に、制御部１０２は、ジョブ投入サーバの消費電力記憶部１２１に記憶されているピーク電力を確認し、予測消費電力のデータ（以下、単に予測消費電力とも呼ぶ）と比較する（ステップＳ１０６）。
【００３１】
もし、予測消費電力がピーク電力を超えている場合、制御部１０２は、ジョブの投入待ち時間がユーザの指定した許容値を超過するまではジョブ投入サーバで既に実行されているジョブのうち一つが完了するまで待機する（ステップＳ１０７）。これにより、ジョブ投入のタイミングを、現在処理している１つのジョブの処理が完了するまで遅らせることができる。
【００３２】
一つのジョブが完了すると現消費電力が減少し、従って予測消費電力が減少する。待ち時間が許容値に達成していない場合（ステップＳ１１１でＮｏ）、制御部１０２は、ステップＳ１０４，１０６を実行し、再度ピーク電力と予測消費電力と比較する。
【００３３】
予測消費電力がピーク電力を下回っている場合、制御部１０２はジョブをジョブ投入サーバに投入する（ステップＳ１０８）。
【００３４】
ジョブ投入後、消費電力測定部１２２はジョブ投入による消費電力上昇を測定し（ステップＳ１０９）、制御部１０２は当該ジョブの消費電力上昇分を消費電力測定部１２２から読み出し、また当該ユーザが過去にジョブ投入した回数を消費電力記憶部１２１から読み出す。次に、制御部１０２は、（過去電力データ×記録回数＋消費電力上昇分）／（記録回数＋１）の式で新たに平均値を算出し、ジョブ投入回数は１を加算し、それぞれを消費電力記憶部１２１に出力する。消費電力記憶部１２１は過去電力データとジョブ投入回数をそれぞれ記憶する（ステップＳ１１０）。
【００３５】
ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過してしまった場合（ステップＳ１１１のＹｅｓ）の電力制御システム１００の動作について図３に示すフローチャートを参照して説明する。
【００３６】
待ち時間が許容値を超えた場合、ジョブ投入ユーザの要求を満たすことができない。この場合、電力制御システム１００の制御部１０２は、ユーザに対してのシステム使用料金を、ペナルティ分に相当する一定額を引き下げる（ステップＳ１１２）。具体的には、制御部１０２は、ジョブ投入サーバの図示しない課金システム、あるいは別な課金用サーバを経由して、使用料金を引き下げるように制御する。
【００３７】
その後、ステップＳ１０４〜ステップＳ１１１と同様に、制御部１０２は予測消費電力を算出し（ステップＳ１１３）、ピーク電力を超えるかどうか比較する（ステップＳ１１４）。超える場合、制御部１０２は、実行中ジョブのうち一つの完了を待って（ステップＳ１１５）、再度予測消費電力の算出とピーク電力との比較を行う（ステップＳ１１３、Ｓ１１４）。
【００３８】
予測消費電力がピーク電力を下回った場合、最初から下回っている場合と同様に制御部１０２はジョブを投入し（ステップＳ１０８）、消費電力測定部１２２はジョブ投入による消費電力上昇を測定する（ステップＳ１０９）。制御部１０２は過去電力データとジョブ投入回数を更新し、消費電力記憶部１２１にそれぞれ格納する（ステップＳ１１０）。
【００３９】
以上で、電力制御システム１００は、ジョブ割り当ての動作を終了する。
【００４０】
次に、本発明の第１の実施の形態の効果について説明する。
【００４１】
上述した本実施形態における電力制御システムは、消費電力ピーク時も電力の上限値を超えない制御を実現できる。
【００４２】
その理由は、以下のような構成を含むからである。即ち、第１に制御部１０２は、過去電力データと現消費電力を基にジョブ投入後の電力を予測する。第２に制御部１０２は予測した電力とサーバごとに定めた消費電力の上限値（ピーク電力）を超えるか否かを判定する。そして、制御部１０２は、サーバの消費電力の上限値を超える場合、前記ジョブの投入タイミングを遅らせる制御を行う。これにより、制御部１０２は、予測電力がピーク電力を超過する場合は、予測電力が下回るまでジョブ投入しない制御を行うので、消費電力ピーク時も電力の上限値を超えない制御を実現できるという効果が得られる。
【００４３】
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【００４４】
図４は、本発明の第２の実施形態に係る電力制御システム２００の構成を示すブロック図である。
【００４５】
図４を参照すると、本実施形態における電力制御システム２００は、第１の実施形態のそれと比べて、電源管理部２０３とアイドリング状態消費電力記憶部２０４を更に備える。
【００４６】
電源管理部２０３は、制御部１０２の制御によりネットワーク１０１に接続された各サーバ１１１、１１２などの電源の起動、停止を含む電源状態を管理する。
【００４７】
アイドリング状態消費電力記憶部２０４は、ネットワーク１０１に接続された全てのサーバ１１１、１１２などのジョブ未投入時（アイドリング状態とも言う）の消費電力を記憶する。制御部１０２は、各サーバのジョブ未投入時（アイドリング状態）の消費電力を、消費電力測定部１２２で測定し、その測定値をサーバごとにアイドリング状態消費電力記憶部２０４に記憶するようにしても良い。
【００４８】
次に、電力制御システム２００の動作について図５、図６、図７、図８、図９、図１０に示すフローチャートを参照して説明する。
【００４９】
図５、図６、図７、図８、図９は、第２の実施の形態における電力制御システム２００でのジョブ割り当ての動作の概要を示すフローチャートである。
【００５０】
図５を参照すると、まず、制御部１０２はジョブ投入サーバを決定し、予測消費電力と過去電力データを比較し、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過するまでは、予測消費電力がピーク電力を下回るまでジョブ投入を遅らせる処理までは第１の実施の形態のステップＳ１０１〜Ｓ１１１と同様である（ステップＳ２０１〜ステップＳ２１１）。
【００５１】
ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過する場合（ステップＳ２１１のＹｅｓ）の電力制御システム２００の動作について図６に示すフローチャートを参照して説明する。
【００５２】
ジョブの投入待ち時間が許容値を超過しているため、電力制御システム２００は至急ジョブ投入できるサーバを調査する必要がある。
【００５３】
制御部１０２は、たとえば、電源管理部２０３における電源状態を監視することで、各サーバの稼動状態を監視し、ジョブ投入予定のサーバ（例えば、サーバ１１１）以外に他に稼働中のサーバがあるかどうかを調べる（ステップＳ２１２）。
【００５４】
稼働中のサーバがあった場合、制御部１０２は当該サーバ（たとえば、サーバ１１２）でジョブを投入できる性能があるかどうかを調べる（ステップＳ２１３）。
【００５５】
投入できる性能がある場合、制御部１０２はサーバ（１１２）でジョブの投入待ちがないかどうかを調べる（ステップＳ２１４）。
【００５６】
ジョブの投入待ちが無い場合、制御部１０２はそのサーバでジョブを投入する（図５ステップＳ２０８）。
【００５７】
以降は第１の実施の形態と同様とする（ステップＳ２０８〜ステップＳ２１０）。
【００５８】
ジョブの投入待ちがあった場合またはジョブを投入できる性能ではなかった場合、制御部１０２は他に稼働中サーバがないかどうか調べ、あった場合は同様に調査する（ステップＳ２１２〜ステップＳ２１４）。
【００５９】
制御部１０２は、全ての稼働中サーバを調査し、ジョブが投入できるサーバが無かった場合（ステップＳ２１２でＮｏ）の電力制御システム２００の動作について図７に示すフローチャートを参照して説明する。
【００６０】
まず、制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などの全体の余裕電力としてＷｍを設定する。ここではＷｍ＝０として初期化する（ステップＳ２１５）。
【００６１】
制御部１０２は当該サーバのピーク電力と現消費電力のギャップが閾値、たとえば１００Ｗを超えているかどうかを調べる（ステップＳ２１６）。
【００６２】
超えている場合、制御部１０２は当該サーバの消費電力記憶部１２１に記憶されているピーク電力を５０Ｗ減少させて更新する（ステップＳ２１７）。ピーク電力の減少分は、上述の閾値より小さな値でなければならない。次に、制御部１０２は余裕電力Ｗｍに、ピーク電力を減少させた分の電力５０Ｗを追加する。具体的にはＷｍ＝Ｗｍ＋５０の加算を行う（ステップＳ２１８）。
【００６３】
制御部１０２はジョブ投入予定のサーバ以外に他に稼働中のサーバがあるかどうかを調べる（ステップＳ２１９）。稼働中のサーバがあった場合、制御部１０２は稼働中のサーバに対して以上の処理を繰り返す（ステップＳ２１６〜ステップＳ２１９）。
【００６４】
次に、制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などの中からお客様の要求を満たす停止中のサーバがあるかどうかを調べる（ステップＳ２２０）。
【００６５】
停止中のサーバがあった場合、制御部１０２はアイドリング状態消費電力記憶部２０４に記憶されている当該サーバのアイドリング状態消費電力を確認する（ステップＳ２２１）。余裕電力Ｗｍが当該サーバのアイドリング状態消費電力＋１００Ｗ（１００ＷはステップＳ２１６での閾値）より大きい場合（ステップＳ２２２）、電源管理部２０３は当該サーバの電源を投入し起動させる（ステップＳ２２３）。制御部１０２はその起動したサーバでジョブを投入する（図５ステップＳ２０８）。
【００６６】
以降は第１の実施の形態と同様とする。
【００６７】
余裕電力Ｗｍが当該サーバのアイドリング状態消費電力＋１００Ｗより小さい場合、電源は投入せず、制御部１０２は他に停止中のサーバがないと判定するまで以上の処理を繰り返す（ステップＳ２２０〜ステップＳ２２２）。
【００６８】
全ての停止中サーバを調査し、電源が投入できるサーバが無かった場合の電力制御システム２００の動作（ステップＳ２２０でＮｏ）について図８に示すフローチャートを参照して説明する。
【００６９】
まず、制御部１０２は最初にユーザに指定されたサーバをジョブ投入サーバとして選定する（ステップＳ２２４）。
【００７０】
次に、制御部１０２は最初にユーザに指定されたサーバに関して、消費電力測定部１２２で測定される現消費電力に消費電力記憶部１２１が記憶している過去電力データ（ステップＳ２０３、Ｓ２０５にて最初にユーザに指定されたサーバの過去電力データが存在することは明らかである）を加算した値を予測消費電力のデータとして発生する（ステップＳ２２５）。最初にユーザに指定されたサーバの予測消費電力のデータは既にステップＳ２０４にて算出済みであるが、現消費電力が変化している可能性があるため、再度このステップにて算出する。
【００７１】
次に、制御部１０２は、最初にユーザに指定されたサーバの消費電力記憶部１２１に記憶されているピーク電力と余裕電力Ｗｍを加算し、予測消費電力と比較する（ステップＳ２２６）。予測消費電力がピーク電力と余裕電力Ｗｍの和を下回っている場合、制御部１０２は、消費電力記憶部１２１に記憶されているピーク電力を、選定したサーバのピーク電力と余裕電力Ｗｍとの和で更新する（ステップＳ２２７）。次に、制御部１０２は、最初にユーザに指定されたサーバにジョブを投入する（図５ステップＳ２０８）。
【００７２】
以降は第１の実施の形態と同様とする。
【００７３】
予測消費電力がピーク電力と余裕電力Ｗｍの和を超えている場合、制御部１０２はネットワーク１０１に接続された稼働中の各サーバ１１１、１１２などの中からお客様の要求を満たし、かつ最もピーク電力と現消費電力の差が大きいものを選定する。（ステップＳ２２８）。
【００７４】
制御部１０２は選定したサーバの消費電力記憶部１２１が記憶している過去電力データと消費電力測定部１２２で測定される現消費電力を確認する（ステップＳ２２９）。
【００７５】
ここで制御部１０２は、過去電力データが消費電力記憶部１２１にあるかどうかを確認し（ステップＳ２３０）、ある場合は現消費電力に過去電力データを加算した値を予測消費電力とする（ステップＳ２３１）。もし、過去電力データが消費電力記憶部１２１に無い場合、制御部１０２は消費電力記憶部１２１に記憶されている全ユーザの過去電力データの平均を算出し、平均値をジョブ投入ユーザの過去電力データとして設定し、消費電力記憶部１２１にそのデータを記憶する（ステップＳ２３２）。次に、過去電力データが消費電力記憶部１２１にあった場合と同様、制御部１０２は、現消費電力に過去電力データを加算した値を予測消費電力とする（ステップＳ２３１）。
【００７６】
次に、制御部１０２は、ステップＳ２２８で選定したサーバの消費電力記憶部１２１に記憶されているピーク電力と余裕電力Ｗｍを加算し、予測消費電力と比較する（ステップＳ２３３）。
【００７７】
予測消費電力がピーク電力と余裕電力Ｗｍの和を下回っている場合、制御部１０２は、消費電力記憶部１２１に記憶されているピーク電力を、選定したサーバのピーク電力と余裕電力Ｗｍとの和で更新する（ステップＳ２２７）。次に、制御部１０２は、ステップＳ２２８で選定したサーバにジョブを投入する（図５ステップＳ２０８）。
【００７８】
以降は第１の実施の形態と同様とする。
【００７９】
もし、予測消費電力がピーク電力と余裕電力Ｗｍの和を超えている場合（ステップＳ２３３でＮｏ）の電力制御システム２００の動作について図９に示すフローチャートを参照して説明する。
【００８０】
まず、制御部１０２は最初にユーザに指定されたサーバをジョブ投入サーバとして再選定する（ステップＳ２３４）。
【００８１】
制御部１０２は、実行中ジョブのうち一つの完了を待つ（ステップＳ２３５）。
【００８２】
ジョブ投入ユーザの要求を満たすことができなかったため、電力制御システム２００はユーザに対してのシステム使用料金をペナルティ分として一定額引き下げる（ステップＳ２３６）。
【００８３】
その後、ステップＳ２３１、ステップＳ２３３と同様に、制御部１０２は、予測消費電力を算出し（ステップＳ２３７）、ピーク電力と余裕電力Ｗｍの和を超えるかどうか比較する（ステップＳ２３８）。超える場合、制御部１０２は、実行中ジョブのうち一つの完了を待って（ステップＳ２３９）再度予測消費電力の算出（ステップＳ２３７）と、ピーク電力と余裕電力Ｗｍの和との比較を行う（ステップＳ２３８）。
【００８４】
予測消費電力がピーク電力を下回っている場合、制御部１０２は、消費電力記憶部１２１に記憶されているピーク電力を、選定したサーバのピーク電力と余裕電力Ｗｍとの和で更新する（ステップＳ２４０）。次に、制御部１０２はジョブを投入する（図５ステップＳ２０８）。
【００８５】
以降は第１の実施の形態と同様とする。
【００８６】
以上で、電力制御システム２００は、ジョブ割り当ての動作を終了する。
【００８７】
また、この実施形態の場合、電力制御システム２００を放置しておくと停止中のサーバに電源投入されアイドリング状態のサーバが増え消費電力が増加する可能性がある。このため、使っていないアイドリング状態のサーバは電源断にする必要がある。アイドリング状態のサーバの電源断の動作の一例を図１０に示すフローチャートを参照して説明する。
【００８８】
制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などから稼働中のサーバを探す（ステップＳ２４１）。
【００８９】
稼働中サーバがあった場合、制御部１０２は当該サーバに現在投入されているジョブがあるかどうか（アイドリング状態でないかどうか）を確認する（ステップＳ２４２）。
【００９０】
投入されているジョブがある場合、制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などから他に稼働中のサーバがあるか探す（ステップＳ２４１）。
【００９１】
投入されているジョブが無い場合、電源管理部２０３は当該サーバを停止させ電源断とする（ステップＳ２４３）。
【００９２】
制御部１０２は停止したサーバのピーク電力を、ネットワーク１０１に接続された稼働中のサーバ全てに均等に上乗せし稼働中の各サーバの消費電力記憶部１２１に出力し更新する。稼働中の各サーバの消費電力記憶部１２１は更新されたピーク電力を記憶する（ステップＳ２４４）。
【００９３】
制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などから他に稼働中のサーバがあるか探す（ステップＳ２４１）。あった場合は同様の処理を行う（ステップＳ２４２〜ステップＳ２４４）。
【００９４】
全ての稼働中のサーバを確認した場合、終了とする。
【００９５】
以上で、電力制御システム２００は、アイドリング状態のサーバの電源断の動作を終了する。アイドリング状態のサーバの電源断動作については一定の時間周期で実施することが必要であるが、時間周期の設定についてはシステム管理者が任意に決定してよい。
【００９６】
次に、本発明の第２の実施の形態の効果について説明する。
【００９７】
上述した本実施形態における電力制御システムは、ジョブ投入待ち時間の許容値超過を削減できる。
【００９８】
その理由は、以下のような構成を含むからである。即ち、第１に制御部１０２は、第１の実施の形態に加えてネットワーク１０１に接続されたサーバ１１１、１１２など他のサーバの電力消費状況を確認し、ジョブを投入できる稼働中サーバがあればジョブを投入する。第２に、制御部１０２は、ネットワーク１０１に接続されたサーバ１１１、１１２など他のサーバのピーク電力を減少させて、ネットワーク１０１に接続された停止中のサーバを起動させてジョブ投入を実行する。第３に、制御部１０２は、ネットワーク１０１に接続されたサーバ１１１、１１２など他のサーバのピーク電力を減少させて稼働中サーバのピーク電力を増加させてジョブ投入を実行する。したがって、制御部１０２はユーザから投入指定されたサーバだけではなくネットワーク１０１に接続された全てのサーバを対象にしてジョブ投入の制御を行うので、ジョブ投入待ち時間の許容値超過を削減できるという効果が得られる。
【００９９】
なお、全ての停止中サーバを調査し、電源が投入できるサーバが無かった場合の電力制御システム２００の動作（ステップＳ２２０でＮｏ）については、ステップＳ２２８に直接移行しても良い。
【０１００】
［第３の実施形態］
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１０１】
図１１は、本発明の第３の実施形態に係る電力制御システム３００の構成を示すブロック図である。
【０１０２】
図１１を参照すると、本実施形態における電力制御システム３００は、第１の実施形態のそれと比べて、ジョブ行列制御部３０５を更に備える。
【０１０３】
ジョブ行列制御部３０５はネットワーク１０１に接続された各サーバ１１１、１１２などのジョブ行列の入替を制御する。ジョブ行列制御部３０５は、各サーバに投入予定のジョブをスタックするジョブキューを含む。
【０１０４】
次に、電力制御システム３００の動作について図１２、図１３、図１４に示すフローチャートを参照して説明する。
【０１０５】
図１２、図１３は、第３の実施の形態における電力制御システム３００でのジョブ割り当ての動作の概要を示すフローチャートである。第１の実施の形態のそれと同じ部分は省略する。
【０１０６】
図１２を参照すると、まず、制御部１０２はユーザが選択したサーバをジョブ投入サーバとして選定する（ステップＳ３０１）。このときにユーザが選択したサーバに既に投入待ちジョブがあるかどうかを確認し（ステップＳ３０２）、もしあれば制御部１０２はサーバ選定時点で既にあった投入待ちジョブがなくなるまでジョブを待機させる（ステップＳ３０３）。待機時にジョブ投入待ち時間の余裕具合が小さい順になるようジョブ行列制御部３０５によりジョブ行列の制御（ソート）が行われる（方法の一例については後述する）。
【０１０７】
選定時点で既にあった投入待ちジョブがなくなった場合、もしくは選定時点で最初から投入待ちジョブがなかった場合、ユーザが選択したサーバに関して予測消費電力と過去電力データを比較し、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過するまでは、予測消費電力がピーク電力を下回るまでジョブ投入を遅らせる。ここまでは第１の実施の形態のステップＳ１０２〜Ｓ１１１と同様である（ステップＳ３０４〜ステップＳ３１３）。
【０１０８】
ジョブの投入待ち時間がユーザの指定した許容値を超過してしまった場合（ステップＳ３１３でＹｅｓ）の電力制御システム３００の動作について図１３に示すフローチャートを参照して説明する。この場合も第１の実施の形態の図３、ステップＳ１１３〜Ｓ１１６と同様、ジョブ投入ユーザの要求を満たすことができないため、電力制御システム１００の制御部１０２は、ユーザに対してのシステム使用料金を、ペナルティ分に相当する一定額を引き下げる（ステップＳ３１４）。
【０１０９】
その後、ステップＳ１０４〜ステップＳ１１１と同様に、制御部１０２は予測消費電力を算出し（ステップＳ３１５）、ピーク電力を超えるかどうか比較する（ステップＳ３１６）。超える場合、制御部１０２は、実行中ジョブのうち一つの完了を待って（ステップＳ３１７）、再度予測消費電力の算出とピーク電力との比較を行う（ステップＳ３１５、Ｓ３１６）。
【０１１０】
予測消費電力がピーク電力を下回った場合、最初から下回っている場合と同様に制御部１０２はジョブを投入し（ステップＳ３１０）、消費電力測定部１２２はジョブ投入による消費電力上昇を測定する（ステップＳ３１１）。制御部１０２は過去電力データとジョブ投入回数を更新し、消費電力記憶部１２１にそれぞれ格納する（ステップＳ３１２）。
【０１１１】
ジョブ行列制御部３０５によるジョブ行列の制御（ソート）方法の一例を図１４を用いて説明する。
【０１１２】
最初に、ジョブ行列制御部３０５はネットワーク１０１内に稼働中のサーバがあるかどうか探す（ステップＳ３１８）。もしネットワーク１０１内に稼働中のサーバがなければ処理を終了させる。稼働中のサーバがあった場合、その稼働中のサーバの投入待ちジョブ数Ｎを調べ、Ｎが３より大きいかどうかを判定する(ステップＳ３１９)。ジョブ行列の先頭ジョブは制御部１０２のジョブ割り当ての動作対象であるので、ジョブ行列制御部３０５のジョブ行列制御（ソート）の対象外である。すなわち投入待ちジョブ数Ｎが１の場合はジョブ行列制御の対象ジョブが存在せず、投入待ちジョブ数Ｎが２の場合はジョブ行列制御の対象ジョブは存在するが複数ではないためジョブ行列のソートが発生しない。
【０１１３】
次に、パラメータとしてｊを定義する。ｊの初期値を０として設定する。また、１回のソート処理におけるジョブの順番の交換回数をｉとして定義する。ｉの初期値も０である（ステップＳ３２０）。
【０１１４】
ｊがＮ−１より小さい場合（ステップＳ３２１）、ジョブ行列のｊ番目のジョブの投入待ち時間の許容値をＴＬ（ｊ）、ジョブの投入待ち時間をＴＷ（ｊ）とすると、
ＴＬ（Ｎ−ｊ）−ＴＷ（Ｎ−ｊ）＜ＴＬ（Ｎ−ｊ−１）−ＴＷ（Ｎ−ｊ−１）
が成立する場合、ジョブ行列の（Ｎ−ｊ）番目のジョブは一つ前の（Ｎ−ｊ−１）番目のジョブよりもジョブ投入待ち時間の余裕具合が小さいため、（Ｎ−ｊ−１）番目のジョブよりも先に投入されることが好ましい。そのため、
ＴＬ（Ｎ−ｊ）−ＴＷ（Ｎ−ｊ）＜ＴＬ（Ｎ−ｊ−１）−ＴＷ（Ｎ−ｊ−１）
が成立する場合は（ステップＳ３２３）、ジョブ行列制御部３０５は（Ｎ−ｊ）番目のジョブと（Ｎ−ｊ−１）番目のジョブを入れ替える処理を行う（ステップＳ３２４）。また、順番交換回数ｉをｉ＋１に更新する（ステップＳ３２４）。成立しない場合は何も処理しない。
【０１１５】
ジョブ行列制御部３０５はパラメータｊをｊ＋１として更新し（ステップＳ３２５）、再度ステップＳ３２１〜ステップＳ３２５の処理を行う。
【０１１６】
これらの処理は、ジョブ行列制御部３０５がジョブ行列の最後尾のジョブと一つ前のジョブとを比較し、よりジョブ投入待ち時間の余裕具合が小さいジョブが行列の後ろにあった場合、一つ前のジョブと順番を交換するという処理である。
【０１１７】
ｊがＮ−１以上となった場合（ステップＳ３２１）、ジョブ行列最後尾のジョブから２番目のジョブまでの順番交換処理が１回分完了する。この処理を全てのジョブがジョブ投入待ち時間の余裕具合が小さい順番にソート完了するまで繰り返す。ソート完了した場合、ジョブの順番の交換が行われなくなるため、順番交換回数ｉが０となる場合をソート完了の条件とする。
【０１１８】
１回の順番交換処理が完了した際に順番交換回数ｉが０でない場合（ステップＳ３２６）、まだ全てのジョブがジョブ投入待ち時間の余裕具合が小さい順番にソートされていない可能性があるため、再度ステップＳ３２０〜ステップＳ３２６の処理を行う。
【０１１９】
１回の順番交換処理が完了した際に順番交換回数ｉが０となった場合（ステップＳ３２６）、ジョブ行列制御部３０５はそのサーバにおけるジョブ投入待ち時間の余裕具合が小さい順番へのジョブのソートを完了とし、ネットワーク１０１内に他に稼働中のサーバがあるかどうか探す（ステップＳ３２７）。もしネットワーク１０１内に稼働中のサーバがあればジョブ行列制御部３０５は同様の処理を行い（ステップＳ３１９〜ステップＳ３２７）、稼働中のサーバがなければ処理を終了させる。
【０１２０】
以上で、電力制御システム３００は、ジョブ割り当ての動作を終了する。
【０１２１】
次に、本発明の第３の実施の形態の効果について説明する。
【０１２２】
上述した本実施形態における電力制御システムは、ジョブ投入待ち時間の許容値超過を削減できる。
【０１２３】
その理由は、以下のような構成を含むからである。即ち、第１にジョブ行列制御部３０５は、第１の実施の形態に加えてジョブの投入待ち行列の連続する２件の待ちジョブの投入待ち時間と許容値を確認する。第２に、一つ前のジョブの投入待ち時間よりジョブ投入待ち時間の余裕具合が小さい場合、ジョブ行列制御部３０５は投入予定ジョブと一つ前の待ちジョブとの順序を入れ替える処理を繰り返し、ジョブ投入待ち時間の余裕具合が小さい順番にジョブをソートする。したがって、ジョブ投入待ち時間の許容値超過を削減できるという効果が得られる。
【０１２４】
［第４の実施形態］
次に、本発明の第４の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１２５】
図１５は、本発明の第４の実施形態に係る電力制御システム４００の構成を示すブロック図である。
【０１２６】
図１５を参照すると、本実施形態における電力制御システム４００は、第２の実施形態のそれと比べて、ジョブ行列制御部３０５を更に備える。また第３の実施形態のそれと比べて、電源管理部２０３とアイドリング状態消費電力記憶部２０４を更に備える。つまり第２の実施形態のシステムと第３の実施形態のシステムが複合された電力制御システムである。
【０１２７】
次に、電力制御システム４００の動作について図１６、図１７、図１８、図１９、図２０に示すフローチャートを参照して説明する。
【０１２８】
図１６、図１７、図１８、図１９、図２０は、第４の実施の形態における電力制御システム４００でのジョブ割り当ての動作の概要を示すフローチャートである。
【０１２９】
図１６を参照すると、まず、制御部１０２はユーザが選択したサーバをジョブ投入サーバとして選定する（ステップＳ４０１）。このときにユーザが選択したサーバに既に投入待ちジョブがあるかどうかを確認し（ステップＳ４０２）、もしあれば制御部１０２はサーバ選定時点で既にあった投入待ちジョブがなくなるまでジョブを待機させる（ステップＳ４０３）。待機時にジョブ投入待ち時間の余裕具合が小さい順になるようジョブ行列制御部３０５によりジョブ行列の制御（ソート）が行われる。
【０１３０】
選定時点で既にあった投入待ちジョブがなくなった場合、もしくは選定時点で最初から投入待ちジョブがなかった場合、ユーザが選択したサーバに関して予測消費電力と過去電力データを比較し、ジョブの投入待ち時間がユーザの指定した優先度に応じた許容値を超過するまでは、予測消費電力がピーク電力を下回るまでジョブ投入を遅らせる。ここまでは第１の実施の形態のステップＳ１０１〜Ｓ１１２と同様である（ステップＳ４０４〜ステップＳ４１３）。
【０１３１】
ジョブの投入待ち時間がユーザの指定した許容値を超過してしまった場合（ステップＳ４１３でＹｅｓ）の電力制御システム３００の動作について図１７に示すフローチャートを参照して説明する。
【０１３２】
ジョブの投入待ち時間が許容値を超過しているため、電力制御システム４００は至急ジョブ投入できるサーバを調査する必要がある。
【０１３３】
制御部１０２は、たとえば、電源管理部２０３における電源状態を監視することで、各サーバの稼動状態を監視し、ジョブ投入予定のサーバ（例えば、サーバ１１１）以外に他に稼働中のサーバがあるかどうかを調べる（ステップＳ４１４）。
【０１３４】
稼働中のサーバがあった場合、制御部１０２は当該サーバ（たとえば、サーバ１１２）でジョブを投入できる性能があるかどうかを調べる（ステップＳ４１５）。
【０１３５】
投入できる性能がある場合、制御部１０２はサーバ（１１２）でジョブの投入待ちがないかどうかを調べる（ステップＳ４１６）。
【０１３６】
ジョブの投入待ちが無い場合、制御部１０２はそのサーバでジョブを投入する（図１６ステップＳ４１０）。
【０１３７】
以降は第１の実施の形態のステップＳ１０８〜Ｓ１１０と同様とする（ステップＳ４１０〜ステップＳ４１２）。
【０１３８】
ジョブの投入待ちがあった場合またはジョブを投入できる性能ではなかった場合、制御部１０２は他に稼働中サーバがないかどうか調べ、あった場合は同様に調査する（ステップＳ４１４〜ステップＳ４１６）。
【０１３９】
制御部１０２は、全ての稼働中サーバを調査し、ジョブが投入できるサーバが無かった場合（ステップＳ４１４でＮｏ）の電力制御システム４００の動作について図１８に示すフローチャートを参照して説明する。
【０１４０】
まず、制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などの全体の余裕電力としてＷｍを設定する。ここではＷｍ＝０として初期化する（ステップＳ４１７）。
【０１４１】
制御部１０２は当該サーバのピーク電力と現消費電力のギャップが閾値、たとえば１００Ｗを超えているかどうかを調べる（ステップＳ４１８）。
【０１４２】
超えている場合、制御部１０２は当該サーバの消費電力記憶部１２１に記憶されているピーク電力を５０Ｗ減少させて更新する（ステップＳ４１９）。ピーク電力の減少分は、上述の閾値より小さな値でなければならない。次に、制御部１０２は余裕電力Ｗｍに、ピーク電力を減少させた分の電力５０Ｗを追加する。具体的にはＷｍ＝Ｗｍ＋５０の加算を行う（ステップＳ４２０）。
【０１４３】
制御部１０２はジョブ投入予定のサーバ以外に他に稼働中のサーバがあるかどうかを調べる（ステップＳ４２１）。稼働中のサーバがあった場合、制御部１０２は稼働中のサーバに対して以上の処理を繰り返す（ステップＳ４１８〜ステップＳ４２１）。
【０１４４】
次に、制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などの中から停止中のサーバがあるかどうかを調べる（ステップＳ４２２）。
【０１４５】
停止中のサーバがあった場合、制御部１０２はアイドリング状態消費電力記憶部２０４に記憶されている当該サーバのアイドリング状態消費電力を確認する（ステップＳ４２３）。余裕電力Ｗｍが当該サーバのアイドリング状態消費電力＋１００Ｗ（１００ＷはステップＳ４１８での閾値）より大きい場合（ステップＳ４２４）、電源管理部２０３は当該サーバの電源を投入し起動させる（ステップＳ４２５）。制御部１０２はその起動したサーバでジョブを投入する（図１６ステップＳ４１０）。
【０１４６】
以降は第１の実施の形態のステップＳ１０８〜Ｓ１１０と同様とする（ステップＳ４１０〜ステップＳ４１２）。
【０１４７】
余裕電力Ｗｍが当該サーバのアイドリング状態消費電力＋１００Ｗより小さい場合、電源は投入せず、制御部１０２は他に停止中のサーバがないと判定するまで以上の処理を繰り返す（ステップＳ４２２〜ステップＳ４２４）。
【０１４８】
全ての停止中サーバを調査し、電源が投入できるサーバが無かった場合の電力制御システム２００の動作（ステップＳ４２２でＮｏ）について図１９に示すフローチャートを参照して説明する。
【０１４９】
図１９を参照すると、まず、制御部１０２は最初にユーザに指定されたサーバをジョブ投入サーバとして選定する（ステップＳ４２６）。このときにユーザが選択したサーバに既に投入待ちジョブがあるかどうかを確認し（ステップＳ４２７）、もしあれば制御部１０２はサーバ選定時点で既にあった投入待ちジョブがなくなるまでジョブを待機させる（ステップＳ４２８）。待機時にジョブ投入待ち時間の余裕具合が小さい順になるようジョブ行列制御部３０５によりジョブ行列の制御（ソート）が行われる（方法の一例については第３の実施の形態参照）。
【０１５０】
選定時点で既にあった投入待ちジョブがなくなった場合、もしくは選定時点で最初から投入待ちジョブがなかった場合、ユーザが選択したサーバに関して、消費電力測定部１２２で測定される現消費電力に消費電力記憶部１２１が記憶している過去電力データ（ステップＳ４０５、Ｓ４０７にて最初にユーザに指定されたサーバの過去電力データが存在することは明らかである）を加算した値を予測消費電力のデータとして発生する（ステップＳ４２９）。最初にユーザに指定されたサーバの予測消費電力のデータは既にステップＳ４０６にて算出済みであるが、現消費電力が変化している可能性があるため、再度このステップにて算出する。
【０１５１】
次に、制御部１０２は、最初にユーザに指定されたサーバの消費電力記憶部１２１に記憶されているピーク電力と余裕電力Ｗｍを加算し、予測消費電力と比較する（ステップＳ４３０）。予測消費電力がピーク電力と余裕電力Ｗｍの和を下回っている場合、制御部１０２は、消費電力記憶部１２１に記憶されているピーク電力を、選定したサーバのピーク電力と余裕電力Ｗｍとの和で更新する（ステップＳ４３１）。次に、制御部１０２は、最初にユーザに指定されたサーバにジョブを投入する（図１６ステップＳ４１０）。
【０１５２】
以降は第１の実施の形態のステップＳ１０８〜Ｓ１１０と同様とする（ステップＳ４１０〜ステップＳ４１２）。
【０１５３】
予測消費電力がピーク電力と余裕電力Ｗｍの和を超えている場合、制御部１０２はネットワーク１０１に接続された稼働中の各サーバ１１１、１１２などの中から最もピーク電力と現消費電力の差が大きいものを選定する。（ステップＳ４３２）。このときに選定したサーバに既に投入待ちジョブがあるかどうかを確認し（ステップＳ４３３）、もしあれば制御部１０２はサーバ選定時点で既にあった投入待ちジョブがなくなるまでジョブを待機させる（ステップＳ４３４）。待機時にジョブ投入待ち時間の余裕具合が小さい順になるようジョブ行列制御部３０５によりジョブ行列の制御（ソート）が行われる（方法の一例については第３の実施の形態参照）。
【０１５４】
選定時点で既にあった投入待ちジョブがなくなった場合、もしくは選定時点で最初から投入待ちジョブがなかった場合、選定したサーバに関して、消費電力記憶部１２１が記憶している過去電力データと消費電力測定部１２２で測定される現消費電力を確認する（ステップＳ４３５）。
【０１５５】
ここで制御部１０２は、過去電力データが消費電力記憶部１２１にあるかどうかを確認し（ステップＳ４３６）、ある場合は現消費電力に過去電力データを加算した値を予測消費電力とする（ステップＳ４３８）。もし、過去電力データが消費電力記憶部１２１に無い場合、制御部１０２は消費電力記憶部１２１に記憶されている全ユーザの過去電力データの平均を算出し、平均値をジョブ投入ユーザの過去電力データとして設定し、消費電力記憶部１２１にそのデータを記憶する（ステップＳ４３７）。次に、過去電力データが消費電力記憶部１２１にあった場合と同様、制御部１０２は、現消費電力に過去電力データを加算した値を予測消費電力とする（ステップＳ４３８）。
【０１５６】
次に、制御部１０２は、ステップＳ４３２で選定したサーバの消費電力記憶部１２１に記憶されているピーク電力と余裕電力Ｗｍを加算し、予測消費電力と比較する（ステップＳ４３９）。
【０１５７】
予測消費電力がピーク電力と余裕電力Ｗｍの和を下回っている場合、制御部１０２は、消費電力記憶部１２１に記憶されているピーク電力を、選定したサーバのピーク電力と余裕電力Ｗｍとの和で更新する（ステップＳ４３１）。次に、制御部１０２は、ステップＳ４３２で選定したサーバにジョブを投入する（図１６ステップＳ４１０）。
【０１５８】
以降は第１の実施の形態のステップＳ１０８〜Ｓ１１０と同様とする（ステップＳ４１０〜ステップＳ４１２）。
【０１５９】
もし、予測消費電力がピーク電力と余裕電力Ｗｍの和を超えている場合（ステップＳ４３９でＮｏ）の電力制御システム４００の動作について図２０に示すフローチャートを参照して説明する。
【０１６０】
まず、制御部１０２は最初にユーザに指定されたサーバをジョブ投入サーバとして再選定する（ステップＳ４４０）。
【０１６１】
制御部１０２は、実行中ジョブのうち一つの完了を待つ（ステップＳ４４１）。
【０１６２】
ジョブ投入ユーザの要求を満たすことができなかったため、電力制御システム４００はユーザに対してのシステム使用料金をペナルティ分として一定額引き下げる（ステップＳ４４２）。
【０１６３】
その後、ステップＳ４３８、ステップＳ４３９と同様に、制御部１０２は、予測消費電力を算出し（ステップＳ４４３）、ピーク電力と余裕電力Ｗｍの和を超えるかどうか比較する（ステップＳ４４４）。超える場合、制御部１０２は、実行中ジョブのうち一つの完了を待って（ステップＳ４４５）再度予測消費電力の算出（ステップＳ４４３）と、ピーク電力と余裕電力Ｗｍの和との比較を行う（ステップＳ４４４）。
【０１６４】
予測消費電力がピーク電力を下回っている場合、制御部１０２は、消費電力記憶部１２１に記憶されているピーク電力を、選定したサーバのピーク電力と余裕電力Ｗｍとの和で更新する（ステップＳ４４６）。次に、制御部１０２は最初にユーザに指定されたサーバにジョブを投入する（図１６ステップＳ４１０）。
【０１６５】
以降は第１の実施の形態のステップＳ１０８〜Ｓ１１０と同様とする（ステップＳ４１０〜ステップＳ４１２）。
【０１６６】
以上で、電力制御システム４００は、ジョブ割り当ての動作を終了する。
【０１６７】
また、この実施の形態の場合、第２の実施の形態と同様、電力制御システム４００を放置するとアイドリング状態のサーバが増える。このため、使っていないアイドリング状態のサーバは電源断にする必要がある。アイドリング状態のサーバの電源断の動作の概要は図１０に示される。
【０１６８】
制御部１０２はネットワーク１０１に接続された各サーバ１１１、１１２などからアイドリング状態の稼働中のサーバを探し、見つけたら電源管理部２０３は当該サーバを停止させ電源断とする。また、制御部１０２は停止したサーバのピーク電力を、ネットワーク１０１に接続された稼働中のサーバ全てのピーク電力に均等に上乗せしピーク電力を更新する（ステップＳ２３６〜ステップＳ２３９）。
【０１６９】
全ての稼働中のサーバを確認した場合、終了とする。
【０１７０】
以上で、電力制御システム４００は、アイドリング状態のサーバの電源断の動作を終了する。
【０１７１】
次に、本発明の第４の実施の形態の効果について説明する。
【０１７２】
上述した本実施形態における電力制御システムは、第１の実施形態、第２の実施形態、第３の実施形態よりも強力に消費電力ピーク時も電力の上限値を超えない制御を実現できる。
【０１７３】
その理由は、以下のような構成を含むからである。即ち、第１に制御部１０２は、予測電力がピーク電力を超過する場合は、予測電力が下回るまでジョブ投入しない制御を行う。第２に、制御部１０２はユーザから投入指定されたサーバだけではなくネットワーク１０１に接続された全てのサーバを対象にしてジョブ投入の制御を行う。第３に、制御部１０２は当該サーバの投入待ちジョブ行列の制御を行い、ジョブ投入待ち時間の余裕具合が小さい順になるよう投入の順序を最適化する。したがって、第１の実施形態、第２の実施形態、第３の実施形態よりも強力に消費電力ピーク時も電力の上限値を超えない制御を実現できるという効果が得られる。
【０１７４】
以上説明した、本発明の各実施形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、プログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【０１７５】
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【０１７６】
たとえば、以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【０１７７】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【０１７８】
さらに、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【０１７９】
さらに、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【符号の説明】
【０１８０】
１０１    ネットワーク
１０２    制御部
１１１、１１２    サーバ
１２１    消費電力記憶部
１２２    消費電力測定部
２０３    電源管理部
２０４    アイドリング状態消費電力記憶部
３０５    ジョブ行列制御部
【図１】
0005887846.tif 000002
【図２】
0005887846.tif 000003
【図３】
0005887846.tif 000004
【図４】
0005887846.tif 000005
【図５】
0005887846.tif 000006
【図６】
0005887846.tif 000007
【図７】
0005887846.tif 000008
【図８】
0005887846.tif 000009
【図９】
0005887846.tif 000010
【図１０】
0005887846.tif 000011
【図１１】
0005887846.tif 000012
【図１２】
0005887846.tif 000013
【図１３】
0005887846.tif 000014
【図１４】
0005887846.tif 000015
【図１５】
0005887846.tif 000016
【図１６】
0005887846.tif 000017
【図１７】
0005887846.tif 000018
【図１８】
0005887846.tif 000019
【図１９】
0005887846.tif 000020
【図２０】
0005887846.tif 000021