複数のサーバコンピュータおよび/またはアプリケーションおよび/またはバーチャルマシンVMから電力測定値を受け取るステップであって、前記電力測定値は、前記サーバコンピュータの、または前記個別アプリケーションの、または前記アプリケーションをホストする前記VMの、電力消費の測定値を含み、前記サーバコンピュータは、前記サーバコンピュータ外部の対応する電力インフラストラクチャユニットから電力を受け取る、ステップと、前記電力測定値を評価して、前記電力インフラストラクチャユニットのうちの1つが電力使用の低減を必要とするかどうか判定するステップと、電力低減の必要があると判定するのに応答して、前記電力インフラストラクチャユニットから電力を受け取る1つまたは複数のサーバコンピュータに1つまたは複数のメッセージを送るステップであって、前記メッセージは前記1つまたは複数のサーバコンピュータ上における計算の低減を引き起こす、ステップとを含むことを特徴とする、コンピュータによって実施される方法。前記電力インフラストラクチャユニットから電力を受け取る複数のサーバコンピュータについての受け取られた電力測定値から総電力を計算および予測し、前記総電力に基づいて、前記複数のサーバコンピュータについて計算負荷を低減すべきであると決定することによって、電力低減を必要とする前記電力インフラストラクチャユニットが識別されることを特徴とする請求項1に記載の方法。前記決定することは電力消費ポリシを使用して実施され、前記ポリシは、望ましいまたは必須の電力使用特性を指定することを特徴とする請求項2に記載の方法。計算および/または電力の前記低減は、非アクティブ化すること、終了して再現すること、移行すること、リソースを再割振りすること、または前記1つもしくは複数のサーバコンピュータ上で実行されるバーチャルマシンVMに対する作業負荷を調整することによって行われ、前記非アクティブ化することは、一時的に延期または停止した後で同じサーバ上または異なるサーバ上で再開することを含み、前記終了して再現することは、過負荷の箇所のアプリケーションインスタンスが終了して、後で同じサーバ上または異なるサーバ上で新しいインスタンスが、または前記新しいインスタンスをホストするVMがインスタンス化され、必要ならアプリケーション状態が前記VM上で再現されることを含むことを特徴とする請求項1に記載の方法。計算および/または電力の前記低減は、周波数スケーリングなどプロセッサ電力管理ノブを使用して前記1つまたは複数のサーバコンピュータ上の1つまたは複数のCPUの電力消費に影響する前記CPUの設定を変更することにより、前記CPUがより少ない電力を消費するようにすることによって行われることを特徴とする請求項1に記載の方法。前記電力消費ユニットを識別することに応答して、前記過負荷の電力インフラストラクチャユニットから電力を受け取っていない1つまたは複数のサーバコンピュータ上の計算負荷を増大させるステップをさらに含むことを特徴とする請求項1に記載の方法。計算の前記増大は、前記過負荷の電力インフラストラクチャユニットから電力を受け取っていない1つまたは複数のサーバコンピュータ上で実行される1つまたは複数のVMをアクティブ化または改変することによって行われることを特徴とする請求項6に記載の方法。コンピューティングデバイスについての電力消費限度を定義するポリシを受け取るステップと、前記コンピューティングデバイスについての電力消費の測定値を受け取るステップと、前記コンピューティングデバイスのうちの1つについての前記測定値が前記ポリシ中の電力消費限度を超過するかまたは超過に寄与すると決定するステップと、前記決定するステップに応答して、前記コンピューティングデバイスのうちの1つによる電力消費の低減を引き起こすステップであって、前記コンピューティングデバイスのうちの前記1つは、前記プロセスを実施している前記コンピューティングデバイスと同じデバイスではない、ステップとを含むことを特徴とする方法。前記決定するステップにさらに応答して、前記決定されたコンピューティングデバイスに電力を供給しない電力インフラストラクチャから電力を得る1つまたは複数のコンピューティングデバイスを識別し、前記識別された1つまたは複数のコンピューティングデバイスによる電力消費の増大を引き起こすステップをさらに含むことを特徴とする請求項8に記載の方法。電力消費の増大および/または電力消費の前記低減は、CPU周波数設定を変更すること、キャッシュ割振りを変更すること、メモリ割振りを変更すること、リソースの中でもとりわけメモリ帯域幅割振りを変更すること、アプリケーションの処理優先順位を変更すること、アプリケーションの計算負荷を増大または低減させるよう前記アプリケーションに信号を送ることのうちの1つまたは複数によって行われることを特徴とする請求項8に記載の方法。前記測定値は、前記コンピューティングデバイスのハードウェアの一部として備わる電力モニタによって提供され、かつ/または、バーチャルマシンについての電力消費を推定する前記コンピューティングデバイスのうちのいくつかの上で実行されるソフトウェアモジュールによって提供されることを特徴とする請求項8に記載の方法。複数のコンピュータ中の電力消費を管理するための、1つまたは複数のコンピュータによって実施される方法であって、いずれか所与の複数のコンピュータのうちの個別コンピュータの電力消費の徴候を集約することによって前記所与の複数のコンピュータが評価されるように、複数のコンピュータの電力消費を繰返し評価するステップであって、前記評価するステップは、電力を過多に消費している複数のコンピュータを識別し、電力を過少に消費している複数のコンピュータを識別する、ステップと、電力を過多に消費しているとして識別された第1の複数のコンピュータに応答して、前記第1の複数のコンピュータのうちのいくつかのコンピュータに、前記いくつかのコンピュータの計算作業負荷を低減するよう命令する第1のメッセージを送信するステップと、電力を過多に消費しているとして識別された前記第1の複数のコンピュータにさらに応答して、電力を過少に消費しているとして識別された第2の複数のコンピュータのうちの他のコンピュータに第2のメッセージを送信するステップであって、前記第2のメッセージは、前記他のコンピュータの計算作業負荷を増大させるよう前記他のコンピュータに命令する、ステップとを含むことを特徴とする方法。前記評価するステップは、前記コンピュータ上で実行されるソフトウェアアプリケーションによって提供される電力消費の推定値に基づくことを特徴とする請求項12に記載の方法。前記コンピュータ上で実行される電力モニタプログラムが前記コンピュータの個別の電力消費の測定値を提供し、前記計算作業負荷は、CPU速度を低下させること、アプリケーションプログラムを停止もしくは減速すること、バーチャルマシンの構成を改変すること、リソースを再割振りすること、またはアプリケーションを移行することによって、低減されることを特徴とする請求項12に記載の方法。計算作業負荷の前記低減を命令するステップは、前記第1の複数のコンピュータからバーチャルマシンを移行することによって実施されることを特徴とする請求項12に記載の方法。電力分配の概観図1に、コンピューティングインフラストラクチャのための電力分配システム100を示す。ほとんどのデータセンタやサーバファームなどは、いくぶん固定された電力供給システムを有する。すなわち、電力は、電力供給元または電源102から、最終的に電力を消費する計算デバイス104に、距離に伴って減少する固定の分量で提供される。電力供給元または電源は、様々な回路に分配される電力の量を変更することがわかっているが、所与の時点で、供給は固定されているものとして考察のために仮定することができ、または、分配を動的に変更する能力は限定されているか不便である場合がある。例えば、配線、変圧器、スイッチなどにおける電力損失を無視した場合、電力は、ソース102から、減少する固定量106、108、110、112で、分配ポイント114例えば近隣、キャンパス、変電所など、回路1116、回路3118、様々なデバイス104へと提供することができる。計算要素またはデバイス104は、サーバ、スイッチ、ルータ、データ記憶デバイス例えばテープバンク、コンテナ、コンピュータブレードなどのためのラックなど、コンピューティング要素とすることができる。データセンタ、コンピューティングクラウド、または他のタイプの協調的な計算インフラストラクチャが、図1に示すような電力分配システム100に依拠する場合がある。例えばサーバのクラスタを使用して、包括的なサービス/アプリケーションホスティングを顧客に提供することができる。多くの場合、いずれか所与の時点で実行される様々なタイプのホストされるアプリケーション、ならびにその作業負荷は、予測することまたは事前に知ることが難しい場合のある形で変動する可能性がある。エラー条件、ネットワークまたはサーバの障害、ホストされるアプリケーション/サービスに対する外部からの需要の増加、および他の多くの要因が、予測できない急な計算負荷の増大を引き起こすことがあり、したがって、個別のサーバ、サーバのクラスタ、スーパーコンピュータ、さらにはデータセンタ全体これらは物理的に遠く離れているが、ネットワークを介して統合されて、一貫した一様なホスティングサービスを提供することができるの電力消費を増加させることがある。同様に、計算作業負荷が低いと、電力供給インフラストラクチャの別の部分で、消費されない余分な電力が生み出されることがある。図2に、コンピューティングインフラストラクチャを示す。この例示的なインフラストラクチャは、2つのデータセンタ100を有する。考察のために、データセンタ100は、計算要素またはデバイス104を収容するため、およびおそらくはそれらに電力、冷却、人間のオペレータのアクセスなどを提供するための、いずれかの任意のユニットと考えることができる。分散管理システム130が、ホストにおけるアプリケーションのリソース使用についての測定値、クラウドホスティングプラットフォームの種々のランタイムプロパティおよび特性、ならびに/または、任意のホストグループについての総計測定値例えば、メモリ使用、CPU利用、アクティブなプロセス/スレッド、ネットワーク接続、ネットワーク帯域幅使用、電力消費、ディスクドライブアクティビティ、メモリ障害、キャッシュヒット率などを得る能力を有する。使用できる様々な技法の1つに関する追加の記述については、参照により本明細書に組み込まれる、特許文献1を参照されたい。電力監視および管理データセンタ100は、様々なコンピューティングデバイス104を含んでよい。コンピューティングデバイス104は、様々なアプリケーション134の供給をデバイスが受けられるようにするアプリケーションホスティングソフトウェア132を備えてよく、アプリケーション134は通常、ネットワークを介して、データにアクセスすることになり、データをその外部ユーザに提供することを含めてデータを提供することになる。コンピューティングデバイス104はまた、データベースをホストし、DNSまたはウェブサービスを提供し、ロードバランサまたは他の特殊化されたインフラストラクチャタイプのソフトウェアを提供することができる。コンピューティングデバイス104はまた、監視コンポーネント135を有することができ、監視コンポーネント135は、メトリックおよびプロパティの中でもとりわけ、性能、リソース使用、可用性、電力消費、およびネットワーク統計を、管理システム130に提供する。コンピューティングデバイス104の監視コンポーネント135は、協働してピアツーピアネットワークを形成して、大域的状態の総計ビューを計算することができ、または、自動化された分析および意思決定後で論じる、集約、共有、相関推論などのために、集中サーバもしくは複数の論理的に集中化されたサーバにデータを収集するのを可能にすることができる。ホスティングソフトウェア132は監視コンポーネント135を管理するのに好都合なので、監視コンポーネント135は、ホスティングソフトウェア132内にあるものとして示されている。しかし、監視コンポーネントは、ホスティングソフトウェア132によって管理される必要はない。監視コンポーネント135は、ホスティングソフトウェア132とは別個で離れていてもよく、または、監視コンポーネント135は、いくつかのコンピューティングデバイス104上ではホスティングソフトウェア132によって扱われ、他のコンピューティングデバイス104上では自律的であってもよい。データセンタ100はまた、管理および組織のユニット、例えば、クラスタ136、サブクラスタ138、建物140、コンテナ、コロ、およびその他を有してよい。様々な組織ユニットが、様々な固定電力量106、108、110、112に対応する場合がある。管理システム130は、個別のデバイス、および/またはクラスタ、および/またはサブクラスタ、および/または回路など、様々なレベルの組織の電力使用に関する情報を得る。管理システム130は、デバイス104の使用レベルを得て、ラック、クラスタ、コンテナ、コロなどの組織ユニットの使用レベル、ならびに、ホストされるアプリケーションおよびVMバーチャルマシンの性能、サービスレベルアグリーメントSLA、および優先順位などを導出することができる。管理システム130は、どの組織ユニットの電力が余分および/または不足かを決定することができる。次いで管理システム130は、電力消費を低減および/または増大させることになるアクションをとるよう、様々なデバイス104に命令する例えば、ネットワークメッセージを介して、または直接にコンソール端末を介してことができる。例えば、管理システム130は、アプリケーション142を移行、終了、減速などするよう、デバイス104にメッセージを送信することができる。移行の場合は、アプリケーション142を、別のデバイス104上の余分な利用可能電力を有する電力ユニット上で、移動またはアクティブ化、加速などすることができる。同じプロセスを、他の多くのアプリケーション、バーチャルマシンVMなどについても実施することができる。正味の効果としては、問題の電力ユニット上の電力消費が低減され、他の電力ユニット上の電力消費が増大することになるが、両方のユニットの電力使用は、それらの指定の電力予算以内となる。同じプロセスを、複数の電力ユニットについて実施して、それらのランタイム電力使用がそれらの指定の電力予算を超過しないことを確実にすることができる。一実施形態では、バーチャルマシンを使用して、サーバまたはデバイス104上の計算負荷したがって電力消費を管理システム130によって統制することができる。管理システムは、バーチャルマシン全体を移行すること、バーチャルマシンに利用可能な計算リソースを、例えばそれらの優先順位、収入クラス、利用に基づいて減少/増加させる例えば、仮想CPU速度、仮想メモリ、キャッシュ割振り、メモリ帯域幅割振りなどを増加/減少させること、バーチャルマシンの実行を一時的に延期して後で同じサーバまたは異なるサーバ上で再開すること、またはそうでない場合は、バーチャルマシンを操作または再構成して、データセンタ100やクラウドインフラストラクチャなどにわたる現在の電力割振りに適合するように計算負荷を調整することができる。別の実施形態では、管理システム130は、クラウドコンピューティングインフラストラクチャが、現在の電力使用に従って、同じデータセンタまたは異なるデータセンタ中でホストされる異なるサーバにユーザ要求をルーティングするようにすることができる。詳述すると、管理システム130は、様々な電力消費ユニット例えばコロ、コンテナ、ラック、個別サーバごとの電力上限または限度を有することができ、この場合、電力上限は、仮想化されたクラウド環境で施行される。これにより、ホストされるアプリケーションまたはVMの総計ピーク電力消費が指定の電力予算を超過するという、電力の申込み超過を可能にすることができ、これにより電力供給コストが削減される。いくつかの市販のサーバまたはデバイス104は、電力計測/上限設定機能をハードウェア中で提供し、動的電圧周波数スケーリングDVFSを使用した電力予算を施行する方法が利用可能である。しかし、複数の分散されたまたは仮想化されたアプリケーションが物理的サーバを共有するときは、電力上限をサーバ全体に対して施行すると、そのサーバ上の全ての実行中VMの性能に影響する。このことは、アプリケーションのうちの1つだけにおける過大な負荷のせいで、複数のアプリケーションの性能に影響することがある。さらに、これらの電力関連の側面は、電力ポリシに組み入れられている場合がある。電力ポリシは、種々の時刻における、または種々のユーザ需要および作業負荷の間における種々のサーバコンポーネントまたはグループ上の電力消費の特性など、アプリケーション挙動の望ましい特徴を指定するかまたは特徴付ける場合があることに留意されたい。電力関連ポリシの例については、特許文献1の図4を参照されたい。ポリシに関する関連の考察も参照されたい。電力ポリシを個別のアプリケーションまたはVMごとに指定できるようにすることにより、電力消費をアプリケーション単位またはVM単位で統制することが可能であろう。物理的サーバがその電力上限を超過したとき、いずれかのサーバまたはデバイス104上で実行されるエネルギー施行モジュールEnergyEnforcementModule管理システム130の一実施形態またはコンポーネントが上限を施行することができるが、これは、ユーザによって指定されたポリシに従って、アクションの中でもとりわけ、個別のアプリケーションまたはVMに対するリソース割振りを選択的に抑制すること、実行中のVMのサブセットの実行を一時的に延期して後で同じサーバまたは異なるサーバ上で再開すること、VMを終了して後で同じサーバまたは異なるサーバ上で新しいアプリケーションインスタンスをホストする新しいVMをインスタンス化することステートレスなサービスの場合、また、アプリケーション状態の再現をサポートするステートフルなサービスの場合でもによって、施行することができる。例えば、あるユーザポリシは、まず、優先順位の低いアプリケーションに対するVMについて上限を設け、このようなアクションが電力上限に見合うのに不十分な場合は、次いで、より優先順位の高いVMを抑制することを必要とする場合がある。EEMを使用して、共有クラウドインフラストラクチャ中で、優先順位を意識したエネルギーアカウンティングおよび施行を実現することができる。クラウドサーバが、作業負荷が動的に変化する高優先順位の対話式アプリケーションからのVM、ならびに、ウェブクローリング、データ複製、科学的作業負荷、およびDryadLINQ/Map-Reduceジョブなどのバックグラウンドタスクを実施する低優先順位のVMをホストすると仮定する。全てのアプリケーションからのVMを、VM配置制約に基づいてクラウドサーバにわたって分散させることができる。EEMは、使用される全てのサーバに対する電力上限を監視する。電力上限を超過していることをEEMが検出したとき、または近い将来に電力上限を超過する可能性が高いことをEEMが予測したとき、EEMは、指定の施行ポリシに従って上限を施行する。EEMにおける電力上限施行に関する以下の例示的なポリシ優先順位の低いバックグラウンドVMについてCPU割振りを低減し、それでも電力消費を指定の電力予算内にするのに不十分な場合にのみ、優先順位の高いVMに対してリソースを抑制するを考えてみる。このポリシに従えば、サーバのラックに電力を供給する回路ブレーカが容量に近いとき、EEMは、サーバ全体を抑制するのではなくこれは、これらのサーバ上で実行されている優先順位の高いVMを抑制することを含意する、まず、ラック内のサーバ上の優先順位の低いVMを選択して電力使用を低減することになる。電力ポリシの施行図3に、エネルギー施行モジュールEEM機能を実現するための2つのモジュールを示す。電力モニタ160モジュールが電力使用を監視し、優先順位ベースの電力アロケータPPA162モジュールが電力ポリシを施行する。図3にはまた、アプリケーション163、ユーザポリシ仕様164、およびアプリケーションモニタ166も示すが、これらはそれぞれ、特許文献1に記載されている。電力モニタ160に関して、ハードウェアベースの電力測定設備がサーバ上またはデバイス104上で利用可能な場合は、このような設備を電力モニタ160に使用することができる。いくつかのサーバは、このような内臓の電力計測ハードウェアを有するが、このようなハードウェアが利用可能でない場合は、他の技法を使用することができる。例えば、WattsUpPROES電力メータを使用して、サーバ電力を測定することができる。このような場合、電力メータのための直列化プロトコルドライバをアプリケーションモニタ166にインタフェースして、電力データにアクセスすることができる。アプリケーションモニタ166は、集約、相関、および分析などのために、電力データを他のモニタまたは管理モジュールに転送することができる。PPA162に関して、方法の中でもとりわけ、サーバ上のVMに割り振られるCPU時間または部分を変更することによって、電力上限を施行することができる。一実施形態では、プロセッサ時間の抑制自体でも十分な場合がある。というのは、プロセッサは通常、小さいフォームファクタのサーバの総電力消費の大部分に貢献するからである。追加でまたは別法として、例えば、プロセスごと、アプリケーションごと、またはVMごとの抑制を実施することもできる。割り振られるCPU時間が短縮されるのに伴い、サーバのプロセッサは、低電力/パフォーマンス状態でより多くの時間を費やし、それにより電力使用を低減する。一実施形態では、Windows登録商標Hyper-Vを仮想化に使用することができる。他のシステムでは、XenVMMなど、同様の機能が利用可能である。どのようにHyper-Vを修正してCPU時間割振りを変更するかに関する追加の詳細については、非特許文献を参照されたい例えば、非特許文献1参照。複数のVMをホストする個別サーバごとのプロセッサ時間抑制は、そのサーバの電力上限に対処するが、電力はまた、複数のサーバにわたって管理される場合もある。データセンタ中では、複数のサーバが、同じクラウドサービス例えば、HTTPフロントエンドとアプリケーション中間段とデータベースバックエンドとを含む、多段ウェブおよびeコマースアプリケーションを実行している場合がある。したがって、1つのサーバを抑制すると、このサーバがクラウドサービスのボトルネックになることがあり、それによりサービス全体の性能が劣化することがある。さらに、複数のサーバが、共通の電力供給を共有し、これらのサーバの電力供給の容量に基づいて筐体レベル例えばラック、コンテナで総電力消費の限度を有する場合がある。したがって、データセンタ中で電力管理を筐体レベルで実施する必要がある場合がある。この機能を可能にするためには、単純な大域的電力制御ポリシを実現することができる。電力管理の例図4に、ラックにわたる電力消費を管理するための一実装形態を示す。ラック以外の任意の電力管理ユニット、例えば建物、回路、コンテナ、コロ、無停電電源装置などを使用してよいことに留意されたい。図4に示すように、電力モニタ160例えば電力メータが、ラック188にわたる全てのサーバ180の総電力消費を測定し、これらの値を管理システム130に送る。管理システム130は、構成の中でもとりわけ、協働するエージェントのネットワーク、アプリケーションモニタプログラム、または、指定の管理サーバ上で実行されるプログラムとすることができる。管理システム130はまた、各サーバ180上で実行される個別のVM186の電力使用を収集する。VMごとの電力使用は、電力モニタ160を使用して、例えば各サーバ180上のルートハイパーバイザ中で実行されるJoulemeter例えば、非特許文献2参照を使用して、計算することができる。ラック、例えばラック1188の電力消費が所定の電力予算よりも高いことを管理システム130が検出すると、管理システム130は、他のラックラック2192など上の、サーバの電力予算未満で動作している十分に利用されていないサーバ190への移行のために、ラック188上の電力利用の最も高い必要数のVM186を選択し電力予算に見合うように、この決定を示すメッセージを、作動に向けてリソースマネージャ194に送る。十分に利用されていないサーバが、移行されるVMをホストするのに利用可能でない場合、または、移行コストがそれらの利益よりも高くつく場合は、例えば、VMの実行を一時的に延期して、後で再開することができる。この例示的な電力ポリシは、単純だが、VMの移行中にVMの性能を低下させることができる。性能に対する影響を最小限に抑えるために、代替ポリシの1つは、最初に、電力容量の過負荷を有するラックから、バックグラウンドタスク例えば、ウェブ検索のためのインデックスの計算、マップ-リデュースジョブ、科学的作業負荷、DryadLinQ/Map-Reduceジョブなどを処理しているVM186を、電力予算未満のラック上でホストされている十分に利用されていないサーバに移行するまたはこのVM186に最も高い優先順位を割り当てることになり、これでもまだ電力過負荷のラックに対する電力上限に見合わない場合は、このポリシは、フォアグラウンドタスクを処理しているVMを移行し、移行に向けた最も低い処理優先順位を対話式VMに割り当てることができる。さらに、要素の中でもとりわけ、電力利用、優先順位、収入クラス、およびユーザ対話性例えば性能に対するSLAペナルティを組み合わせることに基づく、ハイブリッド方式を使用して、ラックにわたる電力予算に見合うように移行に向けてVMの優先順位を付けることができる。このようなポリシの2つの例は、以下のとおりである。移行に向けてVMに優先順位を割り当てる第1のハイブリッド例示的ポリシは、電力消費がより高いVMにより高い優先順位を割り当て、2つのVMが同じ電力使用を有する場合は、性能への影響に対するSLAペナルティがより低いVMを優先することになる。第2のハイブリッド例示的ポリシは、性能劣化に対するSLAペナルティが最低であるVMにより高い優先順位を割り当て、2つのVMについて性能に対するSLAペナルティが同じである場合は、電力消費がより高いVMを選択することになる。上記と同様、十分に利用されていないサーバが、移行されるVMをホストするのに利用可能でない場合、または、移行コストがそれらの利益よりも高くつく場合は、ポリシの中でもとりわけ、VMの実行を一時的に延期して、後で同じサーバまたは異なるサーバ上でVMを再開することができる。図5に、管理システム130によって実施される例示的な電力管理プロセスを示す。電力測定値が、繰返し受け取られる220。測定値は繰返し使用されて、電力消費を低減する必要のある電力インフラストラクチャが識別される222。次いで、識別された222電力インフラストラクチャに対応する候補計算要素例えばアプリケーション、VM、CPU、サーバが、移行のための、または他の電力低減アクションの実行のための潜在的候補として識別される224。計算要素は、ユーザおよび/またはオペレータによって書かれた電力使用/施行ポリシに基づいて識別することができる224。識別された224計算要素を抑制すると他のどこかの計算の代償的な増加が必要になりうる実施形態では、プロセスは、識別された224計算要素を再割振りする228先として適したインフラストラクチャを識別する226ことを含んでよい。例えば、電力管理ポリシは、優先的に計算負荷を増大させることになる計算要素、例えば電力容量が十分に利用されていない計算要素の、条件または特性を提供する場合がある。さらに電力測定値が受け取られた後、プロセスは任意選択で、識別されたインフラストラクチャの電力消費が十分に低減されたかどうか決定することができる230。低減されていない場合は、追加のアクションをとることができる232。他のプロセスを使用して、電力平衡を達成することもできる。一実施形態では、電力割振りとSLA性能とを組み合わせることができ、アプリケーション性能がSLAを満たしていない場合は、より多くの電力を割り振ることができ、または電力が低減されるのを防止することができる。結び要約すると、様々な計算要素の電力消費を監視することができ、電力使用を、電力分配インフラストラクチャにわたる電力利用可能性または指定の予算と比較することができる。例えば、電力分配インフラストラクチャは、データセンタコロ部屋、ラック、回路、コンテナ、または個別サーバもしくはクラスタにわたる、固定の電力予算を有する場合がある。1つまたは複数の予算限界において電力予算を超過したときまたは、超過しそうなときもしくは超過すると予測されるとき、電力予算施行を開始して、インフラストラクチャの過負荷部分における電力使用を積極的に低減することができる。ユーザおよび/またはオペレータによって指定された電力管理ポリシに基づき、1つまたは複数の施行機構を使用して電力使用が制御される。このような機構は、以下のまたは他の機構を含みうる。電力使用の増加を引き起こす、作業負荷およびアプリケーション、またはこれらの作業負荷を処理するVMの、いくらかまたは全てを、電力インフラストラクチャの、電力予算を超過していない部分に移行することができる。バーチャルマシンは、移行することができ、過負荷部分のアプリケーションインスタンスまたはサーバは、シャットダウンして、同様のアプリケーションインスタンスまたはサーバをインフラストラクチャの他の部分で開始することができる。データセンタに入来するユーザからの要求、ならびに実行中の作業負荷は、同じデータセンタまたは他のデータセンタ中の、過負荷でない部分のサーバにリダイレクトするかまたは移行することができる。いくつかのサーバ例えば、優先順位または収入の低いアプリケーションを実行しているサーバの電力使用を、これらのサーバ上のCPUプロセッサ周波数または、リソースの中でもとりわけ、アプリケーションごともしくはVMごとの、メモリ/キャッシュ/メモリ帯域幅の割振りを減少させることによって、低減することができる。いくつかのアプリケーションに割り振られるCPU時間を短縮し、したがってプロセッサが低電力パフォーマンス状態または低電力スリープ状態でより多くの時間を費やすことができるようにし、それにより平均電力引込みを減少させることができる。自動化された電力アラートをユーザ、オペレータ、およびソフトウェアアプリケーションに送ることができ、ユーザ、オペレータ、およびソフトウェアアプリケーションは、その処理タイプを変更することによって応答することができ例えば、ムービーストリーミングサーバは、HD解像度から標準鮮明度に切り換えることができる、低減された作業負荷により、引き込まれる電力が減少する。作業負荷は、要因の中でもとりわけ、利用可能な電力容量、動的な電力価格付け/利用可能性、ホストする計算要素の可用性および容量、移行で被る帯域幅やレイテンシなどの移行コストに基づいて、地理的に分散したデータセンタにわたって移行することができる。展開されるソフトウェアおよびハードウェアによって提供される他の電力制御オプションを呼び出すこともできる。以上に論じた実施形態および特徴は、揮発性または不揮発性のコンピュータ可読媒体またはデバイス可読媒体に記憶された情報の形で実現することができる。これは、光学記憶装置例えばCD-ROM、磁気媒体、フラッシュROM、または、素早くアクセス可能なディジタル情報を記憶する任意の現行もしくは将来の手段などの媒体を、少なくとも含むと見なされる。記憶された情報は、機械実行可能命令例えばコンパイルされた実行可能バイナリコード、ソースコード、バイトコード、または、上に論じた様々な実施形態をコンピューティングデバイスが実施するのを可能にするかもしくは実施するよう構成するのに使用できるいずれか他の情報の形とすることができる。これもまた、実施形態を実施するプログラムの実行中にCPU命令などの情報を記憶するRAMおよび/または仮想メモリなどの揮発性メモリ、ならびに、プログラムまたは実行ファイルがロードされ実行されるのを可能にする情報を記憶する不揮発性媒体を、少なくとも含むと見なされる。実施形態および特徴は、ポータブルデバイス、ワークステーション、サーバ、モバイルワイヤレスデバイスなどを含めた、任意のタイプのコンピューティングデバイス上で実施することができる。