(57)【要約】  サーバ電力消費を調整する技術は、複数のサーバからリソース使用データを受信する計算装置を有する。当該計算装置は、リソース使用データに基づき複数のサーバのソースサーバ及びデスティネーションサーバを特定し、リソース使用データに基づき特定されたソースサーバと特定されたデスティネーションサーバとの間のリソース使用の差分を計算する。計算装置が当該差分が閾値を超過すると判断した場合、計算装置は、ソースサーバのプロセッサのプロセッサ使用を電力消費変更量だけ増加し、デスティネーションサーバのプロセッサのプロセッサ使用を対応する電力消費変化量だけ減少し、サーバのリソースをバランスさせ、新たな作業をサーバに配置するためのより大きなヘッドルームを生成する。【選択図】図１
2016528626.tif 000002
【特許請求の範囲】
【請求項１】
サーバ電力消費を調整する計算装置であって、
複数のサーバからリソース使用データを受信する通信モジュールと、
（ｉ）前記リソース使用データに基づき前記複数のサーバのソースサーバ及びデスティネーションサーバを特定し、（ｉｉ）前記リソース使用データに基づき前記特定されたソースサーバと前記特定されたデスティネーションサーバとの間のリソース使用の差分を計算し、（ｉｉｉ）前記リソース使用の差分が閾値を超過したという判定に応答して、前記ソースサーバのプロセッサのプロセッサ使用を電力消費変化量だけ増加し、（ｉｖ）前記リソース使用の差分が前記閾値を超過したという判定に応答して、前記デスティネーションサーバのプロセッサのプロセッサ使用を対応する電力消費変化量だけ減少する電力バランシングモジュールと、
を有する計算装置。
【請求項２】
当該計算装置は、前記複数のサーバを含むサーバのグループのグループコントローラを有する、請求項１記載の計算装置。
【請求項３】
前記通信モジュールは、前記複数のサーバを含むサーバのリストを抽出し、
前記電力バランシングモジュールは、（ｉ）前記サーバのリソース使用量に基づき前記サーバのリストをソートし、（ｉｉ）前記ソートされたリストにおけるサーバの順序に基づき、前記ソートされたリストにおける前記サーバの一方の半分をデスティネーションサーバとして、前記ソートされたリストにおける前記サーバの他方の半分をソースサーバとして特定する、請求項１記載の計算装置。
【請求項４】
前記リソース使用データは、対応するサーバのメモリ使用量を特定する、請求項１記載の計算装置。
【請求項５】
前記ソースサーバのプロセッサのプロセッサ使用を増加することは、前記ソースサーバのプロセッサのプロセッサ状態を変更することを含み、前記プロセッサ状態は前記プロセッサの周波数動作ポイントを規定する、請求項１乃至４何れか一項記載の計算装置。
【請求項６】
前記ソースサーバのプロセッサのプロセッサ使用を増加することは、前記ソースサーバのプロセッサの動作周波数を低下することを含み、
前記デスティネーションサーバのプロセッサのプロセッサ使用を減少することは、前記デスティネーションサーバのプロセッサの動作周波数を増加することを含む、請求項１乃至４何れか一項記載の計算装置。
【請求項７】
前記通信モジュールは、前記複数のサーバからリソース使用データを定期的に受信する、請求項１乃至４何れか一項記載の計算装置。
【請求項８】
電力最適化のためのサーバであって、
（ｉ）当該サーバのリソースの使用を監視し、（ｉｉ）前記監視されたリソース使用に基づきリソース使用データを生成するハードウェア監視モジュールと、
（ｉ）当該サーバを含むサーバのグループのグループコントローラに前記リソース使用データを送信し、（ｉｉ）前記リソース使用データの送信に応答して、前記グループコントローラから当該サーバのプロセッサのプロセッサ使用を変更する命令を受信する通信モジュールであって、前記命令の受信は、当該サーバのリソース使用データが少なくとも閾値量だけ前記サーバのグループの他のサーバのリソース使用データと異なるという通知である、通信モジュールと、
前記グループコントローラの命令に基づき、電力消費変化量だけ当該サーバのプロセッサのプロセッサ使用を変更するセキュリティコプロセッサと、
を有するサーバ。
【請求項９】
前記プロセッサのプロセッサ使用を変更することは、前記プロセッサのプロセッサ状態を変更することを含み、前記プロセッサ状態は前記プロセッサの周波数動作ポイントを規定する、請求項８記載のサーバ。
【請求項１０】
前記セキュリティコプロセッサは、
前記グループコントローラからの前記プロセッサのプロセッサ使用を減少する命令の受信に応答して、前記プロセッサの動作周波数を増加し、
前記グループコントローラからの前記プロセッサのプロセッサ使用を増加する命令の受信に応答して、前記プロセッサの動作周波数を低下する、請求項８又は９記載のサーバ。
【請求項１１】
前記通信モジュールは、前記リソース使用データを前記グループコントローラに定期的に送信する、請求項８又は９記載のサーバ。
【請求項１２】
前記リソース使用データは、当該サーバのメモリ使用量を特定する、請求項８又は９記載のサーバ。
【請求項１３】
計算装置によってサーバ電力消費を調整する方法であって、
前記計算装置が、複数のサーバからリソース使用データを受信するステップと、
前記計算装置が、前記リソース使用データに基づき前記複数のサーバのソースサーバ及びデスティネーションサーバを特定するステップと、
前記計算装置が、前記リソース使用データに基づき前記特定されたソースサーバと前記特定されたデスティネーションサーバとの間のリソース使用の差分を計算するステップと、
前記計算装置が、前記リソース使用の差分が閾値を超過したと判定したことに応答して、前記ソースサーバのプロセッサのプロセッサ使用を電力消費変化量だけ増加するステップと、
前記計算装置が、前記リソース使用の差分が前記閾値を超過したと判定したことに応答して、前記デスティネーションサーバのプロセッサのプロセッサ使用を対応する電力消費変化量だけ減少するステップと、
を有する方法。
【請求項１４】
前記計算装置が、前記複数のサーバを含むサーバのリストを抽出するステップと、
前記計算装置が、前記サーバのリソース使用量に基づき前記サーバのリストをソートするステップと、
前記計算装置が、前記ソートされたリストにおけるサーバの順序に基づき、前記ソートされたリストにおけるサーバの一方の半分をデスティネーションサーバとして、前記ソートされたリストにおける前記サーバの他方の半分をソースサーバとして特定するステップと、
を更に有する、請求項１３記載の方法。
【請求項１５】
前記リソース使用データを受信するステップは、複数のサーバからリソース使用データを受信することを含み、前記リソース使用データは対応するサーバのメモリ使用量を特定する、請求項１３記載の方法。
【請求項１６】
前記ソースサーバのプロセッサのプロセッサ使用を増加するステップは、前記ソースサーバのプロセッサのプロセッサ状態を変更することを含み、前記プロセッサ状態は前記プロセッサの周波数動作ポイントを規定する、請求項１３記載の方法。
【請求項１７】
前記ソースサーバのプロセッサのプロセッサ使用を増加するステップは、前記ソースサーバのプロセッサの動作周波数を低下することを含み、
前記デスティネーションサーバのプロセッサのプロセッサ使用を減少するステップは、前記デスティネーションサーバのプロセッサの動作周波数を増加することを含む、請求項１３記載の方法。
【請求項１８】
前記リソース使用データを受信するステップは、前記複数のサーバからリソース使用データを定期的に受信することを含む、請求項１３記載の方法。
【請求項１９】
請求項１３乃至１８何れか一項記載の方法を計算装置に実行させるためのプログラム。
【請求項２０】
サーバにおける電力最適化のための方法であって、
前記サーバが、前記サーバのリソースの使用を監視するステップと、
前記サーバが、前記監視されたリソース使用に基づきリソース使用データを生成するステップと、
前記サーバが、前記サーバを含むサーバのグループのグループコントローラに前記リソース使用データを送信するステップと、
前記サーバが、前記リソース使用データを送信することに応答して、前記グループコントローラから前記サーバのプロセッサのプロセッサ使用を変更する命令を受信するステップであって、前記命令の受信は、前記サーバのリソース使用データが前記サーバのグループの他のサーバのリソース使用データと少なくとも閾値量だけ異なるという通知である、受信するステップと、
前記サーバが、前記グループコントローラの命令に基づき、前記プロセッサのプロセッサ使用を電力消費変化量だけ変更するステップと、
を有する方法。
【請求項２１】
前記プロセッサのプロセッサ使用を変更するステップは、前記プロセッサのプロセッサ状態を変更することを含み、前記プロセッサ状態は前記プロセッサの周波数動作ポイントを規定する、請求項２０記載の方法。
【請求項２２】
前記プロセッサのプロセッサ使用を変更するステップは、
前記グループコントローラからの前記プロセッサのプロセッサ使用を減少する命令を受信したことに応答して、前記プロセッサの動作周波数を増加するステップと、
前記グループコントローラからの前記プロセッサのプロセッサ使用を増加する命令を受信したことに応答して、前記プロセッサの動作周波数を低下するステップと、
を含む、請求項２０記載の方法。
【請求項２３】
前記リソース使用データを送信するステップは、前記リソース使用データを前記グループコントローラに定期的に送信することを含む、請求項２０記載の方法。
【請求項２４】
前記リソース使用データを生成するステップは、前記サーバのメモリ使用量を特定するリソース使用データを生成することを含む、請求項２０記載の方法。
【請求項２５】
請求項２０乃至２４何れか一項記載の方法を計算装置に実行させるためのプログラム。
【請求項２６】
請求項１９又は２５記載のプログラムを記憶するためのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
クラウドコンピューティングは、今日の計算ニーズのためデータセンタの利用を拡大してきた。データセンタは、データ処理及び記憶などの計算サービス及びリソースを提供し、しばしばグループコントローラにより制御されるグループに配置される多数のサーバを有する。データセンタにより扱われる作業は、様々な程度までサーバハードウェアリソースを利用する。例えば、ある作業はメモリ及びデータストレージを主に利用する可能性がある一方、他の作業はサーバのプロセッサを主として利用し、計算リソースの非効率な利用をもたらす。これらの非効率性を救済するための取り組みでは、ＩＴマネージャはしばしば（サーバ間などで）移動することによって作業をバランスさせ、経時的に作業が変化しうるため非効率である。
【０００２】
データセンタは、サイズ、複雑さ及び電力消費量を増大させている。エネルギーのコストが世界中で増加し続けるため、企業は、それらのネットワークにデータセンタ及び他の計算装置を含む、それらに使用されるシステムのエネルギー効率を向上させるための機会を探してきた。一般に、これらのシステムのエネルギー効率を向上させるため、すなわち、データセンタにおけるサーバの電力消費を減少させ、消費される電力が使用される効率を増加させるための取り組みが少なくとも２つの最前線で行われてきた。
【図面の簡単な説明】
【０００３】
ここで説明されるコンセプトは、添付した図面において限定することなく例示的に示される。説明の簡単化及び明確化のため、図面に示される要素は必ずしも縮尺通りに描かれる必要はない。適切であると考えられる場合、対応する又は類似する要素を示すため、参照ラベルが図面間で繰り返される。
【図１】図１は、サーバの電力消費を調整するシステムの少なくとも１つの実施例の簡単化されたブロック図である。
【図２】図２は、図１のシステムのサーバの環境及び計算装置の環境の少なくとも１つの実施例の簡単化されたブロック図である。
【図３】図３は、図１のシステムのグループコントローラ上のサーバの電力消費を調整するための方法の少なくとも１つの実施例の簡単化されたフロー図である。
【図４】図４は、図１のシステムのグループコントローラ上のサーバの電力消費を調整するための方法の少なくとも１つの実施例の簡単化されたフロー図である。
【図５】図５は、図１のシステムのサーバ上の電力最適化のための方法の少なくとも１つの実施例の簡単化されたフロー図である。
【発明を実施するための形態】
【０００４】
本開示のコンセプトは様々な修正及び代替的な形態を許容するが、それらの特定の実施例が図面において例示的に示され、ここで詳細に開示される。しかしながら、開示された特定の形態に本開示のコンセプトを限定する意図はなく、それどころか、その意図は本開示及び添付した請求項に整合する全ての修正、均等及び代替をカバーすることである。
【０００５】
“一実施例”、“実施例”、“例示的な実施例”などの明細書における言及は、説明される実施例が特定の特徴、構成又は特性を有してもよいが、全ての実施例が当該特定の特徴、構成又は特性を有してもよいし、又は必ずしも有さなくてもよいことを示す。さらに、このような表現は必ずしも同一の実施例を参照しているとは限らない。さらに、特定の特徴、構成又は特性が実施例に関して説明されるとき、明示的に説明されているか否かに関わらず、他の実施例に関してこのような特徴、構成又は特性を有効にすることは当業者の知識の範囲内であると主張される。
【０００６】
開示される実施例は、いくつかのケースでは、ハードウェア、ファームウェア、ソフトウェア又はこれらの何れかの組み合わせにより実現されてもよい。開示される実施例はまた、１つ以上のプロセッサにより読み込まれて実行されうる一時的又は非一時的な機械可読（コンピュータ可読など）記憶媒体に記憶又は担持される命令として実現されてもよい。機械可読記憶媒体は、機械により可読な形態で情報を記憶又は送信するための何れかの記憶装置、機構又は他の物理的構成（例えば、揮発性又は不揮発性メモリ、メディアディスク又は他のメディアデバイス）として実現されてもよい。
【０００７】
図面において、ある構成的又は方法の特徴は、特定の配置及び／又は順序で示されてもよい。しかしながら、このような特定の配置及び／又は順序付けは必要とされなくてもよいことが理解されるべきである。むしろ、いくつかの実施例では、このような特徴は例示的な図面に示されるものと異なる方式及び／又は順序で配置されてもよい。さらに、特定の図面に構成的又は方法の特徴を包含することは、このような特徴が全ての実施例において必要とされることを意味することを意図するものでなく、いくつかの実施例では、含まれなくてもよく、又は他の特徴と組み合わされてもよい。
【０００８】
ここで図１を参照して、サーバの電力消費を調整するシステム１００は、グループコントローラ１０２、ネットワーク１０６及び複数のサーバ１０８を有する。使用中、以下でより詳細に説明されるように、グループコントローラ１０２は、それのグループに属するサーバ１０８からリソース使用データを受信し、これらのサーバ１０８の間で電力をバランスさせる。具体的には、グループコントローラ１０２は、サーバ１０８の１つのプロセッサ使用を増加させ、サーバ１０８の他の１つのプロセッサ使用を減少させ、作業をより良くバランスさせ、エネルギー効率を向上させてもよい。グループコントローラ１０２は、サーバ１０８との通信リンクを確立し、ここで説明される機能を実行可能な何れかのタイプの計算装置として実現されてもよい。例えば、グループコントローラ１０２は、サーバ、ウェブポータルデバイス、デスクトップコンピュータ、携帯電話、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、モバイルインターネットデバイス及び／又は他の何れかの計算／通信デバイスとして実現されてもよい。
【０００９】
図１に示されるように、例示的なグループコントローラ１０２は、プロセッサ１１０、入出力（“Ｉ／Ｏ”）サブシステム１１２、メモリ１１４、データストレージ１１６、通信回路１１８及び１つ以上の周辺デバイス１２０を有する。もちろん、グループコントローラ１０２は、他の実施例では、典型的な計算装置に通常見つけられるものなど、他の又は更なるコンポーネント（各種入出力デバイスなど）を有してもよい。さらに、いくつかの実施例では、例示的なコンポーネントの１つ以上が他のコンポーネントに搭載されてもよいし、又はそうでない場合、一部であってもよい。例えば、メモリ１１４又はその一部は、いくつかの実施例では、プロセッサ１１０に搭載されてもよい。
【００１０】
プロセッサ１１０は、ここに説明される機能を実行可能な何れかのタイプのプロセッサとして実現されてもよい。例えば、プロセッサは、シングル又はマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ又は他のプロセッサ若しくは処理／制御回路として実現されてもよい。同様に、メモリ１１４は、ここに説明される機能を実行可能な何れかのタイプの揮発性若しくは不揮発性メモリ又はデータストレージとして実現されてもよい。動作について、メモリ１１４は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバなど、グループコントローラ１０２の動作中に使用される各種データ及びソフトウェアを記憶する。メモリ１１４は、Ｉ／Ｏサブシステム１１２を介しプロセッサ１１０に通信接続され、Ｉ／Ｏサブシステム１１２は、プロセッサ１１０、メモリ１１４及びグループコントローラ１０２の他のコンポーネントによる入出力処理を実行するための回路及び／又はコンポーネントとして実現されてもよい。例えば、Ｉ／Ｏサブシステム１１２は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク（すなわち、ポイント・ツー・ポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、プリント回路ボードトレースなど）及び／又は入出力処理を実行するための他のコンポーネント及びサブシステムとして実現されてもよいし、又は有してもよい。いくつかの実施例では、Ｉ／Ｏサブシステム１１２は、システム・オン・チップ（ＳｏＣ）の一部を形成してもよく、プロセッサ１１０、メモリ１１４及びグループコントローラ１０２の他のコンポーネントと共に、単一の集積回路チップに搭載されてもよい。
【００１１】
データストレージ１１６は、例えば、メモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ又は他のデータ記憶装置など、データの短期又は長期記憶のため構成される何れかのタイプのデバイスとして実現されてもよい。図１に示されるように、データストレージ１１６は、リソース使用データ１２２及び１つ以上のサーバリスト１２４を有する。リソース使用データ１２２は、各サーバ１０８から受信され、サーバ１０８の間で電力消費をバランスさせるのに利用されてもよいサーバ１０８の特定のリソースの使用量、タイプ及び／又は程度に関する情報（例えば、メモリ使用、プロセッサ使用、ネットワーク使用又は他のリソース使用情報）を提供する。もちろん、他の実施例では、リソース使用データ１２２は、サーバ１０８以外の計算装置（リソースモニタリング装置など）から受信されてもよい。
【００１２】
さらに、グループコントローラ１０２は、電力消費を調整すべきサーバ１０８の１つ以上のリスト２１６を受信する。例えば、グループコントローラ１０２は、グループコントローラ１０２に関連するグループに属する全てのサーバ１０８を含むサーバリスト２１６を抽出してもよい。いくつかの実施例では、サーバリスト２１６は、グループコントローラ１０２に割り当てられたサーバ１０８に基づき生成されてもよい（例えば、グループコントローラ１０２などによって）。グループコントローラ１０２に割り当てられ、制御され、又は関連付けされた特定のサーバ１０８は時間の経過と共に変わってもよいことが理解されるべきである。さらに、後述されるように、グループコントローラ１０２は、リソース使用データ１２２に基づきサーバリスト２１６をソートする。いくつかの実施例では、このようなソートされたリストの１つ以上がまたデータストレージ１１６に記憶されてもよい。
【００１３】
グループコントローラ１０２の通信回路１１８は、ネットワーク１０６を介したグループコントローラ１０２と他のリモート装置（サーバ１０８など）との間の通信を可能にする何れかの通信回路、デバイス又はこれらの集合体として実現されてもよい。通信回路１１８は、このような通信を実行するための何れか１つ以上の通信技術（例えば、無線又は有線通信）及び関連するプロトコル（例えば、イーサネット（登録商標）、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸなど）を利用するよう構成されてもよい。通信回路１１８は更に、各種メッセージングプロトコルを利用するよう構成されてもよい。例えば、通信回路１１８は、Ａｄｖａｎｃｅｄ  Ｍｅｓｓａｇｅ  Ｑｕｅｕｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＡＭＱＰ）を利用してサーバ１０８と通信してもよい。いくつかの実施例では、通信回路１１８は、１つ以上のサーバ１０８とイン・バンド及び／又はアウト・オブ・バンド通信接続を確立してもよい。例えば、通信回路１１８は、グループコントローラ１０２とサーバ１０８の１つ以上のコンポーネント（例えば、セキュリティコプロセッサ）との間のアウト・オブ・バンド通信を可能にするためＩｎｔｅｌｌｉｇｅｎｔ  Ｐｌａｔｆｏｒｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ（ＩＰＭＩ）を利用してもよい。
【００１４】
グループコントローラ１０２の１つ以上の周辺デバイス１２０は、何れかの数の更なる周辺又はインタフェースデバイスを有してもよい。周辺デバイス１２０に含まれる特定のデバイスは、例えば、グループコントローラ１０２のタイプ及び／又は意図される使用などに依存してもよい。図１に示されるように、グループコントローラ１０２は、クラウド環境１０４の一部に属するか、又は形成してもよい。クラウド環境１０４は、ここに説明される機能を実行可能であって、分散計算及び／又はリソース管理に適した何れかのクラウド計算環境として実現されてもよい。いくつかの実施例では、サーバ１０８はあるいは又はさらにクラウド環境１０４の一部を形成してもよいことが理解されるべきである。
【００１５】
ネットワーク１０６は、グループコントローラ１０２とサーバ１０８との間の通信を実行可能な何れかのタイプの通信ネットワークとして実現されてもよい。また、ネットワーク１０６は、１つ以上のネットワーク、ルータ、スイッチ、コンピュータ及び／又は他の介入する装置を有してもよい。例えば、ネットワーク１０６は、１つ以上のローカル又はワイドエリアネットワーク、公衆に利用可能なグルーバルネットワーク（例えば、インターネット）、セルラネットワーク、電話網、アドホックネットワーク又はこれらの何れかの組み合わせとして実現されるか、又は有してもよい。もちろん、グループコントローラ１０２は１つのネットワーク１０６を介しサーバ１０８と通信してもよく、一方、グループコントローラ１０２及び／又はサーバ１０８は他のネットワーク１０６を介し他のリモートデバイスと通信してもよいことが理解されるべきである。
【００１６】
各サーバ１０８は、ここに説明される機能を実行可能な何れかのタイプの計算装置又はサーバとして実現されてもよい。例えば、いくつかの実施例では、各サーバ１０８は、上述されたようなグループコントローラ１０２と同様であってもよい。すなわち、各サーバ１０８は、企業レベルサーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、ＰＤＡ、モバイルインターネットデバイス及び／又は他の何れかの計算／通信デバイスとして実現されてもよい。グループコントローラ１０２のこれらのコンポーネントの説明は、サーバ１０８のコンポーネントの説明に等しく適用可能であり、説明の簡単化のためここでは繰り返されない。
【００１７】
図１に例示的に示されるように、各サーバ１０８はまたセキュリティコプロセッサ１２６を有してもよい。セキュリティコプロセッサ１２６は、ここで説明される機能を実行可能な何れかのハードウェアコンポーネント又は回路として実現されてもよい。いくつかの実施例では、セキュリティコプロセッサ１２６は、信頼される実行環境を確立可能である。例えば、セキュリティコプロセッサ１２６は、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）、ＭＥ（Ｍａｎａｇｅａｂｉｌｉｔｙ  Ｅｎｇｉｎｅ）、ＣＳＥ（Ｃｏｎｖｅｒｇｅｄ  Ｓｅｃｕｒｉｔｙ  Ｅｎｇｉｎｅ）又は他のアウト・オブ・バンドプロセッサとして実現されてもよい。いくつかの実施例では、セキュリティコプロセッサ１２６は、サーバ１０８のメインプロセッサに対して独立してアウト・オブ・バンド方式で動作するよう構成されるアウト・オブ・バンドプロセッサとして実現される。セキュリティコプロセッサ１２６は、いくつかの実施例では、サーバ１０８がアウト・オブ・バンド通信チャネルを介しグループコントローラ１０２と通信することを可能にしてもよい。さらに、サーバ１０８は、グループコントローラ１０２を参照する際に上述されず、説明の簡単化のためここでは説明されていない計算装置又はサーバにおいて通常見つけられる他のコンポーネント、サブコンポーネント及びデバイスを有してもよいことが理解されるべきである。上述されるように、サーバ１０８は、グループコントローラ１０２に関連するグループに属してもよい。グループコントローラ１０２のグループに属する特定のサーバは何れか適切な方法により定義又は確定されてもよいことが理解されるべきである。例えば、一実施例では、サーバ１０８の各ラックはグループコントローラ１０２により制御されるグループを構成してもよい。さらに、いくつかの実施例では、グループコントローラ１０２はサーバの複数のグループを制御するよう構成される。
【００１８】
ここで図２を参照して、使用中に、システム１００のグループコントローラ１０２は環境２００を確立し、システム１００のサーバ１０８はサーバの電力消費を調整するための環境２５０を確立する。例示的な実施例におけるグループコントローラ１０２の環境２００は、電力バランシングモジュール２０２、作業スケジューリングモジュール２０４、通信モジュール２０６、リソース使用データ２１４及び１つ以上のサーバリスト２１６を有する。さらに、電力バランシングモジュール２０２は、ランキングモジュール２０８、電力調整モジュール２１０及び条件監視モジュール２１２を有する。さらに、例示的な実施例におけるサーバ１０８の環境は、ハードウェア監視モジュール２１８、通信モジュール２２０及び信頼実行環境モジュール２２２を有する。電力バランシングモジュール２０２、作業スケジューリングモジュール２０４、通信モジュール２０６、ランキングモジュール２０８、電力調整モジュール２１０、条件監視モジュール２１２、セキュリティコプロセッサ１２６、ハードウェア監視モジュール２１８、通信モジュール２２０及び信頼実行環境モジュール２２２は、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせとして実現されてもよい。
【００１９】
以下でより詳細に説明されるように、電力バランシングモジュール２０２は、サーバ１０８のリソース使用データ２１４に基づきサーバ１０８の電力消費をバランスする。各サーバ１０８の電力消費は、例えば、サーバ１０８におけるプロセッサの電圧及び周波数動作ポイント及び他の電力関連ファクタを含むファクタにより決定されてもよい。例えば、一実施例では、第１及び第２のサーバ１０８はそれぞれ、特定の周波数（２．０ギガヘルツなど）で動作するプロセッサを有してもよい。また、各サーバ１０８のプロセッサは、ほぼ同じ電力量を消費する。第１のサーバ１０８はほとんど排他的にメモリアクセスに関する作業を処理し、一方、第２のサーバ１０８はプロセッサ集中的な作業を処理してもよい。このような実施例では、第１のサーバ１０８は、第２のサーバ１０８がそれのプロセッサを使用するほどはそれのプロセッサを有意に使用していない。従って、電力バランシングモジュール２０２は、第１のサーバ１０８のプロセッサにより不要に消費される電力を第２のサーバ１０８に“シフト”してもよい。すなわち、いくつかの実施例では、電力バランシングモジュール２０２は、プロセッサが広く使用されないサーバ１０８の電力配分を減少させ、サーバ１０８の間のトータルの電力消費に影響を与えることなくプロセッサ使用が大きなサーバ１０８に対応する量だけ電力配分を増加させる。後述されるように、これを実行する際、電力バランシングモジュール２０２は、例えば、サーバ１０８のプロセッサの電圧及び周波数動作ポイントを修正してもよい。いくつかの実施例では、電力バランシングモジュール２０２はまた、サーバ１０８及び／又はサーバのコンポーネントの電力消費を制限するための電力制限構成を有してもよい。
【００２０】
ランキングモジュール２０８は、サーバ１０８に関するリソース使用データ２１４を受信し、サーバ１０８のリソース使用量に従ってそれらをランク付け（すなわち、ソート）する。例えば、一実施例では、リソース使用データ２１４はメモリ使用データを有してもよく、ランキングモジュール２０８はサーバ１０８のメモリ使用量によりランク付けされたサーバ１０８のソートされたリストを生成してもよい。他の実施例では、リソース使用データ２１４は、サーバ１０８をランク付けするのに利用可能なサーバ１０８のプロセッサ使用量を示してもよい。リソース使用データ２１４の何れか１つ以上の適した態様が、各種実施例においてサーバ１０８をランク付けするのに単独で又は組み合わせて利用されてもよいことが理解されるべきである。
【００２１】
ランキングモジュール２０８はまた、ソースサーバ又はデスティネーションサーバとしてソートされたリストにおいて各サーバ１０８を特定してもよい。ここに説明されるように、電力は、電力バランシングモジュール２０２によってソースサーバからデスティネーションサーバに“シフト”される。上記の具体例では、第１のサーバ１０８がソースサーバであり、第２のサーバ１０８がデスティネーションサーバである。いくつかの実施例では、ランキングモジュール２０８は、ソートされたリストにおけるサーバの順序に基づき、ソートされたリストにおける半分のサーバ１０８をソースサーバとして、またソートされたリストにおける半分のサーバ１０８をデスティネーションサーバとして特定する。例えば、いくつかの実施例では、サーバ１０８のリソース使用によりランク付けされたソートされたリストにおける最初の半分のサーバ１０８がソースサーバであり、他の半分のサーバ１０８がデスティネーションサーバである。
【００２２】
ランキングモジュール２０８はまた、作業スケジューリングモジュール２０４が、例えば、新たな作業及び／又はバーチャルマシーンを配置又はルーティングすべきサーバ１０８を決定できるように、リソース使用データ及び／又はランキング情報（ソートされたリストなど）を作業スケジューリングモジュール２０４に提供してもよい。これを実行する際、作業スケジューリングモジュール２０４は、作業をスケジューリングし、及び／又はバーチャルマシーンを配置するのに適した何れかのランキング、スケジューリング及び／又は他のアルゴリズムを利用してもよい。各作業は異なる計算リソースを利用することが理解されるべきである。従って、作業スケジューリングモジュール２０４は、当該情報を利用して、データセンタのトータルな電力消費を増大させることなく、サーバ１０８の電力消費を最小化し、及び／又はサーバ１０８上で実行される作業の作業密度を最大化するよう新たな作業を適切にスケジューリングしてもよい。
【００２３】
電力調整モジュール２１０は、サーバ１０８の１つ以上のコンポーネントにより消費される電力量を調整する。例示的な実施例では、電力調整モジュール２１０は、サーバ１０８のプロセッサにより消費される電力を調整する。しかしながら、他の実施例では、他のコンポーネントの電力消費は、ここに説明される方法及びアーキテクチャを用いて修正されてもよい。後述されるように、電力調整モジュール２１０は、ペアでサーバ１０８の電力消費を調整してもよい（例えば、１つのサーバ１０８において特定量だけ電力消費を低下させる一方、他のサーバ１０８において同じ量だけ電力消費を増加させる）。例えば、最大のリソース使用を有するソートされたリストにおけるサーバ１０８が、最小のリソース使用を有するソートされたリストにおけるサーバ１０８とペアにされてもよい。さらに、２番目に大きなリソース使用を有するソートされたリストにおけるサーバ１０８が、２番目に小さなリソース使用を有するソートされたリストにおけるサーバ１０８とペアとされ、以下同様であってもよい。いくつかの実施例では、電力調整モジュール２１０は、サーバ１０８のペア（例えば、ソース・デスティネーションサーバペア）の間のリソース使用の差分を計算し、当該差分の閾値を超過した場合に限ってサーバ１０８の電力消費を調整する。すなわち、いくつかの実施例では、電力調整モジュール２１０は、それらのリソース使用の差分が最小である場合、２つのサーバ１０８の間の電力消費を調整しなくてもよい。他の実施例では、サーバ１０８により消費される電力は、他の何れか適したアルゴリズム又はサーバ１０８のグループ化に従って調整されてもよいことが理解されるべきである。
【００２４】
例示的な実施例では、電力調整モジュール２１０は、例えば、それのプロセッサ状態（すなわち、それの“Ｐ状態”）を変更することによって、サーバ１０８の１つのプロセッサにより消費される電力を調整してもよい。すなわち、電力調整モジュール２１０は、プロセッサの電圧及び周波数動作ポイント（しばしば、単に周波数動作ポイントとして参照される）を調整してもよい。プロセッサの周波数動作ポイントが低下すると、プロセッサにより消費される電力量は低下することが理解されるべきである。すなわち、プロセッサの電力消費は、プロセッサの周波数動作ポイントに正比例する。さらに、同じ作業はより低い周波数で動作するプロセッサにより処理されるべきであるため、プロセッサの周波数動作ポイントを低下させることは、プロセッサの有効なプロセッサ使用を所与の作業について増加させる。同様に、プロセッサの周波数動作ポイントを増加させることは、有効なプロセッサ使用を低下させる。プロセッサの周波数動作ポイントを変更することによって、例えば、プロセッサの使用は、配分された作業によるサーバのリソースの電力消費率に一致して与えられる。もちろん、他の実施例では、電力調整モジュール２１０は、何れか適した機構を利用してサーバ１０８のコンポーネントにより消費される電力を調整してもよい。
【００２５】
条件監視モジュール２１２は、リソース使用データ２１４に基づき、電力バランシングモジュール２０２がサーバ１０８の電力消費状況を再評価すべき時点を決定する。例えば、条件監視モジュール２１２は、サーバ１０８の電力消費が定期的に、又は他の時間的制限若しくは条件に基づき評価されるようにタイマを実装してもよい。他の実施例では、条件監視モジュール２１２は、電力バランシングモジュール２０２が電力消費を評価するため、他の条件の発生を監視してもよい（例えば、閾値数の新たな又は排除された作業）。いくつかの実施例では、条件監視モジュール２１２はまた、グループコントローラ１０２がサーバ１０８からリソース使用データ２１４を受信又は要求する条件（例えば、定期的）を決定してもよい。もちろん、他の実施例では、このような決定は代わりにサーバ１０８により行われてもよい。
【００２６】
通信モジュール２０６は、ネットワーク１０６を介しグループコントローラ１０２とリモート装置（サーバ１０８など）との間の通信を処理する。ここで説明されるように、通信モジュール２０６はサーバ１０８からリソース使用データ２１４を受信する。これを実行する際、通信モジュール２０６は、ＡＭＱＰなどのメッセージングプロトコルを利用してもよい。さらに、通信モジュール２０６は、電力バランシング命令をサーバ１０８に送信してもよい（例えば、ＩＰＭＩ又は他のアウト・オブ・バンド通信機構を用いたセキュア送信を介し）。上述されるように、電力バランシング命令は、サーバ１０８の何れのコンポーネント（例えば、プロセッサ、ネットワークインタフェースコントローラ）が変更されるべきか、また、それらがどのように変更されるべきか（例えば、周波数動作ポイントの低下、周波数動作ポイントの増加、プロセッサのＰ状態の“０”への変更など）を特定する情報を有する。
【００２７】
上述されるように、各サーバ１０８は、ハードウェア監視モジュール２１８、通信モジュール２２０及び信頼実行環境モジュール２２２を有する。サーバ１０８のハードウェア監視モジュール２１８は、サーバ１０８の１つ以上のリソース（例えば、プロセッサ、メモリ、ネットワークインタフェースカード、コプロセッサ又は他のコンポーネント）の使用を監視する。さらに、ハードウェア監視モジュール２１８は、監視したリソース使用に基づき当該サーバ１０８のリソース使用データ２１４を生成する。リソース使用データ２１４は何れか適切な方法によりリソース使用を表してもよいことが理解されるべきである。例えば、リソース使用データは、絶対値、相対値、パーセンテージ、レシオ、分布又は他の何れか適切な表現として表されてもよい。
【００２８】
通信モジュール２２０は、ネットワーク１０６を介しサーバ１０８とリモート装置（例えば、グループコントローラ１０２）との間の通信を処理する。上述されるように、通信モジュール２２０は、生成されたリソース使用データ２１４をグループコントローラ１０２に送信する。特定の実施例に依存して、通信モジュール２２０は、定期的に、又はある条件の発生に応答して（例えば、特定数の作業の完了）、リソース使用データ２１４を送信してもよい。通信モジュール２２０はまた、サーバ１０８と他のサーバとの間で電力消費をバランスさせるため、サーバ１０８のコンポーネントを変更するようサーバ１０８に指示する電力バランシング命令をグループコントローラ１０２から受信してもよい。
【００２９】
信頼実行環境モジュール２２２は、電力バランシング命令を受信し（例えば、通信モジュール２２０から、又はグループコントローラ１０２から直接）、電力消費を有効にするためサーバ１０８の特定されたコンポーネントを変更する。信頼実行環境モジュール２２２は、サーバ１０８についてセキュアで信頼される実行環境を確立する。いくつかの実施例では、セキュアコプロセッサ１２６は信頼実行環境モジュール２２２を有する。すなわち、信頼実行環境モジュール２２２は、セキュリティコプロセッサ１２６に搭載又は実行されてもよい。さらに、いくつかの実施例では、グループコントローラ１０２からの電力バランシング命令は、信頼実行環境モジュール２２２によってのみ受信又は処理されてもよい。従って、信頼実行環境モジュール２２２（又はセキュリティコプロセッサ１２６）は、例えば、グループコントローラ１０２から受信した電力バランシング命令に基づき、サーバ１０８のプロセッサのプロセッサ使用を変更してもよい（例えば、プロセッサの周波数動作ポイントを変更することによって）。
【００３０】
ここで図３及び４を参照して、使用中に、システム１００のグループコントローラ１０２は、サーバの電力消費を調整する方法３００を実行する。例示的な方法３００は、グループコントローラ１０２がサーバ１０８の電力消費を調整するか決定する図３のブロック３０２から開始される。調整する場合、ブロック３０４において、グループコントローラ１０２は電力調整パラメータを決定する。例えば、ブロック３０６において、グループコントローラ１０２は、後述されるような２つのサーバ１０８の間で電力消費をバランスさせるか判断するのに利用されてもよい使用閾値を決定してもよい。すなわち、グループコントローラ１０２は、ソースサーバとデスティネーションサーバとの間のリソース使用の差分（すなわち、“使用差分”）を計算してもよく（すなわち、電力移転のため）、いくつかの実施例では、グループコントローラ１０２は、使用差分が使用閾値より大きい場合に限って、選択されたソースサーバとデスティネーションサーバとの間の電力をバランスさせる。ブロック３０８において、グループコントローラ１０２は、電力消費変化量を決定する。すなわち、グループコントローラ１０２は、対応するサーバ１０８の電力消費を増減する量（例えば、絶対値、パーセンテージ又は他の量）を決定する。例示的な実施例では、ソース及びデスティネーションサーバの電力消費は、同じ電力消費変化量だけ変更される。さらに、ブロック３１０において、グループコントローラ１０２は、電力使用評価条件を決定する。すなわち、グループコントローラ１０２は、リソース使用データ２１４に基づきサーバ１０８の電力消費状態を再評価すべきときを決定する。上述されるように、電力使用評価条件は、実施例に依存してある条件の発生又は時間の結果に基づくものであってもよい。使用閾値、電力消費変化量及び電力使用評価条件のそれぞれは、グループコントローラ１０２により予め決定された静的な値であってもよいし、又は動的に決定されてもよいことが理解されるべきである。
【００３１】
ブロック３１２において、グループコントローラ１０２は、電力消費を調整すべきサーバ１０８のリスト２１６を抽出する。上述されるように、サーバリスト２１６は、グループコントローラ１０２に関連するグループに属する全てのサーバ１０８を特定し、グループコントローラ１０２に記憶されてもよいし、又はリモート装置（例えば、クラウド計算装置）から抽出されてもよい。ブロック３１４において、グループコントローラ１０２は、リスト２１６の各サーバ１０８からリソース使用データ２１４を受信する。いくつかの実施例では、リソース使用データ２１４はグループコントローラ１０２からのリクエストに応答して受信される一方、他の実施例では、リソース使用データ２１４は、上述されるように、サーバ１０８におけるある条件（例えば、定期的）の発生に応答してサーバ１０８からグループコントローラ１０２に送信される。他の実施例では、ブロック３０４，３１２及び３１４は他の順序で実行されてもよいことがまた理解されるべきである。
【００３２】
グループコントローラ１０２は、リソース使用データ２１４に従ってサーバリスト２１６をソートする。上述されるように、リソース使用データ２１４は、サーバ１０８の特定のリソースの使用量、タイプ及び／又は程度に関する情報（例えば、メモリ使用、プロセッサ使用、ネットワーク使用又は他のリソース使用情報）を含むものであってもよい。いくつかの実施例では、グループコントローラ１０２は、特定のリソースの使用に従ってサーバリスト２１６をソートする。例えば、グループコントローラ１０２は、最小のメモリ使用を有するサーバ１０８をソートされたリストの一方のエンド（すなわち、ソートされたリストの始め又は終わり）にし、最大のメモリ使用を有するサーバ１０８をソートされたリストの他方のエンドにすることによって、リスト２１６におけるサーバ１０８のメモリ使用量に従ってサーバリスト２１６をソートしてもよい。もちろん、他の実施例では、ソートされたリストはまた、単独で又は組み合わせてサーバ１０８の他のリソースの使用に基づき生成されてもよい。
【００３３】
ブロック３１８において、グループコントローラ１０２は、ソートされたリストに基づきソース及びデスティネーションサーバを特定する。いくつかの実施例では、リソース使用データ２１４に基づき、ソートされたリストの一方の半分（すなわち、上位半分又は下位半分）がソースサーバとして特定され、他方の半分がデスティネーションサーバとして特定されてもよい。後述されるように、いくつかの実施例では、使用閾値が充たされたと仮定すると、ソースサーバは、電力消費が電力消費変化量だけ低下されるべきものであり、デスティネーションサーバは、電力消費が対応する電力消費変化量だけ増加されるべきものである。ソートリストに奇数個のサーバ１０８がある実施例では、“真ん中”のサーバ１０８は、特定の実施例に依存して適切な方式により処理されてもよい（例えば、無視される）。
【００３４】
ここで図４を参照して、グループコントローラ１０２は、ブロック３０２においてソートされたリストから次のソースサーバと次のデスティネーションサーバとを選択する。ブロック３２２において、グループコントローラ１０２は、リスト２１６がソートされた特定のリソース（メモリなど）に関連するリソース使用データ２１４に基づき、選択されたソースサーバとデスティネーションサーバとの間のリソース使用の差分（すなわち、使用差分）を計算する。ブロック３２４において、グループコントローラ１０２は、使用差分が図３のブロック３０６において決定された使用閾値を超過しているか判断する。超過していない場合、方法３００は、グループコントローラ１０２が次のソースサーバと次のデスティネーションサーバとを選択するブロック３２０に戻る。上述されるように、ソースサーバとデスティネーションサーバとのペアは、何れか適切な方式により選択されてもよい。使用差分が使用閾値を超過しているとグループコントローラ１０２が判断した場合、ブロック３２６において、グループコントローラ１０２は、選択されたソースサーバとデスティネーションサーバとの間で電力消費を調整する。例えば、ブロック３２８において、グループコントローラ１０２は、決定されたバジェット変化量だけソースサーバのプロセッサ使用を増加させてもよい。さらに、ブロック３３０において、グループコントローラ１０２は、対応する電力消費変化量だけデスティネーションサーバのプロセッサ使用を低下させてもよい。上述されるように、グループコントローラ１０２は、例えば、プロセッサの周波数動作ポイントを調整することによって、プロセッサ使用を変更してもよい。
【００３５】
ブロック３３２において、グループコントローラ１０２は、まだ対処していない（例えば、使用差分を計算していない）ソートされたリストにおける何れか残りのソース及びデスティネーションサーバがあるか判断する。ある場合、方法３００は、グループコントローラ１０２が使用差分を計算すべき次のソースサーバとデスティネーションサーバとのペアを選択するブロック３２０に戻る。しかしながら、このようなペアがない場合、グループコントローラ１０２は、ブロック３３４において、電力使用評価条件が充足されるまで待機する。すなわち、グループコントローラ１０２は、図３のブロック３１０において決定された電力使用評価条件の１つ以上の発生を監視する。上述されるように、電力使用評価条件は、充足される場合、グループコントローラ１０２がサーバ１０８のリソース使用データ２１４を再評価すべきことを示す条件（例えば、タイマの満了）を特定する。当該条件が充足された場合、方法３００は、グループコントローラ１０２がサーバ１０８の新たなリソース使用データ２１４を受信する図３のブロック３１４に戻る。いくつかの実施例では、グループコントローラ１０２は、評価条件の発生に対して他の順序によりリソース使用データ２１４を受信してもよいことが理解されるべきである。
【００３６】
ここで図５を参照して、使用中に、システム１００のサーバ１０８の１つ以上が電力最適化のための方法５００を実行してもよい。例示的な方法５００は、サーバ１０８がサーバ１０８の１つ以上のリソースの監視される使用に基づきリソース使用データ２１４を生成するブロック５０２から開始される。ブロック５０４において、サーバ１０８は生成されたリソース使用データ２１４をグループコントローラ１０２に送信する。上述されるように、リソース使用データ２１４は、何れか適切な形式又は構成により生成及び送信されてもよい。ブロック５０６において、サーバ１０８は、サーバ１０８のプロセッサ使用を変更するための命令がグループコントローラ１０２から受信されたか判断する。もちろん、他の実施例では、サーバ１０８は、他の電力バランシング命令がグループコントローラ１０２から受信されたか判断してもよい。例えば、他の電力バランシング命令は、サーバ１０８の他のリソース又はコンポーネント（例えば、ネットワークカード）を変更することに関するものであってもよい。
【００３７】
プロセッサ使用命令がグループコントローラ１０２から受信されたとサーバ１０８が判断した場合、ブロック５０８において、サーバ１０８は、これに対応してプロセッサ使用を変更する。上述されるように、サーバ１０８は、例えば、プロセッサの周波数動作ポイントを変更するなどによってそうしてもよく、プロセッサ使用は、周波数動作ポイントを低下させることによって増加し、プロセッサの周波数動作ポイントを増加することによって低下する。他の実施例では、サーバ１０８が他の電力バランシング命令を受信した場合、サーバ１０８は、関連するコンポーネントの使用を適切に変更してもよい。ブロック５０６において、プロセッサ使用命令が受信されなかったとサーバ１０８が判断したか、又はブロック５０８において、サーバがプロセッサ使用を変更した場合、ブロック５１０において、サーバ１０８は、監視条件が充足されたか判断する。上述されるように、サーバ１０８は、充足される場合、サーバ１０８にリソース使用データ２１４を生成させ、リソース使用データ２１４をグループコントローラ１０２に送信させる条件を規定する監視条件を決定してもよい。監視条件が充足されているとサーバ１０８が判断した場合、方法５００は、サーバ１０８が現在のリソース使用データ２１４を生成するブロック５０２に戻る。そうでない場合、方法５００は、プロセッサ使用命令（又はより一般には、電力バランシング命令）がグループコントローラ１０２から受信されたか判断するブロック５０６に戻る。
【００３８】
具体例
ここに開示される技術の例示的な具体例が以下に提供される。これらの技術の実施例は、後述される具体例の何れか１つ以上及び何れかの組み合わせを含むものであってもよい。
【００３９】
具体例１は、サーバ電力消費を調整する計算装置であって、複数のサーバからリソース使用データを受信する通信モジュールと、（ｉ）リソース使用データに基づき複数のサーバのソースサーバ及びデスティネーションサーバを特定し、（ｉｉ）リソース使用データに基づき特定されたソースサーバと特定されたデスティネーションサーバとの間のリソース使用の差分を計算し、（ｉｉｉ）リソース使用の差分が閾値を超過したという判定に応答して、ソースサーバのプロセッサのプロセッサ使用を電力消費変化量だけ増加し、（ｉｖ）リソース使用の差分が閾値を超過したという判定に応答して、デスティネーションサーバのプロセッサのプロセッサ使用を対応する電力消費変化量だけ減少する電力バランシングモジュールとを有する計算装置を有する。
【００４０】
具体例２は具体例１の主題を有し、ここで、当該計算装置は、複数のサーバを含むサーバのグループのグループコントローラを有する。
【００４１】
具体例３は具体例１及び２の何れかの主題を有し、ここで、通信モジュールは、複数のサーバを含むサーバのリストを抽出し、電力バランシングモジュールは、サーバのリソース使用量に基づきサーバのリストをソートする。
【００４２】
具体例４は具体例１〜３の何れかの主題を有し、ここで、電力バランシングモジュールは、ソートされたリストにおけるサーバの順序に基づき、ソートされたリストにおけるサーバの一方の半分をデスティネーションサーバとして、ソートされたリストにおけるサーバの他方の半分をソースサーバとして特定する。
【００４３】
具体例５は具体例１〜４の何れかの主題を有し、ここで、リソース使用データは、対応するサーバのメモリ使用量を特定する。
【００４４】
具体例６は具体例１〜５の何れかの主題を有し、ここで、ソースサーバのプロセッサのプロセッサ使用を増加することは、ソースサーバのプロセッサのプロセッサ状態を変更することを含み、プロセッサ状態はプロセッサの周波数動作ポイントを規定する。
【００４５】
具体例７は具体例１〜６の何れかの主題を有し、ここで、ソースサーバのプロセッサのプロセッサ使用を増加することは、ソースサーバのプロセッサの動作周波数を低下することを含み、デスティネーションサーバのプロセッサのプロセッサ使用を減少することは、デスティネーションサーバのプロセッサの動作周波数を増加することを含む。
【００４６】
具体例８は具体例１〜７の何れかの主題を有し、ここで、通信モジュールは、複数のサーバからリソース使用データを定期的に受信する。
【００４７】
具体例９は、電力最適化のためのサーバであって、（ｉ）当該サーバのリソースの使用を監視し、（ｉｉ）監視されたリソース使用に基づきリソース使用データを生成するハードウェア監視モジュールと、（ｉ）当該サーバを含むサーバのグループのグループコントローラにリソース使用データを送信し、（ｉｉ）リソース使用データの送信に応答して、グループコントローラから当該サーバのプロセッサのプロセッサ使用を変更する命令を受信する通信モジュールであって、ここで、命令の受信は、当該サーバのリソース使用データが少なくとも閾値量だけサーバのグループの他のサーバのリソース使用データと異なるという通知である、通信モジュールと、グループコントローラの命令に基づき、電力消費変化量だけサーバのプロセッサのプロセッサ使用を変更するセキュリティコプロセッサとを有するサーバを有する。
【００４８】
具体例１０は具体例９の主題を有し、ここで、プロセッサのプロセッサ使用を変更することは、プロセッサのプロセッサ状態を変更することを含み、プロセッサ状態はプロセッサの周波数動作ポイントを規定する。
【００４９】
具体例１１は具体例９及び１０の何れかの主題を有し、ここで、セキュリティコプロセッサは、グループコントローラからのプロセッサのプロセッサ使用を減少する命令の受信に応答して、プロセッサの動作周波数を増加し、グループコントローラからのプロセッサのプロセッサ使用を増加する命令の受信に応答して、プロセッサの動作周波数を低下する。
【００５０】
具体例１２は具体例９〜１１の何れかの主題を有し、ここで、通信モジュールは、リソース使用データをグループコントローラに定期的に送信する。
【００５１】
具体例１３は具体例９〜１２の何れかの主題を有し、ここで、リソース使用データは、当該サーバのメモリ使用量を特定する。
【００５２】
具体例１４は、計算装置によってサーバ電力消費を調整する方法であって、計算装置が、複数のサーバからリソース使用データを受信するステップと、計算装置が、リソース使用データに基づき複数のサーバのソースサーバ及びデスティネーションサーバを特定するステップと、計算装置が、リソース使用データに基づき特定されたソースサーバと特定されたデスティネーションサーバとの間のリソース使用の差分を計算するステップと、計算装置が、リソース使用の差分が閾値を超過したと判定したことに応答して、ソースサーバのプロセッサのプロセッサ使用を電力消費変化量だけ増加するステップと、計算装置が、リソース使用の差分が閾値を超過したと判定したことに応答して、デスティネーションサーバのプロセッサのプロセッサ使用を対応する電力消費変化量だけ減少するステップとを有する方法を有する。
【００５３】
具体例１５は具体例１４の主題を有し、ここで、リソース使用データを受信するステップは、計算装置がグループコントローラであるサーバのグループに属する複数のサーバからリソース使用データを受信することを含む。
【００５４】
具体例１６は具体例１４及び１５の何れかの主題を有し、計算装置が、複数のサーバを含むサーバのリストを抽出するステップと、計算装置が、サーバのリソース使用量に基づきサーバのリストをソートするステップとを更に有する。
【００５５】
具体例１７は具体例１４〜１６の何れかの主題を有し、計算装置が、ソートされたリストにおけるサーバの順序に基づき、ソートされたリストにおけるサーバの一方の半分をデスティネーションサーバとして、ソートされたリストにおけるサーバの他方の半分をソースサーバとして特定するステップを更に有する。
【００５６】
具体例１８は具体例１４〜１７の何れかの主題を有し、ここで、リソース使用データを受信するステップは、複数のサーバからリソース使用データを受信することを含み、リソース使用データは対応するサーバのメモリ使用量を特定する。
【００５７】
具体例１９は具体例１４〜１８の何れかの主題を有し、ここで、ソースサーバのプロセッサのプロセッサ使用を増加するステップは、ソースサーバのプロセッサのプロセッサ状態を変更することを含み、プロセッサ状態はプロセッサの周波数動作ポイントを規定する。
【００５８】
具体例２０は具体例１４〜１９の何れかの主題を有し、ここで、ソースサーバのプロセッサのプロセッサ使用を増加するステップは、ソースサーバのプロセッサの動作周波数を低下することを含み、デスティネーションサーバのプロセッサのプロセッサ使用を減少するステップは、デスティネーションサーバのプロセッサの動作周波数を増加することを含む。
【００５９】
具体例２１は具体例１４〜２０の何れかの主題を有し、ここで、リソース使用データを受信するステップは、複数のサーバからリソース使用データを定期的に受信することを含む。
【００６０】
具体例２２は、プロセッサにより実行されると、具体例１４〜１９の何れかの方法を計算装置に実行される複数の命令を記憶するメモリとプロセッサとを有する計算装置を有する。
【００６１】
具体例２３は、実行されることに応答して、具体例１４〜２１の何れかの方法を計算装置に実行させる複数の命令を記憶した１つ以上の機械可読記憶媒体を有する。
【００６２】
具体例２４は、具体例１４〜２１の何れかの方法を実行する手段を有するロケーションプライバシを管理する計算装置を有する。
【００６３】
具体例２５は、サーバにおける電力最適化のための方法であって、サーバが、サーバのリソースの使用を監視するステップと、サーバが、監視されたリソース使用に基づきリソース使用データを生成するステップと、サーバが、サーバを含むサーバのグループのグループコントローラにリソース使用データを送信するステップと、サーバが、リソース使用データを送信することに応答して、グループコントローラからサーバのプロセッサのプロセッサ使用を変更する命令を受信するステップであって、命令の受信は、サーバのリソース使用データがサーバのグループの他のサーバのリソース使用データと少なくとも閾値量だけ異なるという通知である、受信するステップと、サーバが、グループコントローラの命令に基づき、プロセッサのプロセッサ使用を電力消費変化量だけ変更するステップとを有する方法を有する。
【００６４】
具体例２６は具体例２５の主題を有し、ここで、プロセッサのプロセッサ使用を変更するステップは、プロセッサのプロセッサ状態を変更することを含み、プロセッサ状態はプロセッサの周波数動作ポイントを規定する。
【００６５】
具体例２７は具体例２５及び２６の何れかの主題を有し、ここで、プロセッサのプロセッサ使用を変更するステップは、グループコントローラからのプロセッサのプロセッサ使用を減少する命令を受信したことに応答して、プロセッサの動作周波数を増加するステップと、グループコントローラからのプロセッサのプロセッサ使用を増加する命令を受信したことに応答して、プロセッサの動作周波数を低下するステップとを含む。
【００６６】
具体例２８は具体例２５〜２７の何れかの主題を有し、ここで、リソース使用データを送信するステップは、リソース使用データをグループコントローラに定期的に送信することを含む。
【００６７】
具体例２９は具体例２５〜２８の何れかの主題を有し、ここで、リソース使用データを生成するステップは、サーバのメモリ使用量を特定するリソース使用データを生成することを含む。
【００６８】
具体例３０は、プロセッサにより実行されると、具体例２５〜２９の何れかの方法を計算装置に実行される複数の命令を記憶するメモリとプロセッサとを有する計算装置を有する。
【００６９】
具体例３１は、実行されることに応答して、具体例２５〜２９の何れかの方法を計算装置に実行させる複数の命令を記憶した１つ以上の機械可読記憶媒体を有する。
【００７０】
具体例３２は、具体例２５〜２９の何れかの方法を実行する手段を有するロケーションプライバシを管理する計算装置を有する。
【図１】
2016528626.tif 000003
【図２】
2016528626.tif 000004
【図３】
2016528626.tif 000005
【図４】
2016528626.tif 000006
【図５】
2016528626.tif 000007
【国際調査報告】
2016528626.tif 000008
2016528626.tif 000009
2016528626.tif 000010