JP4839328B2 - サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム - Google Patents

サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム Download PDF

Info

Publication number
JP4839328B2
JP4839328B2 JP2008010684A JP2008010684A JP4839328B2 JP 4839328 B2 JP4839328 B2 JP 4839328B2 JP 2008010684 A JP2008010684 A JP 2008010684A JP 2008010684 A JP2008010684 A JP 2008010684A JP 4839328 B2 JP4839328 B2 JP 4839328B2
Authority
JP
Japan
Prior art keywords
frequency
cpu
power consumption
amount
virtual server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008010684A
Other languages
English (en)
Other versions
JP2009175788A (ja
Inventor
俊幸 馬場
良史 高本
恵介 畑▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008010684A priority Critical patent/JP4839328B2/ja
Priority to US12/169,917 priority patent/US8065541B2/en
Publication of JP2009175788A publication Critical patent/JP2009175788A/ja
Application granted granted Critical
Publication of JP4839328B2 publication Critical patent/JP4839328B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Description

本発明は、サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラムに関する。
サーバコンピュータ(以下、サーバ)に搭載されるCPU(Central Processing Unit)は、例えば、オペレーティングシステム(OS)やアプリケーションプログラム等を動作させるために使用される。サーバの処理効率を上げるために、サーバに搭載されるCPUの数は、年々増加傾向にある。
一方、サーバの電力消費量も年々増大している。例えば、データセンタのような大量のサーバを有するシステムでは、情報処理システム全体の総消費電力が増大し、施設の許容電力量を超えてしまう場合もある。このため、電気コストが増大するばかりか、サーバの設置台数が制限されるという問題がある。
サーバの有する各種ハードウェアの中でも、CPUの消費する電力は特に大きい。従って、サーバに搭載されるCPUの数及び動作周波数の増加に伴って、サーバの消費電力も増大する。
また、多数のプログラムを並列に実行して処理性能を向上させるべく、一つのCPUに複数のプロセッサコアを集積するという、いわゆるマルチコア化も進展している。CPU内のコア数が増加するほど、CPUの消費電力量も増大する。
さらに、消費電力が大きいと電源装置に大きな負担がかかるため、電源装置等の寿命が低下する恐れもある。
そこで、サーバの消費電力を低減するために、CPUの周波数を低減させる技術が提案されている(特許文献1,特許文献2,特許文献3)。この従来技術では、CPUがアイドル時や低負荷の場合に、CPUの動作周波数及び供給電圧を強制的に低下させることにより、消費電力及び発熱量を低減させる。
米国特許第6,845,456号明細書 米国特許第7,080,267号明細書 米国特許第7,155,617号明細書
ところで、単一の物理サーバ上に、一つまたは複数の仮想的なサーバを設ける技術も知られている。この技術は、例えば、サーバ仮想化技術と呼ばれる。各仮想サーバは、それぞれ別々のOSを独立して動作させることができる。サーバ仮想化技術は、プロセッサ、メモリ、ディスク装置等の、物理サーバが有する各種のコンピュータ資源を、それぞれの仮想サーバに分割して割り当てる。これにより、物理サーバの有する限られたコンピュータ資源を有効に利用できる。
コンピュータ資源の割り当てや仮想サーバのスケジューリングは、物理サーバ上で稼動する仮想化機構が担当する。仮想サーバの生成や削除は、ユーザ(管理者を含む。以下同様。)が仮想化機構に指示することにより、実施される。コンピュータ資源を確保して仮想サーバに割り当てることにより、仮想サーバが生成される。仮想サーバに割り当てられているコンピュータ資源を解放させることにより、その仮想サーバは削除される。
前記文献に記載の従来技術では、CPUの周波数を低下させることにより、消費電力を削減することができる。しかし、その従来技術は、一つまたは複数の仮想サーバを有する物理サーバには、そのまま適用することはできない。即ち、仮想サーバ環境下では、従来技術をそのまま単純に利用しても、仮想サーバの機能を低下させずに消費電力を削減することはできない。
一つの課題としては、周波数を低下させるタイミングの問題がある。仮想サーバ環境では、一つのCPUを複数の仮想サーバが共有する場合があり、この場合、同一のCPUを利用して複数の仮想サーバが同時に稼動することができる。
従って、もしも、一方の仮想サーバがアイドル状態にあるからといって、CPUの動作周波数を低下させてしまうと、そのCPUを共有する他方の仮想サーバの処理性能も同時に低下してしまう。
他の一つの課題として、CPUの動作周波数を低下させることにより、仮想サーバを管理する仮想化機構の性能も低下するという問題がある。仮想サーバ環境を機能させるためには、各仮想サーバを動作させるためにディスパッチ処理やリソース割り当て処理等を行うための仮想化機構が必要である。従って、仮想化機構が使用しているCPUの周波数を低下させてしまうと、そのCPUを共用する仮想サーバだけではなく、仮想化機構の動作にまで影響が及び、仮想サーバ全体の性能が低下してしまう。
そこで、本発明の目的は、仮想サーバの性能低下を抑制しつつ消費電力を低減できるようにしたサーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラムを提供することにある。本発明の他の目的は、仮想サーバの負荷変動に追従して消費電力を制御することのできるサーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラムを提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかとなるであろう。
上記課題を解決すべく、本発明の第1観点に従うサーバの消費電力制御装置は、少なくとも一つ以上の仮想サーバを有する物理サーバの消費電力を制御するための消費電力制御装置であって、物理サーバは、物理サーバの有する演算処理資源が割り当てられて仮想的に生成される少なくとも一つ以上の仮想サーバと、この仮想サーバへ演算処理資源を割当てることにより仮想サーバを生成する仮想化機構と、を備えており、仮想サーバにより使用されている演算処理資源の第1の量と仮想化機構により使用されている演算処理資源の第2の量との合計使用量を検出し、演算処理資源を駆動させる周波数の決定要求を出力する使用量検出部と、決定要求を受領した場合に、合計使用量と演算処理資源の総量との差分に基づいて、演算処理資源を駆動させる周波数を決定する周波数決定部と、決定された周波数に応じて、仮想サーバに割り当てる演算資源の第の量及び仮想化機構に割り当てる演算処理資源の第4の量をそれぞれ決定する割当量決定部と、決定された第の量の演算処理資源を仮想サーバに割当て、かつ、決定された第4の量の演算処理資源を仮想化機構に割当て、さらに、決定された周波数で演算処理資源を駆動させるように、仮想化機構に要求する設定変更部と、を備える。
第2観点では、第1観点において、演算処理資源に関する周波数と消費電力との関係を示す周波数−消費電力特性を予め取得する消費電力特性取得部を更に備え、周波数決定部は、周波数−消費電力特性に基づいて予め設定される所定の周波数範囲内で、演算処理資源を駆動させる周波数を決定する。
第3観点では、第2観点において、所定の周波数範囲は、周波数の変化に応じて消費電力が変化する特性線の傾きの値に応じて設定される。
第4観点では、第3観点において、特性線の傾きの値が変化する周波数に閾値がそれぞれ予め設定され、各閾値間の周波数範囲が所定の周波数範囲として使用される。
第5観点では、第1〜4観点のいずれかにおいて、使用量検出部は、仮想サーバから発行される処理要求のうち仮想化機構上で実行待ち状態におかれている処理要求の数を監視しており、実行待ち状態にある処理要求の数が予め設定される上限値に達した場合に、演算処理資源を駆動させる周波数を増加させるべく、周波数決定部に要求する。
第6観点では、第1〜5観点のいずれかにおいて、第の量は、決定される周波数の下で仮想サーバに最低限必要な演算処理資源の量として決定され、第4の量は、決定される周波数の下で仮想化機構に最低限必要な演算処理資源の量として決定される。
第7観点では、第1〜6観点のいずれかにおいて、仮想化機構には、第4の量が仮想サーバに割り当てられる第2の量に優先して割り当てられる。
第8観点では、第1〜7観点のいずれかにおいて、使用量検出部は、所定の指示に応じて作動する。
第9観点では、第8観点において、所定の指示は、ユーザによって入力される。
第10観点では、第9観点において、所定の指示には、第の量の最低値が予め指定されている。
第11観点では、第9観点において、所定の指示には、仮想サーバが処理を実行する時間を示すスケジュールが予め含まれており、使用量検出部は、スケジュールに基づいて、決定要求を出力する。
第12観点では、第1〜11観点のいずれかにおいて、使用量検出部は、物理サーバの有する演算処理資源を複数の仮想サーバが共有している場合に、決定要求を出力する。
第13観点では、第1〜12観点のいずれかにおいて、設定変更部は、周波数決定部により決定される周波数で演算処理資源を駆動させるよりも前に、決定された第の量の演算処理資源を仮想サーバに割当て、かつ、決定された第4の量の演算処理資源を仮想化機構に割当て、次に、決定された周波数で演算処理資源を駆動させるように、仮想化機構に要求する。
第14観点では、第2〜13観点のいずれかにおいて、仮想化機構は、設定変更部からの要求に応じて演算処理資源のうち決定された第の量を仮想サーバに割り当てると共に決定された第4の量を仮想化機構に割り当てるための演算処理資源割当て機能と、演算処理資源を駆動させる周波数を変更させるための周波数制御機能と、周波数制御機能を用いて周波数−消費電力特性を作成するための基礎データを取得する消費電力測定機能とを、含んで構成される。
第15観点に従うサーバの消費電力制御方法は、少なくとも一つ以上の仮想サーバを有する物理サーバの消費電力を制御するための消費電力制御方法であって、物理サーバは、物理サーバの有する演算処理資源が割り当てられて仮想的に生成される少なくとも一つ以上の仮想サーバと、この仮想サーバへ演算処理資源を割当てることにより仮想サーバを生成する仮想化機構と、を備えており、仮想サーバにより使用されている演算処理資源の第1の量と仮想化機構により使用されている演算処理資源の第2の量との合計使用量を検出し、演算処理資源を駆動させる周波数の決定要求を出力するステップと、決定要求を受領した場合に、合計使用量と演算処理資源の総量との差分に基づいて、演算処理資源を駆動させる周波数を決定するステップと、決定された周波数に応じて、仮想サーバに割り当てる演算資源の第の量及び仮想化機構に割り当てる演算処理資源の第4の量をそれぞれ決定するステップと、決定された第の量の演算処理資源を仮想サーバに割当て、かつ、決定された第4の量の演算処理資源を仮想化機構に割当てさせるように、仮想化機構に要求するステップと、決定された周波数で演算処理資源を駆動させるように、仮想化機構に要求するステップと、をそれぞれ実行する。
第16観点に従うサーバの消費電力制御方法は、少なくとも一つ以上の仮想サーバを有する物理サーバの消費電力を制御するための消費電力制御方法であって、物理サーバは、物理サーバの有する演算処理資源が割り当てられて仮想的に生成される少なくとも一つ以上の仮想サーバと、この仮想サーバへ演算処理資源を割当てることにより仮想サーバを生成する仮想化機構と、を備えており、演算処理資源に関する周波数と消費電力との関係を示す周波数−消費電力特性を取得するステップと、仮想サーバにより使用されている演算処理資源の第1の量と仮想化機構により使用されている演算処理資源の第2の量との合計使用量を検出し、演算処理資源を駆動させる周波数の決定要求を出力するステップと、決定要求を受領した場合に、周波数−消費電力特性に基づいて予め決定される所定の周波数範囲内で、合計使用量と演算処理資源の総量との差分に基づいて、演算処理資源を駆動させる周波数を決定するステップと、決定された周波数に応じて、仮想サーバに割り当てる演算資源の第の量及び仮想化機構に割り当てる演算処理資源の第4の量をそれぞれ決定するステップと、決定された第の量の演算処理資源を仮想サーバに割当て、かつ、決定された第4の量の演算処理資源を仮想化機構に割当てさせるように、仮想化機構に要求するステップと、決定された周波数で演算処理資源を駆動させるように、仮想化機構に要求するステップと、をそれぞれ実行する。
第17観点に従うコンピュータプログラムは、コンピュータを、少なくとも一つ以上の仮想サーバを有する物理サーバの消費電力を制御するための消費電力制御装置として機能させるコンピュータプログラムであって、物理サーバは、物理サーバの有する演算処理資源が割り当てられて仮想的に生成される少なくとも一つ以上の仮想サーバと、この仮想サーバへ演算処理資源を割当てることにより仮想サーバを生成する仮想化機構と、を備えており、仮想サーバにより使用されている演算処理資源の第1の量と仮想化機構により使用されている演算処理資源の第2の量との合計使用量を検出し、演算処理資源を駆動させる周波数の決定要求を出力するステップと、決定要求を受領した場合に、合計使用量と演算処理資源の総量との差分に基づいて、演算処理資源を駆動させる周波数を決定するステップと、決定された周波数に応じて、仮想サーバに割り当てる演算資源の第の量及び仮想化機構に割り当てる演算処理資源の第4の量をそれぞれ決定するステップと、決定された第の量の演算処理資源を仮想サーバに割当て、かつ、決定された第4の量の演算処理資源を仮想化機構に割当てさせるように、仮想化機構に要求するステップと、決定された周波数で演算処理資源を駆動させるように、仮想化機構に要求するステップと、をそれぞれ実行する。
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態では、以下に詳述するように、仮想サーバの負荷に応じて、CPUの割当量及びCPU駆動周波数を調節することにより、物理サーバの消費電力を制御する。より詳細な構成は、後述の実施例で明らかにされる。
図1は、本実施形態の概要を示す説明図である。図1に示す情報処理システムは、例えば、一つの管理サーバ1と、一つまたは複数の物理サーバ2と、少なくとも一つのストレージ装置3とを備えて構成される。ストレージ装置3、物理サーバ2、管理サーバ1の順番で以下に説明する。
ストレージ装置3は、例えば、ハードディスクドライブやフラッシュメモリデバイスのような記憶ドライブを備えている。記憶ドライブの有する物理的記憶領域を用いて、論理ボリューム3Aが形成される。ストレージ装置3は、物理サーバ2と別体の装置として構成し、物理サーバ2とストレージ装置3とをFC−SAN(Fibre Channel−Storage
Area Network)やIP−SAN(Internet Protocol−Storage
Area Network)のような通信経路で接続することができる。あるいは、ストレージ装置3を物理サーバ2内に設ける構成でもよい。なお、ストレージ装置3の備える記憶ドライブの種類は、特に問わない。
物理サーバ2は、例えば、CPU(Central Processing Unit)2Aやメモリ等の各種コンピュータ資源と、仮想化機構4と、一つまたは複数の仮想サーバ5を備える。物理サーバ2は、例えば、複数のコンピュータ基板(ブレード)をバックボードに装着するような形態で構成可能である。つまり、物理サーバ2は、いわゆるブレードサーバとして構成することができる。但し、物理サーバ2の具体的構造は、特に問わない。ブレードサーバ以外の構成にも本発明は適用可能である。
仮想化機構4は、仮想サーバ5に物理サーバ2の有するコンピュータ資源及びボリューム3A内の仮想的記憶領域(仮想ディスクとも呼ぶ)を割り当てることにより、仮想サーバ5を生成する。仮想化機構4は、例えば、各仮想サーバ5の生成や削除と、各仮想サーバ5の作動に必要なバックグラウンド処理等を担当する。
各仮想サーバ5は、それぞれ別々のOS(Operating System)を備える。各仮想サーバ5は、それぞれに割り当てられたコンピュータ資源や仮想ディスクを用いて、それぞれ別々の処理を行うことができる。
管理サーバ1は、「消費電力制御装置」に該当し、IPネットワークのような通信経路CNを介して物理サーバ2に接続されている。管理サーバ1は、各仮想サーバ5及び仮想化機構4の負荷状況や性能に着目しながら物理サーバ2に指示を与えることにより、物理サーバ2の消費電力を制御する。
管理サーバ1は、ユーザから入力される所定の指示に応じて、以下に述べるように、物理サーバ2の消費電力を制御する。後述の実施例から明らかとなるように、ユーザからの所定の指示は、消費電力の削減または増加という単純な指示の場合もあるし、各仮想サーバ5の処理時間やピーク負荷の生じる時期等を考慮した、消費電力制御スケジュールである場合もある。
管理サーバ1は、例えば、CPU使用量等検出部1A(以下、使用量等検出部1Aとも呼ぶ)と、CPU消費電力特性取得部1B(以下、消費電力特性取得部1Bとも呼ぶ)と、周波数決定部1Cと、CPU割当量決定部1Dと、設定変更要求部1Eとを備えて構成される。
使用量等検出部1Aは、仮想化機構4と通信を行うことにより、各仮想サーバ5及び仮想化機構4の負荷状態をそれぞれ検出する。使用量等検出部1Aは、「使用量検出部」に該当する。負荷状態としては、各仮想サーバ5のCPU使用率、仮想化機構4のCPU使用率、各仮想サーバ5の実行処理待ち要求の数を挙げることができる。
周波数変更前のCPU使用状況8Bに示すように、この例では、第1仮想サーバ5(V1)は、第1仮想サーバ5(V1)に割り当てられたCPU量を全て使用しており、第2仮想サーバ5(V2)は、第2仮想サーバ5(V2)に割り当てられたCPU量の一部を使用しており、残りのCPU割当量は未使用状態(idle)となっている。仮想化機構4は、仮想化機構4に割り当てられたCPU量を全て使用している。
変更前状況8Bに示す調整前のCPU使用率(CPU使用量)は、「第1の量」または「第2の量」に該当する。なお、仮想化機構4には、必要最低限度以上のCPU量が常に割り当てられるようになっている。
仮想サーバ5や仮想化機構4に割り当てられるCPUの量とは、物理サーバ2の有するCPU2Aを利用できる時間である。つまり、CPU量ないしCPU割当量とは、CPU2Aを使用する時間量である。CPU割当量が大きいほど、CPU2Aを用いて多くの命令を実行することができる。CPU2Aの駆動周波数fbが大きいほど、単位時間内に多くの命令を実行することができる。
実行処理待ち要求の数は、仮想サーバ5や仮想化機構4の処理性能が低下しているか否かを検出するために使用されるパラメータである。例えば、CPU割当量が少ないために仮想サーバ5の処理性能が低下している場合、仮想化機構4には多くの実行処理待ち要求が蓄積される。この場合は、処理性能の低下している仮想サーバ5(あるいは仮想化機構4)に、より多くのCPU量を割り当てることになる。
消費電力特性取得部1Bは、仮想化機構4と通信することにより、CPU2Aの周波数変化に対応する消費電力の変化を示す特性を取得する。特性図7は、横軸がCPU2Aの駆動周波数(Hz)を、縦軸がCPU2Aの消費電力(W)を、それぞれ示す。
一般的には、駆動周波数が増大するほど消費電力も増加する。しかし、CPU2Aの構造によっては、周波数変化と消費電力変化とが必ずしも単純な比例関係にならず、ある周波数fthを堺に、消費電力の変化を示す傾き(θ)が変化する場合がある。
特性図7に示す例では、CPU2Aの駆動周波数を最低周波数fLから閾値fthまで増大させる場合、CPU2Aの消費電力は第1の傾きθ1で増大する。CPU2Aの駆動周波数を閾値fthから最高周波数fHまで増大させる場合、CPU2Aの消費電力は、第1の傾きθ1よりも大きい第2の傾きθ2で増加する。
特性図7において、最低周波数fLでCPU2Aを駆動する場合の消費電力をWL、閾値fthの周波数でCPU2Aを駆動する場合の消費電力をWth、最高周波数fHでCPU2Aを駆動する場合の消費電力をWHと、それぞれ示す。
特性図7に示す例では、CPU2Aの駆動周波数が閾値fthを超えると、消費電力の変化量が大きくなる。なお、特性図7は、本発明の理解のために用意された一例であり、CPU2Aが常にこのような特性を備えていることを示すものではない。周波数変化と消費電力変化が単純に比例する場合、複数の閾値が検出される場合等もある。
特性図7に示す周波数−消費電力特性をCPU2Aが備えている場合、CPU2Aの駆動周波数を閾値fth以下に低下させても、消費電力の節減効果は乏しい。例えば、現在の駆動周波数は最高周波数fHであるが、各仮想サーバ5のCPU使用率が少ないため、CPU2Aの駆動周波数を閾値fth以下の値まで低下可能な場合を考える。
単純には、CPU2Aの駆動周波数を低下可能な値まで低下させる。しかし、この場合、周波数の低下量に比べて、消費電力の削減量は少ない。閾値fth以下の周波数領域では、消費電力の傾きθ1が小さいためである。
一方、CPU2Aの駆動周波数は、段階的に変化させる必要がある。CPU2Aの駆動周波数を現在の周波数から目標とする周波数まで一気に変化させると、CPU2Aの動作が不安定になる可能性があるためである。従って、ある程度の時間をかけて、CPU2Aの駆動周波数を目標とする駆動周波数まで徐々に変化させる必要があり、周波数を変化させるためには時間的コストが生じる。
仮想サーバ5の負荷は、時々刻々と変化する。先ほどまでアイドル状態にあった仮想サーバ5が、ある時点で突然多量の処理を実行する場合がある。従って、CPU2Aの駆動周波数を低下させた後で、そのCPU2Aを利用する仮想サーバ5の負荷が上昇し、CPU使用率が増大する場合がある。この場合、仮想サーバ5の負荷増大に合わせて、その仮想サーバ5へのCPU割当量を増加させるか、CPU2Aの駆動周波数を元の値(いま説明している例では、最高周波数fH)に戻すか、あるいはCPU割当量及び駆動周波数をそれぞれ増加させる必要がある。
しかし、上述のように、CPU2Aの駆動周波数を目標の駆動周波数まで急激に変化させるのは好ましくない。従って、CPU2Aの駆動周波数は段階的に変更される。このため、仮想サーバ5の負荷増大に速やかに追従することができず、仮想サーバ5の処理性能が低下する。
そこで、本実施形態では、周波数−消費電力の特性に基づいて予め閾値(fth)を設定し、CPU2Aの駆動周波数を閾値fth以下に低下させないようにする。上記の例では、CPU2Aの駆動周波数を最低周波数fLまで低下可能な場合であっても、CPU2Aの駆動周波数を閾値fth(fth>fL)まで低下させるにとどめる。これにより、消費電力を削減しつつ、仮想サーバ5の負荷増大に速やかに追従することができる。
換言すれば、本実施形態では、CPU2Aの駆動周波数を低下可能な値fLまで低下させるのではなく、その手前の閾値fthにとどめることにより、周波数の変更にマージン(=fth−fL)を残している。このマージンにより、仮想サーバ5の負荷増大時に、CPU2Aの駆動周波数を比較的速やかに増大させることができる。
周波数決定部1Cは、使用量等検出部1Aで検出された各仮想サーバ5のCPU使用率と仮想化機構4のCPU使用率との合計使用量と、CPU2Aの総量との差分(変更前状況8B内の”idle”)に基づいて、CPU2Aの駆動周波数を求める。周波数決定部1Cは、周波数−消費電力特性に基づいて、求められた駆動周波数よりも値が大きく、かつ、求められた駆動周波数に最も近い閾値を検出し、その検出された閾値をCPU2Aの駆動周波数として決定する。上記の例では、未使用率に基づいて算出される駆動周波数はfLであるが、周波数決定部1Cは、その算出された駆動周波数fLに最も近い閾値fthを駆動周波数として選択する。
CPU割当量決定部1Dは、周波数決定部1Cにより決定された駆動周波数に基づいて、各仮想サーバ5及び仮想化機構4にそれぞれ割り当てられるべき新たなCPU量を算出する。CPU割当量決定部1Dは、周波数変更前における各仮想サーバ5のCPU使用率及び仮想化機構4のCPU使用率に基づいて、周波数変更後も各仮想サーバ5及び仮想化機構4がそれぞれ円滑に処理を実行できるだけのCPU割当量を算出する。
上述の通り、CPU割当量はCPU2Aを使用できる時間である。周波数が大きいほど単位時間内に実行可能な命令数は多くなる。従って、CPU割当量にCPU2Aの駆動周波数をかけた面積が、その仮想サーバ5または仮想化機構4に与えられた処理資源の量となる。この面積が大きくなるほど、より多くの処理を実行可能である。
従って、CPU2Aの駆動周波数を低下させる場合、CPU使用率の大きい仮想サーバ5(V1)には、現在のCPU量(V1b)よりも多くのCPU量(V1a)が割り当てられる。CPU使用率の少ない仮想サーバ5(V2)には、現在のCPU量(V2b)よりも少ないCPU量(V2a)が割り当てられる。なお、CPU駆動周波数の低下に先立って、仮想化機構4へのCPU割当量もMbからMaに変更される。
即ち、CPU割当量決定部1Dは、周波数変更前に実行していた処理量を周波数変更後においても実行できるように、各仮想サーバ5及び仮想化機構4への新たなCPU割当量を決定する。
設定変更要求部1Eは、決定されたCPU割当量と決定された周波数とを仮想化機構4に通知する。設定変更要求部1Eは、まず先に、決定されたCPU割当量を仮想化機構4に通知して、CPU割当量を変更させ、次に、決定された周波数を仮想化機構4に通知して、CPU2Aの駆動周波数を変更させる。
仮想化機構4は、管理サーバ1からの指示に応じて、各仮想サーバ5及び仮想化機構4のCPU割当量をそれぞれ変更し、さらに、CPU2Aの駆動周波数を変更する。これにより、CPU2Aの未使用率に応じてCPU2Aの駆動周波数を低下させることができ、CPU2Aの消費電力を削減することができる。
CPU2Aの駆動周波数を低下させた後も、使用量等検出部1Aは、各仮想サーバ5及び仮想化機構4の負荷状態を監視している。ある仮想サーバ5(V2)の負荷が増大し、割り当てられたCPU量(V2a)では足りなくなったような場合、仮想化機構4内には、その仮想サーバ5(V2)から発行された実行待ち要求が蓄積されていく。
使用量等検出部1Aは、仮想化機構4に蓄積された実行待ち要求の数が予め設定される所定値に達した場合、周波数決定部1Cに周波数の再決定を要求する。周波数決定部1Cは、駆動周波数を低下させる場合と同様に、各仮想サーバ5のCPU使用率と、仮想化機構4のCPU使用率と、周波数−消費電力特性等を用いて、CPU2Aの駆動周波数を求める。
CPU割当量決定部1Dは、前記同様に、変更後の周波数の下で各仮想サーバ5及び仮想化機構4がそれぞれ必要な処理を行えるように、各仮想サーバ5へのCPU割当量及び仮想化機構4へのCPU割当量をそれぞれ決定する。
決定された周波数及びCPU割当量は、設定変更要求部1Eから仮想化機構4に通知される。仮想化機構4は、設定変更要求部1Eからの指示に従って、CPU割当量を再設定し、さらに、CPU2Aの駆動周波数を変更する。
このように構成される本実施形態によれば、各仮想サーバ5の処理性能の低下を抑制しつつ、各仮想サーバ5を有する物理サーバ2の消費電力を適切に制御できる。本実施形態では、CPU2Aの駆動周波数を低下可能な周波数まで下げるのではなく、消費電力量の変化を示す傾きの値が変化する場合の周波数(閾値fth)を用いて、CPU2Aの駆動周波数を決定する。
つまり、閾値(fth)によって区切られる所定の周波数範囲内で、CPU2Aの駆動周波数を決定する。従って、CPU2Aの消費電力を低下させることができ、さらに、仮想サーバ5の負荷増大に応じてCPU2Aの駆動周波数を上昇させることができる。以下、本実施形態を詳細に説明する。
図2は、本実施例の全体構成を示す説明図である。この仮想化システムは、例えば、管理サーバ10と、一つまたは複数の物理サーバ20と、少なくとも一つのストレージ装置30とを備えている。
図1との対応関係を説明する。管理サーバ10は図1中の管理サーバ1に、物理サーバ20は図1中の物理サーバ2に、ストレージ装置30は図1中のストレージ装置3に、それぞれ対応する。仮想化機構200は図1中の仮想化機構4に、仮想サーバ220は図1中の仮想サーバ5に、論理ボリューム35は図1中の論理ボリューム3Aに、それぞれ対応する。仮想化機構管理部100は、図1中の使用量等検出部1Aと、周波数決定部1Cと、CPU割当量決定部1D及び設定変更要求部に対応する。電力管理部110は、図1中の消費電力特性取得部1Bに対応する。なお、後述のように、仮想化機構管理部100は、その内部に複数の機能101〜103を備えており、各機能101〜103がCPU使用率や実行待ち要求数の検出と、周波数の決定と、CPU割当量の決定と、周波数とCPU割当量の変更指示とを、担当する。
管理サーバ10は、本実施例による消費電力制御を行う装置である。管理サーバ10は、例えば、仮想化機構管理部100と、電力管理部110と、各種テーブル121〜124とを備える。管理サーバ10は、IPネットワークのような通信ネットワークCN1を介して、各物理サーバ20にそれぞれ接続されている。
詳細は後述するが、管理サーバ10は、ユーザから消費電力調整要求を受け取った場合、仮想サーバ220と仮想化機構200の負荷状況を測定し、他の仮想サーバ220の処理性能に影響を与えない最適な周波数を算出する。管理サーバ10は、その算出された周波数に基づいて、各仮想サーバ220に対するCPU割当量及び仮想化機構200へのCPU割当量をそれぞれ調整する。
仮想化機構管理部100は、各種リソースの割当てや解放、負荷状況の取得に応じた周波数の調整を実施する機能を有する。電力管理部110は、CPUの周波数―消費電力特性を取得する機能と、電力モードを通常モードと省電力モードのいずれに設定するかを決定する機能と、を有する。
物理サーバ管理テーブル121には、CPUやディスク情報等の、各物理サーバ20毎のリソースに関する情報が格納される。仮想サーバ管理テーブル122には、各仮想サーバ220に割り当てられているリソースの情報が格納される。ワークロード管理テーブル123には、各仮想サーバ220へのCPU割当量やCPU使用率に関する情報が格納される。電力特性管理テーブル124には、各物理サーバの各CPUに関する、駆動周波数と消費電力との関係を示す消費電力特性マトリクスが格納される。
本実施例では、管理サーバ10が、ユーザからの消費電力調整要求を受け取った後、仮想サーバ220と仮想化機構200の負荷状況を監視し、CPUの周波数変更によって仮想サーバ220及び仮想化機構200のそれぞれの処理性能が悪化しないように、CPU割当量を変更し、かつ、CPUの駆動周波数を調整する。CPUの駆動周波数を低下させる場合、CPUの駆動電圧も同時に低下させることができる。これにより、本実施例では、CPUの消費電力を削減する。
物理サーバ20は、仮想化機構200を搭載している。仮想化機構200は、複数の仮想サーバ220を管理する。仮想化機構200は、物理サーバ20の有するコンピュータ資源を管理するためのリソース制御部210を備える。
物理サーバ20は、ストレージ装置30を利用可能である。ストレージ装置30は、物理サーバ20内に設ける構成でもよいし、あるいは、ファイバーチャネルプロトコルを使用する通信経路CN2を介して各物理サーバ20とストレージ装置30とを接続する構成でもよい。
先にストレージ装置30について説明する。ストレージ装置30は、コントローラ31と、ドライブ搭載部32とを備える。ドライブ搭載部32には、例えば、ハードディスクドライブやフラッシュメモリデバイスのような記憶ドライブ33が複数搭載される。一つまたは複数の記憶ドライブ33をグループ化することにより、パリティグループ34が形成される。このパリティグループ34の有する物理的記憶領域の一部を用いて、論理ボリューム35が生成される。そして、論理ボリューム35には、仮想ディスク領域35Vが設定される。なお、一つの記憶ドライブ33に一つまたは複数の論理ボリューム35を設ける構成も可能である。
仮想化機構200の有するリソース制御部210は、仮想化機構管理部100からの要求に応じて、リソースの割当てや駆動周波数を制御するための機能を有する。
図3は、管理サーバ10の構成例を示す説明図である。管理サーバ10は、例えば、メモリ12と、CPU11と、ネットワークインターフェース13と、ディスクインターフェース14とをバス15で相互に接続することにより、構成される。
なお、図示は省略するが、管理サーバ10は、ユーザと情報を交換するためのユーザインターフェース部を備える。ユーザインターフェース部は、ユーザが情報を入力するための入力装置と、ユーザに情報を提供するための出力装置とを備える。入力装置としては、例えば、キーボードスイッチ、ポインティングデバイス、マイクロフォン、タッチパネル等を挙げることができる。出力装置としては、例えば、ディスプレイ装置、スピーカー、プリンタ等を挙げることができる。ユーザは、ユーザインターフェース部を介して、管理サーバ10に、消費電力の調整を要求することができる。
メモリ12内には、仮想化機構管理部100と、電力管理部110と、物理サーバ管理テーブル121と、仮想サーバ管理テーブル122と、ワークロード管理テーブル123と、電力特性管理テーブル124とが格納される。
仮想化機構管理部100には、例えば、仮想環境性能管理部101と、リソース管理部102と、ワークロード管理部103とが含まれている。電力管理部110には、例えば、電力モード管理部111と、消費電力特性取得部112が含まれる。
メモリ12に格納された仮想環境性能管理部101と、リソース管理部102と、ワークロード管理部103と、電力モード管理部111と、消費電力特性取得部112等に関する各種プログラムをCPU11がそれぞれ適宜実行することで、リソース管理、リソース割当管理、サーバ性能監視、周波数―消費電力特性取得、CPU周波数調整等の各機能が実現される。
ネットワークインターフェース13は、ネットワークCN1を介して、各物理サーバ20に接続される。このネットワークインターフェース13を用いて、管理サーバ10から各物理サーバ20に設定変更要求が送信される。また、ネットワークインターフェース13を用いて、各物理サーバ20から周波数―消費電力特性に関する情報が、管理サーバ10に送信される。ディスクインターフェース14は、ストレージ装置30または図外の別のストレージ装置を利用するために使用されるインターフェースである。
なお、リソース管理、リソース割当管理、サーバ性能監視、周波数―消費電力特性取得、周波数調整等の各処理は、それぞれの処理に関する所定プログラムをCPU11が実行することにより実現される。しかし、これに限らず、例えば、仮想環境性能管理部101、リソース管理部102、ワークロード管理部103等の全部または一部を、電子回路によって実現する構成でもよい。
図4は、物理サーバ20の構成例を示す説明図である。各物理サーバ20は、例えば、CPU21と、メモリ22と、ネットワークインターフェース23と、ディスクインターフェース24とをバス25で相互接続することにより、それぞれ構成される。さらに、各物理サーバ20は、消費電力を測定するための消費電力測定部26と、その測定結果を管理サーバ10に送信するためのネットワークインターフェース27とを備える。なお、CPU21は複数でも良いし、CPU21の中に複数のプロセッサコアを有するマルチコア型CPUでも良い。
メモリ22内には、一つまたは複数の仮想サーバ220と、仮想化機構200とが格納される。仮想化機構200はリソース制御部210を備える。リソース制御部210は、例えば、CPU割当て部211と、性能取得部212と、電力制御部213と、周波数制御部214とを備える。仮想化機構200は、仮想サーバ220にメモリ22やCPU21等のコンピュータリソースを分割して割り当てる処理や、各仮想サーバ220の実行スケジュールを制御する処理等を実行する。
CPU割当て部211、性能取得部212、電力制御部213、周波数制御部214等に関する所定の各プログラムをCPU11が適宜実行することで、仮想サーバ220へのリソース割当て処理、仮想サーバの負荷情報の取得処理、CPUの周波数制御処理等の各処理が実行される。なお、仮想化機構200の有する各機能210−214の全部または一部を、ハードウェア回路で実現する構成でもよい。
各仮想サーバ220には、それぞれ別々のOS221がインストールされる。仮想サーバ220毎に、OS221はそれぞれ独立して動作可能である。
リソース制御部210の構成を説明する。CPU割当て部211は、CPU21の駆動周波数を低下させる場合に、各仮想サーバ220の負荷情報とCPU21の現在の駆動周波数とに応じて、各仮想サーバ220へのワークロード(CPU割当量)を変更する。性能取得部212は、仮想サーバ220及び仮想化機構200のそれぞれの負荷情報(CPU使用率)を取得する。
電力制御部213は、CPU21の駆動周波数が変更される前のタイミング、または、仮想化機構200が稼動したタイミングの少なくともいずれか一方で、CPU21に関する周波数−消費電力特性に関する情報を取得する。電力制御部213は、CPU21の駆動周波数を段階的に変更しながら消費電力をそれぞれ測定し、CPUの駆動周波数に対応する消費電力を採取する。
周波数制御部214は、消費電力の調整を行うタイミング(CPU21の駆動周波数を変更するタイミング)と、周波数−消費電力特性に関する情報を取得するタイミングとの両方で、CPU21の駆動周波数を変更させるものである。
消費電力測定部26は、物理サーバ20の消費電力を測定し、その測定結果をネットワークインターフェース27を介して、管理サーバ10に送信する。例えば、CPU21に電源を供給するための電線上に直列に抵抗を設け、その抵抗による電圧降下をセンサで検出することにより、物理サーバ20の消費電力を測定可能である。測定された消費電力は、デジタル信号として管理サーバ10に送信される。なお、消費電力の測定方法は、上述の例に限定されない。例えば、赤外線温度センサを用いて、CPU21の表面温度を測定する方法等でもよい。表面温度と消費電力との関係を示す既知の特性図があれば、CPU21の表面温度から消費電力を推定可能である。
図5は、各仮想サーバ220に各種リソースを割り当てる様子を模式的に示す説明図である。仮想化機構200は、例えば、物理サーバ20内のメモリ22とCPUグループ21Gと、論理ボリューム35内に設けられた仮想ディスク35Vとを、各仮想サーバ220にそれぞれ割り当てる。
メモリ22を仮想サーバ220に割り当てるとは、仮想化機構200が管理している物理サーバ20内のメモリ22の一部を、各仮想サーバ220毎の専用メモリ領域として割り当てることを意味する。各仮想サーバ220は、自分自身に割り当てられたメモリ領域にのみアクセスすることができ、他の仮想サーバ220に割り当てられているメモリ領域にアクセスすることはできない。
CPUグループ21Gとは、物理サーバ20の有する一つまたは複数のCPU21をグループ化したものである。CPUグループ21Gは、一つまたは複数設けることができ、各CPUグループ21Gは、それぞれ少なくとも一つ以上のCPU21を備える。
CPUグループ21Gを仮想サーバ220に割り当てるとは、仮想サーバ220が所定の時間だけCPUグループ21Gを使用できるように、使用時間をスケジューリングすることを意味する。
仮想サーバ220にCPUグループ21Gを割り当てる方法には幾つかあるが、例えば、CPUグループ21Gを複数の仮想サーバ220で共有する方法等が考えられる。CPUグループ21G内のCPU21の数は、仮想サーバ220の生成時に管理者等が自由に設定することが出来る。
複数のCPUグループ21Gを有する場合、各仮想サーバ220がそれぞれ専用のCPUグループ21Gを占有する構成でもよい。例えば、各仮想サーバ220がそれぞれ特定のCPUグループ21Gを占有する構成と、各仮想サーバ220が一つまたは複数のCPUグループ21Gを共有する構成とが混在するような場合、仮想サーバ220がCPUを共有利用しているか占有利用しているかを区別するための情報を、仮想化機構200は管理する。なお、仮想サーバ220がCPU21を占有して利用している場合は、コアごとに駆動周波数を変更する機能を用いて、指定したCPU21のみ駆動周波数を低下させて、消費電力を調整することもできる。
仮想ディスク35Vを仮想サーバ220に割り当てるとは、論理ボリューム35の一部の領域を、仮想サーバ220の専用領域35Vとして割り当てることを意味する。従って、仮想ディスク35Vは、論理ボリューム35の部分領域である。仮想サーバ220上で稼動するOS221は、仮想ディスク35Vを通常のディスクとして認識する。しかし、実際には、各仮想サーバ220は、論理ボリューム35内の一部の領域だけを使用することになる。
図6は、本実施例による動作の概要を示す説明図である。ユーザは、電力モード管理部111に、消費電力調整要求を指示する(S10)。消費電力調整要求は、各仮想サーバ220及び仮想化機構200の負荷状況に応じて、最適な消費電力に調整させるための要求である。
ユーザからの要求を受領した電力モード管理部111は、仮想環境性能管理部101に周波数調整要求を発行する(S11)。周波数調整要求とは、CPU21の駆動周波数を調整させるための要求である。
仮想化機構200内の性能取得部212は、各仮想サーバ220及び仮想化機構200の負荷情報(CPU使用率)を定期的に収集している(S12)。仮想環境性能管理部101は、性能取得部212から各仮想サーバ220及び仮想化機構200のそれぞれの負荷情報を取得する。仮想環境性能管理部101は、各仮想サーバ220のCPU使用率と仮想化機構200のCPU使用率とを合計した合計使用量を算出する(S13)。
本実施例では、各仮想サーバ220の負荷情報だけではなく、仮想化機構200の負荷情報も取得して、CPU21(CPUグループ21G)全体の使用量を算出する。これにより、CPU21の駆動周波数を下げた場合でも、仮想化機構200が仮想サーバ220を動作させるための処理に悪影響が及ぶのを防止できる。
消費電力を削減させる場合、仮想環境性能管理部101からリソース管理部102へ処理が移行する。仮想化機構200内の電力制御部213は、CPU21の周波数−消費電力特性に関する情報をリソース管理部102に提供する(S14)。
リソース管理部102は、仮想環境性能管理部101から渡された合計使用量と、電力制御部213から入手した周波数−消費電力特性に関する情報とに基づいて、現在の各仮想サーバ220及び仮想化機構200のそれぞれの負荷状態に応じた、最適な駆動周波数を算出する(S15)。
ワークロード管理部103は、リソース管理部102によって算出された周波数に基づいて、各仮想サーバ220への新たなCPU割当量を算出する(S16)。さらに、ワークロード管理部103は、仮想化機構200内のCPU割当て部211に、算出されたCPU割当量に変更するように指示し、その次に、仮想化機構200内の周波数制御部214に、CPU21の駆動周波数を変更させるための指示を発行する(S17)。
CPU割当て部211は、ワークロード管理部103から指示されたCPU割当量に従って、各仮想サーバ220及び仮想化機構200のそれぞれのCPU割当量を変更する(S18)。周波数制御部214は、ワークロード管理部103から指示された駆動周波数に従って、周波数変更指示をCPU21に出力する(S19)。CPU21は、周波数制御部214からの指示に従って、駆動周波数を変更する(S20)。
このように動作することにより、本実施例では、負荷の高い仮想サーバ220の処理性能に影響を与えることなく、消費電力を削減することができる。
なお、例えば、ユーザが仮想サーバ220の負荷ピーク時を予め知っている場合や、特定の仮想サーバ220の負荷の発生期間等を予め把握している場合もある。これらの場合には、消費電力を調整するタイミング等を規定するスケジュールを予め作成しておき、このスケジュールを電力モード管理部111に入力することにより、適切なタイミングで消費電力を制御することもできる。この例については、後述する別の実施例で述べる。
消費電力を削減するタイミングを事前に指定することにより、各仮想サーバ220の負荷を分散させることができる。従って、CPU21の駆動周波数を低下させて消費電力を削減する期間を延ばすことができる。
CPU21の周波数−消費電力特性を予め把握し、かつ、CPU21の消費電力量と仮想サーバ220の実行時間の積分値とを求めることで、時間の経過を考慮して消費電力を制御することができる。これにより、消費電力をさらに最適化できる。
例えば、CPU21の周波数−消費電力特性によっては、高負荷状態で短時間に処理を完了させる方が、中負荷状態で長時間処理させるよりも、消費電力が少なくなる場合も考えられる。
また、予め仮想サーバ220に優先度を付けておき、特定の仮想サーバ220の性能をだけを保証し、その他の仮想サーバ220の性能を考慮しないことにより、より一層消費電力の削減効果を得ることも可能である。
仮想サーバ220の性能低下よりも消費電力の削減量を優先する運用の場合、優先度の低い仮想サーバ220の性能を意図的に低下させることにより、CPU21の駆動周波数を大幅に低下させることができる。
例えば、高速応答の要求される処理を実行する仮想サーバ220や、完了時間の決定されている処理を実行する仮想サーバ220には、相対的に高い優先度を設定し、それ以外の処理を担当する仮想サーバ220の優先度を相対的に低く設定する。この結果、物理サーバ20の消費電力を一層低減することができる。
仮想環境性能管理部101は、駆動周波数の調整後に、再度、性能取得部212から各仮想サーバ220及び仮想化機構200のそれぞれの負荷情報を取得する。実行待ち要求の数が所定値を超えたような場合、仮想環境性能管理部101は、リソース管理部102に駆動周波数の再調整を要求する。これにより、仮想サーバ220の負荷が突然上昇した場合でも、比較的速やかに、CPU21の駆動周波数及び/またはCPU割当量を、元の状態に戻すことができる。
本実施例の電力制御部213は、CPU21の駆動周波数と消費電力の関係の情報を取得し登録する。この情報は、各物理サーバ毎にそれぞれ保持される。一般に、CPUの駆動周波数を変更するには時間的コストがかかる。CPUの駆動周波数を変更する場合は、段階的に駆動周波数及び電圧を変更する必要があるためである。従って、いったん低下させた駆動周波数を元の駆動周波数に戻すためには、ある程度の時間を要する。
仮想サーバ220の負荷が断続的に変化する場合は、CPU21の駆動周波数を変更する回数も増加する。従って、各回の変更に要するコストが顕著に現れ、物理サーバ20の性能を低下させるおそれがある。そこで、本実施例では、駆動周波数を元の値あるいは元の値に近い値に戻すことを考慮して、CPU21の駆動周波数を決定する。その詳細は後述する。
図7は、本実施例の適用前の状態(図7(a))と適用後の状態(図7(b))とを示すためのテーブル400である。このテーブル400は、本実施例による効果を説明するためのテーブルであり、実際の制御に使用されるテーブルではない。テーブル400には、各仮想サーバ220及び仮想化機構200毎に、通常モード410及び省電力モード420の状態がそれぞれ示されている。
通常モード410とは、CPU21の駆動周波数を低下させずに物理サーバ20を使用するモードである。省電力モード420とは、CPU21の駆動周波数及び電圧を低下させて、物理サーバ20を使用するモードである。
通常モード410において、各仮想サーバ220及び仮想化機構200に、カラム411に示すCPU割当量がそれぞれ予め割り当てられている。そのCPU割当量を実際に使用している割合は、カラム412にCPU使用率として示されている。省電力モード420の場合も、通常モード410で述べたと同様に、カラム421はCPU割当量を、カラム422はCPU使用率をそれぞれ示す。
図7(a)の通常モード410に着目すると、第2仮想サーバ及び第3仮想サーバには、それぞれ19%ずつCPU量が割り当てられているにも関わらず、実際のCPU使用率はそれぞれ6%ずつとなっている。つまり、CPU21の全量のうち26%が使用されていない。これに対し、第1仮想サーバのCPU割当量は60%であるが、第1仮想サーバは割り当てられたCPU量を全て使用している(CPU使用率60%)。
そこで、本実施例による消費電力の削減処理を行う。未使用のCPU使用率は、上述の通り、26%(=100−(60+6+6+2))であるから、CPU21の駆動周波数を約70%低下させても、全体の処理性能はほぼ変化しないと考えられる。
従って、CPU21の駆動周波数を70%まで低下させることも可能である。しかし、単純にCPU21の駆動周波数のみを低下させると、各仮想サーバ220及び仮想化機構200のそれぞれの性能も低下してしまう。そこで、本実施例では、第1仮想サーバへのCPU割当量を85%(=60%÷70/100)に増加させることにより、第1仮想サーバの性能と第2、第3仮想サーバの性能とをそれぞれ維持する。また、この際に、仮想化機構200の負荷も考慮してCPU割当量を変更することにより、サーバ仮想化環境全体の性能も維持する。
上述のように、本実施例では、図7(b)の省電力モード420に示すように、駆動周波数を低下させると共に、各仮想サーバ220及び仮想化機構200へのそれぞれのCPU割当量を変更する。第1仮想サーバのCPU割当量は、変更前の値(60%)よりも大きい値(85%)に設定される。第2仮想サーバ及び第3仮想サーバのCPU割当量は、変更前の値(19%)よりも小さい値(6%)に設定される。仮想化機構200のCPU割当量は、CPU21の駆動周波数の低下を補うことができるように、変更前の値(2%)よりも大きい値(3%)に設定される。
、CPU21の駆動周波数を変更するよりも前に、各仮想サーバ220及び仮想化機構200のそれぞれのCPU割当量を変更させる。高負荷の仮想サーバ220のCPU割当量は増加され、低負荷の仮想サーバ220のCPU割当量は減少される。これにより、仮想化機構200の管理する全ての仮想サーバ220の性能を維持しつつ、物理サーバ20の消費電力を低減できる。
図8は、物理サーバ管理テーブル121の構成例を示す説明図である。カラムC1210は、各物理サーバ20を識別するための物理サーバ識別子を示す。カラムC1211には、CPU21のスペックが格納される。カラムC1212には、物理サーバ20の搭載するメモリ22の容量が格納される。カラムC1213には、物理サーバ20に接続されているデバイスに関する情報が格納される。
デバイスとしては、例えば、NIC(Network Interface Card)やHBA(Host Bus Adapter)等を挙げることができる。NICの場合は、MAC(Media Access Control)アドレスが、カラムC1213に格納される。HBAの場合は、WWN(World Wide Name)が格納される。
カラムC1214には、物理サーバ20が利用する論理ボリューム35に関する情報が格納される。例えば、論理ボリューム35を識別するためのボリューム識別子やボリューム容量等がカラムC1214に格納される。なお、複数のサーバ20が同一の論理ボリューム35を共有してもよい。この場合は、異なる物理サーバ20に同一のボリューム識別子がそれぞれ設定される。
図9は、仮想サーバ220管理テーブル122の構成例を示す説明図である。カラムC1220には、仮想化機構200を識別するための仮想化機構識別子が格納される。通常、一つの物理サーバ20には、一つの仮想化機構200が含まれる。カラムC1221には、仮想化機構200が稼動している物理サーバ20を識別するための物理サーバ識別子が格納される。
カラムC1222には、仮想サーバ220を識別するための仮想サーバ識別子が格納される。仮想サーバ識別子は、仮想化機構200内でユニークな値でも良いし、複数の仮想化機構200に渡ってユニークな値でも構わない。仮想サーバ識別子は、仮想化機構200上で生成された仮想サーバ220の数だけ登録される。
カラムC1223には、各仮想サーバ220に割り当てられたリソースに関する情報が格納される。例えば、どのCPUが割り当てられているかを示す情報、割り当てられたメモリの容量、使用するNICの情報、使用する仮想ディスクの識別子等である。CPUの割り当てに関する情報には、例えば、CPUグループ識別子、CPUを占有しているか共有しているかを区別する値等が含まれる。
図10は、ワークロード管理テーブル123の構成例を示す説明図である。カラムC1230には、仮想化機構200を識別するための仮想化機構識別子が格納される。カラムC1231には、その仮想化機構200が稼働している物理サーバを識別するための物理サーバ識別子が格納される。一つの物理サーバ20上で複数の仮想化機構200が稼動している場合は、カラムC1231に複数の仮想化機構識別子が格納される。
カラムC1232には、C1230で特定される仮想化機構200によって生成される仮想サーバ220を特定するための仮想サーバ識別子が格納される。なお、同一の仮想化機構200により生成された全ての仮想サーバ220の仮想サーバ識別子を格納してもよいし、ワークロードの制御対象(CPU割当量の変更対象)の仮想サーバ220の識別子のみを格納してもよい。
また、カラムC1232には、仮想化機構200を識別するための仮想化機構識別子も格納される。本実施例では、仮想化機構200のオーバヘッドを管理するべく、仮想化機構識別子も管理する。
カラムC1233には、仮想サーバ220に関するCPU割当量が格納される。CPU割当量とは、仮想サーバ220に対して割り当てられる、CPUグループ21Gの時間的な量である。CPU割当量が大きいほど仮想サーバ220の処理性能は向上する。
なお、CPU割当量の単位は、ユーザが任意に指定できる。例えば、仮想化機構200毎に、CPU全体の量を100%として、仮想サーバ220毎に百分率で値を格納しても良い。仮想化機構200の管理下にある全てのCPU量(CPUを使用できる時間)を、余さずに各仮想サーバ220に割り当てる必要はない。仮想サーバ220の急な負荷増大に備えて、未使用のCPU量を予め残しておく構成でも良い。
カラムC1234には、物理CPU使用率が格納される。物理CPU使用率とは、CPUグループ21Gの全処理量を100%とした場合の使用率である。物理CPU使用率は、仮想化機構200が各仮想サーバ220のCPU利用率をスケジューリングした時間に基づいて算出することができる。あるいは、仮想サーバ220上で、その仮想サーバ220のCPU使用率を採取し、CPU割当量C1233と乗算して算出してもよい。物理CPU利用率C1234によって、物理サーバ20の負荷を知ることができる。なお、便宜上、物理CPU利用率を「CPU利用率」と略す場合がある。
本実施例では、仮想サーバ220を動作させるために必要な処理を仮想化機構200に実行させるべく、仮想サーバ220への割当てよりも優先的に、CPUグループ21Gが仮想化機構200に割り当てられる。
本実施例において、ユーザは、仮想化機構200へのCPU割当量を明示して指定する必要はない。管理サーバ10は、必要最低限以上のCPU割当量を仮想化機構200に自動的に設定する。なお、仮想化機構200の物理CPU使用率は、例えば、仮想化機構200で稼働する各仮想サーバ220のディスパッチ率や、各仮想サーバ220のI/O(Input/Output)リクエスト数、仮想サーバ220の実行処理待ち数等に基づいて算出することができる。
図11は、電力特性管理テーブル124の構成例を示す説明図である。電力特性管理テーブル124は、物理サーバ20の有する各CPU21の、駆動周波数の変化に対する消費電力の変化を示す特性を管理する。電力特性管理テーブル124には、仮想サーバ220及び仮想化機構200がそれぞれ適切に動作可能な、最適な周波数を得るための情報が格納される。
カラムC1240には、物理サーバ識別子が格納される。カラムC1241には、CPU21に関する、周波数・電力特性マトリクス125が格納される。通常、物理サーバ20には、同一種類のCPU21が搭載される。周波数・電力マトリクス125は、物理サーバ20の有するCPU21の、駆動周波数に応じた消費電力等の変化を示すマトリクスである。
一般に、CPUの駆動周波数fと消費電力Wとの間には、W=V×V×fという線形関係がある(VはCPUの駆動電圧)。また、駆動周波数を低下させると、CPUの駆動電圧も低下させることができ、この結果、効果的に消費電力を削減できる。
しかし、実際には、駆動周波数と消費電力との間に、きれいな線形関係が成立しない場合もある。この場合、駆動周波数の低下量のわりに消費電力の削減効果が小さい周波数範囲が存在する。
一方、CPUの駆動周波数と駆動電圧は、急速に変更することができないという、CPUの特性がある。従って、仮想サーバ220の負荷が上昇して性能が低下した場合に、速やかに元の状態に戻すことができない。
そこで、本実施例では、駆動周波数の変更コストをできるだけ少なくするために、低下可能な周波数であっても、消費電力の削減効果が少ない場合には、低下可能な周波数に閾値を設け、それ以上周波数を低下させない。つまり、本実施例では、ある周波数f(1)までCPU21の駆動周波数を低下可能な場合でも、その周波数f(1)の付近における消費電力の減少量が少ない場合には、CPU21の駆動周波数を、設定可能な周波数f(1)よりも大きい値の所定の閾値周波数fthにとどめるという、制御を行う。
また、例えば、メーカや種類等が異なると、駆動周波数と消費電力の関係が異なるケースもある。このような場合に、電力特性管理テーブル124を用いることで、各CPU毎の特性の差を事前に知ることができる。
図12は、周波数・電力マトリクス125の構成例を示す説明図である。図12(a)に示すカラムC1250には、CPUの駆動周波数が周波数レベル毎に格納される。カラムC1251には、消費電力の値が格納される。
周波数レベルとは、周波数の変化量に対する消費電力の変化量が異なる周波数範囲を区分したものである。
本実施例では、仮想サーバ220の負荷が突発的に上昇した場合、仮想サーバ220の性能を比較的速やかに元の状態に戻すことを想定する。このために、本実施例では、仮想サーバ220の負荷状況に対応した量だけ駆動周波数を低下可能な場合でも、現在属する周波数レベルと異なる周波数レベルにまたがって、周波数は変更はしないという特徴的な機能を備える。
例えば、仮想サーバ220の負荷(CPU使用率)が少なく、CPUの駆動周波数を半分まで低下可能な場合を考える。この場合、駆動周波数を半分に低下させてしまうと、その後、仮想サーバ220の負荷が突発的に増大した場合に、その急激な負荷増大に速やかに対応することができない。上述の通り、CPUの駆動周波数及び駆動電圧は、段階的に変化させる必要があるためである。負荷増大に対応すべく、CPUの駆動周波数を元の値に戻すには、時間がかかる。
また、頻繁に仮想サーバ220の負荷が変動する場合、頻繁に駆動周波数を変更すると、この駆動周波数変更に伴う負荷を生じる場合もある。従って、本実施例では、駆動周波数を下げても消費電力の削減効果が少ないと予想される場合は、予め設定される閾値以上、駆動周波数を低下させない。
駆動周波数の閾値を設定する方法としては、例えば、周波数・電力特性マトリクス125を用いて、駆動周波数の変化量に対する消費電力の変化量(電力特性の傾き)等に基づいて行うことができる。
例えば、図12(b)に示すように、消費電力特性の傾き毎に駆動周波数をレベル分類する。図12では、周波数レベル1(1.6〜2.2GHz)、周波数レベル2(2.2〜2.4GHz)、周波数レベル3(2.4〜2.6GHz)、周波数レベル4(2.6〜2.8GHz)、周波数レベル5(2.8〜3.2GHz)の合計5つの周波数レベルを例示している。周波数レベルは、「所定の周波数範囲」に該当する。
図示の例では、周波数レベル1における消費電力の変化量(傾き)は最も小さく、周波数レベルの値が増加するほど消費電力の変化量も増大する。周波数レベル5の消費電力の変化量は最も大きい。
各周波数レベルにおいて、消費電力の変化の傾きは一定である。隣接する周波数レベルでは、消費電力の変化の傾きは異なる。換言すると、周波数の閾値は、各周波数レベルの境界にそれぞれ設定される。図示の例では、周波数レベル1と周波数レベル2の境界の周波数、周波数レベル2と周波数レベル3の境界の周波数、周波数レベル3と周波数レベル4の境界の周波数、周波数レベル5と周波数レベル5の境界の周波数が、それぞれ閾値となる。
本実施例では、変更可能な周波数が異なる周波数レベルに属する場合には、駆動周波数をその値まで低下させず、変更可能な周波数が同一の周波数レベルに属する場合は、駆動周波数を低下させる。これにより、仮想サーバ220の突発的な負荷増大に対応するための、CPU駆動周波数のマージンを予め確保することができる。
なお、閾値の周波数は、隣接する各周波数レベルの両方に属する。例えば、周波数レベル2と周波数レベル3の境界の閾値は、周波数レベル2及び周波数レベル3のいずれにも属する値である。従って、例えば、最初の駆動周波数が周波数レベル3の中間程度の値である場合、各仮想サーバ220の負荷が少なければ、同一の周波数レベル3の下限値(閾値)まで駆動周波数は低下する。その後、さらに、各仮想サーバ220の負荷が減少した場合、駆動周波数は周波数レベル2の範囲内で低下する。
例えば、最初は、各仮想サーバ220が高負荷で作動していても、その後、引き続いてアイドル状態が続く場合を考える。この場合、CPUの駆動周波数は、周波数レベルを段階的に下っていき、最終的には、周波数レベル1の下限値である、最低周波数まで低下するであろう。
図13は、電力モード管理部111により実行される電力モード管理処理を示すフローチャートをである。以下に示す各フローチャートは、本発明の理解及び実施に必要な程度で、各処理の概要をそれぞれ示しており、実際のコンピュータプログラムとは異なる場合もある。いわゆる当業者であれば、図示されたステップの変更、削除、追加を容易に行うことができるであろう。
図13に示す処理は、ユーザからの消費電力削減要求や消費電量増加要求に対して、最初に実施される。電力モード管理部111は、ユーザから入力される要求を受け付けると(S30)、その要求が消費電力の削減要求であるか、それとも消費電力の増加要求であるかを判定する(S31,S32)。
消費電力削減要求とは、仮想化機構200及び各仮想サーバ220のそれぞれの性能測定結果に基づいた、駆動周波数の減少要求である。消費電力増加要求とは、仮想化機構200及び各仮想サーバ220のそれぞれの性能測定結果に基づいた、駆動周波数の増加要求である。
消費電力の削減要求の場合(S31:YES)、または、消費電力の増加要求の場合(S32:YES)のいずれかの場合、仮想環境性能管理部101に制御を移す(S33)。電力モード管理部111は、仮想環境性能管理部101からの通知を受領することにより、仮想環境性能管理部101に制御が受け継がれたことを確認する(S34)。電力モード管理部111は、ユーザの出した要求が正常に受け付けられた旨を報告する(S35)。
ユーザが、消費電力の調整要求(消費電力の削減要求または増加要求)を一度発行すると、その後、管理サーバ10は、定期的に消費電力の調整を実行可能である。即ち、管理サーバ10は、各仮想サーバ220及び仮想化機構200のそれぞれの負荷状態を、定期的または不定期に監視し、その負荷状態に応じてCPU21の駆動周波数を増加または減少させるという、フィードバック制御を自動的に実行可能である。
図14は、電力特性取得部112により実行される、電力特性取得処理を示すフローチャートである。本処理は、ユーザから消費電力の調整を要求されるよりも前に、周波数―消費電力特性に関する情報を予め取得するために実施される。取得された周波数−消費電力特性に関する情報は、最適な駆動周波数を選択するために使用される。最適な駆動周波数とは、例えば、将来の負荷増大への対応が可能であり、かつ、消費電力を有効に削減可能な、駆動周波数である。
本発明は、周波数−消費電力特性に関する情報を必ずしも必要としない。周波数−消費電力特性に関する情報を利用しない場合でも、仮想サーバ220及び仮想化機構200の性能低下を抑制しつつ、物理サーバ20の消費電力を削減することができる。しかし、周波数−消費電力特性に関する情報を用いることにより、適切な駆動周波数を選択することができ、より効果的に物理サーバ20の消費電力を制御可能となる。
まず最初に、電力特性取得部112は、特定の駆動周波数における物理サーバ20の消費電力を得るために、仮想化機構200内の周波数制御部214に駆動周波数の変更を要求する(S40)。この要求のパラメータには、例えば、物理サーバ識別子や駆動周波数の値等が含まれる。
電力特性取得部112は、周波数制御部214から受領する通知により、S40で発行した要求が周波数制御部214によって受け付けられたことを、確認する(S41)。電力特性取得部112は、消費電力測定部26から、物理サーバ20の消費電力を取得する(S42)。
消費電力測定部26は、例えば、物理サーバ20のマザーボードに取り付けられる電流センサー等を用いて、消費電力を測定する。測定される消費電力には、各CPU21やメモリ22で消費される電力と、例えば冷却ファンやインターフェース回路等のその他の電子回路で消費される電力とが含まれる。しかし、電力を主に消費するのは、CPU21である。
電力特性取得部112は、情報をさらに取得するか否かを判断する(S43)。即ち、電力特性取得部112は、周波数−消費電力特性マトリクス125を作成するために必要な情報が全て得られたか否かを判断し(S43)、更なる情報取得が必要であると判断した場合(S43:YES)、S40に戻る。そして、再びS40〜S42が繰り返される。
電力特性取得部112は、例えば、周波数調整を行っていない通常モードのCPU21の駆動周波数を、最低周波数から最高周波数まで100段階に分割して、各段階毎の周波数に対応する消費電力を取得する。なお、取得回数は100に限らない。100回以下でもよいし、100回以上でもよい。また、CPUの種類に応じて取得回数を変化させる構成でもよい。さらに、測定する周波数の幅や回数等を、ユーザが任意の値に設定可能な構成でもよい。
周波数−消費電力特性マトリクス125の作成に必要な情報を取得できた場合(S43:NO)、電力特性取得部112は、駆動周波数毎の消費電力の変化量を分類し、周波数−消費電力特性マトリクス125を作成する(S44)。
電力特性取得部112は、S44で作成した周波数−消費電力特性マトリクス125に基づいて、駆動周波数に対する消費電力の変化量の程度を、複数段階に分類し、周波数レベルを得る。電力特性取得部112は、各周波数レベル毎に、各周波数レベル内の一番低い周波数を、閾値周波数として決定する(S45)。
電力特性取得部112は、周波数―消費電力特性に関する情報と、周波数−消費電力特性マトリクス125を電力特性管理テーブル124に登録する(S46)。
これにより、周波数−消費電力特性がそれぞれ異なる物理サーバ20が情報処理システム内に混在している場合でも、各物理サーバ20の周波数−消費電力特性に応じて、消費電力を制御することができる。
例えば、CPU21の構造の違いやプロセッサコア数等によって、消費電力の絶対値や特性は大きく変化する。このような場合にも、周波数−消費電力特性マトリクス125を各物理サーバ20毎に用意することにより、消費電力の制御対象となる物理サーバ20の特性に応じて、効果的な周波数を決定できる。
なお、周波数−消費電力特性に関する情報の収集及び周波数−消費電力特性マトリクス125の作成は、物理サーバ20の稼動中に複数回実行しても良い。例えば、物理サーバ20の連続稼動時間によって消費電力が異なる場合には、周波数−消費電力特性に関する情報を所定の間隔で取得することにより、より正確な周波数−消費電力特性マトリクス125を得ることができる。また、物理サーバ20の負荷が予め設定される所定値よりも小さい時間帯に、周波数−消費電力特性に関する情報を収集することにより、物理サーバ20の性能低下を抑制できる。
図15は、仮想環境性能管理部101により実行される仮想環境性能管理処理を示すフローチャートである。本処理は、例えば、電力モード管理部111から呼び出されることにより、実行される。本処理では、各仮想サーバ220及び仮想化機構200のそれぞれの負荷状況を収集し、ワークロード管理テーブル123に登録する。
仮想環境性能管理部101は、要求を受け付けた旨を呼出元に通知する(S50)。呼出元としては、電力モード管理部111(図13のS33)が挙げられる。以下、説明の便宜上、仮想環境性能管理部101を「性能管理部101」と呼ぶ場合がある。
性能管理部101は、仮想化機構200から、各仮想サーバ220の物理CPU使用率をそれぞれ取得する(S51)。なお、仮想サーバ220の処理するタスクの内容によっては、CPU21の性能や駆動周波数に関わらず、物理CPU利用率が大きくなる場合がある。この場合、物理CPU使用率に代えて、仮想化機構200に対するタスクの依頼数等を使用してもよい。
性能管理部101は、仮想化機構200から、各仮想サーバ220の実行処理待ち数を取得する(S52)。仮想サーバ220の実行処理待ち数とは、各仮想サーバ220が仮想化機構200に発行した処理命令のうち、仮想化機構200上で実行処理待ち状態になっている処理命令の数(タスク数)である。
仮想サーバ220の実行処理待ち数の取得方法としては、例えば、単位時間当たりに仮想サーバ220から仮想化機構200に発行される処理命令を、単位時間毎に仮想化機構200が監視してカウントする方法等が考えられる。
性能管理部101は、S52で取得した実行処理待ち数等に基づいて、仮想化機構200の物理CPU使用率を算出する(S53)。
仮想サーバ220の実行処理待ち数が所定数を超える状態が続く場合、性能管理部101は、仮想サーバ220の負荷が増加していると判断できる。これにより、仮想化機構200のオーバヘッドと、仮想サーバ220の真の負荷状態とを検出できる。
性能管理部101は、一時的な負荷変動による影響を取り除いて平均的な値を取得するために、S51〜S53のステップを所定時間繰り返して実行する(S54)。
性能管理部101は、所定時間収集した情報(仮想サーバ220の物理CPU使用率、仮想サーバ220の実行処理待ち数、仮想化機構200の物理CPU使用率)の平均値を、ワークロード管理テーブル123に登録する(S55)。
性能管理部101は、仮想サーバ220の実行処理待ち数が所定数以上の場合(S56:YES)、または、強制的にリソースの割当てを変更させるためのリソース変更要求が入力された場合(S57:YES)のいずれかの場合に、リソース管理部102にリソース変更要求を発行する(S58)。例えば、ユーザから手動で、消費電力の調整要求が管理サーバ10に入力された場合、S57で「YES」と判定される。
リソース管理部102に発行されるリソース変更要求には、例えば、仮想サーバ220のCPU利用率と仮想化機構のCPU使用率の合計値と、仮想サーバ220の実行処理待ち数等とが、パラメータとして含まれる。
性能管理部101は、リソース管理部102からの通知を受領することにより、リソース管理部102がS58で発行された要求を受け付けた旨を確認する(S59)。
なお、S56では、仮想サーバ220の実行処理待ちの数に基づいて、リソースの割当てを変更させるか否かを判断している。リソースの割当て変更とは、つまり、駆動周波数の変更と、変更された駆動周波数の下でのCPU割当量の変更とを意味する。
CPUの駆動周波数を下げて消費電力を削減した後に、仮想サーバ220の負荷が高騰し、省電力モードから通常モードに復帰させる必要がある場合と、駆動周波数を下げた後に、さらに消費電力を削減できる場合とがある。
そこで、仮想サーバ220の実行処理待ち数の閾値として、下限値と上限値を予め設定することが考えられる。例えば、実行処理待ち数が(仮想サーバ220の数)×2に等しい場合を下限値とし、実行処理待ち数が(仮想サーバ220の数)×3に等しい場合を上限値とする。
仮想環境性能管理部101で測定した値が上限値より小さい場合は、リソース変更が可能な状態であると判定し、測定した値が下限値を下回っている場合は、強制的にリソース変更を行う。これにより、仮想サーバ220の一時的な負荷上昇に対応して、リソース変更要求が頻繁に発行されるのを防止することができる。従って、必要以上にCPU21の駆動周波数が変更させるのを防止し、変更コストを低減できる。
図16は、リソース管理部102により実行されるリソース管理処理を示すフローチャートである。本処理は、CPU21の駆動周波数の増加または減少と、各仮想サーバ220及び仮想化機構200へのそれぞれのCPU割当量の変更とを行う場合に、呼び出されて実行される。
リソース管理部102は、呼出元である仮想環境性能管理部101に、要求を受け付けた旨を通知する(S70)。リソース管理部102は、仮想サーバ管理テーブル122を検索し、仮想サーバ220に割り当てられているリソースを把握する(S71)。
リソース管理部102は、ワークロード管理テーブル123を使用し、仮想サーバ220の割当リソース情報(CPU割当量、CPU使用率)等に基づいて、CPUの未使用率を算出する(S72)。CPU未使用率とは、物理サーバ20有するCPUの全量とCPU使用量との差である。
CPU未使用率の算出方法としては、例えば、CPUグループ21Gを利用する各仮想サーバ220のCPU使用率と仮想化機構200のCPU使用率とを合計したCPU使用率を、100%から差し引いた値として求める方法がある。
リソース管理部102は、算出されたCPU未使用率に基づいて、消費電力を削減するために変更可能な周波数を算出する(S73)。
CPU未使用率に基づいて変更可能な周波数を計算する方法としては、例えば、周波数変更前におけるCPU(CPUグループ21G)の駆動周波数に、CPU未使用率を乗算する方法が考えられる。例えば、周波数変更前の物理サーバ20のCPU駆動周波数が3GHz(100%フル稼働の状態)、CPU未使用率が30%の場合を考える。この場合、変更可能な周波数は、3GHz×(100−30)%=2.1GHz(フル稼働の70%の状態)として算出可能である。
リソース管理部102は、電力特性管理テーブル124を使用することにより、最適な駆動周波数を決定する(S74)。
例えば、リソース管理部102は、周波数−消費電力特性マトリクス125を、S73で算出された周波数で検索することにより、S73で算出された周波数の含まれる周波数レベルを検出する。リソース管理部102は、例えば、検出された周波数レベル内の上限周波数を最適な周波数として選択することができる(S74)。
例えば、S74で算出された、変更可能な周波数が2.1GHzであり、この周波数が周波数レベル1に属する場合を考える。変更前の駆動周波数は、3GHzである。この場合、図12に示すように、周波数レベル1では、消費電力の削減効果が少ない。従って、周波数レベル1の上限値(周波数レベル1と周波数レベル2との間の閾値周波数)である、2.2GHzになるようにする。従って、この例の場合、変更可能な周波数(2.1GHz)と決定された周波数(2.2GHz)との間に、0.1GHzのマージンが生まれることになる。
このように、リソース管理部102は、周波数の変更量が閾値を上回っている場合または下回っている場合等に、閾値以上の周波数変更を行わないことができる。これにより、CPU21の駆動周波数を低下させても電力削減効果が少ない場合に、駆動周波数の変更に要するコストを低減させることができる。
上述の通り、駆動周波数を変更可能な範囲を予め設定することにより、駆動周波数の変更量を所定の範囲内にとどめて、駆動周波数の急激な変更を防止できる。従って、CPU21の誤動作を未然に防止でき、さらに、仮想サーバ220の負荷増大に対応して駆動周波数を速やかに増加させることができる。
リソース管理部102は、ワークロード管理部103にCPU割当量の変更を要求する(S75)。このCPU割当量を変更する要求に含まれるパラメータとしては、例えば、S74で決定された最適周波数がある。リソース管理部102は、ワークロード管理部103からの通知を受領することにより、CPU割当量の変更要求をワークロード管理部103が受け付けたことを確認する(S76)。
図17は、ワークロード管理部103により実行されるワークロード管理処理を示すフローチャートである。本処理は、CPU割当て部211にCPU割当量の変更を要求する場合等に呼び出されて、実行される。
ワークロード管理部103は、呼出元であるリソース管理部102に、要求を受け付けた旨を通知する(S80)。次に、ワークロード管理部103は、仮想化機構200のCPU割当て部211から、各仮想サーバ220及び仮想化機構200のそれぞれのCPU割当量を取得する(S81)。
ワークロード管理部103は、ワークロード管理テーブル123に、各仮想サーバ220のCPU割当量を登録する(S82)。ワークロード管理部103は、各仮想サーバ220及び仮想化機構200のそれぞれのCPU割当量と、各仮想サーバ220のCPU使用率及び仮想化機構200のCPU使用率とに基づいて、駆動周波数の変更後における新たなCPU割当量を算出する(S83)。
ワークロード管理部103は、CPU21の駆動周波数を最適周波数に変更した場合でも、各仮想サーバ220及び仮想化機構200のそれぞれの処理性能が低下しないように、新たなCPU割当量を算出する。
CPU割当量の計算方法としては、例えば、駆動周波数を変更する前の仮想サーバ220のCPU使用率に、駆動周波数の変更量を乗算する方法が考えられる。
例えば、周波数変更前の仮想サーバ220のCPU使用率が60%であって、CPUの駆動周波数を最高周波数(100%(3GHz))から最高周波数の74%の値(3×0.74=2.2GHz)に低下させる場合を考える。この場合、周波数変更後における仮想サーバ220のCPU割当量を、60%×(100%÷74%)=81%として、算出する。そして、各仮想サーバ220のCPU使用率と仮想化機構200のCPU使用率との合計値が、100%または100%近傍の値になるように、各仮想サーバ220及び仮想化機構200のそれぞれのCPU割当量を決定する。
ワークロード管理部103は、リソースの割当てを変更するか否かを判定し(S84)、変更する場合には(S84:YES)、仮想化機構200のCPU割当て部211に、仮想化機構200及び各仮想サーバ220のそれぞれついて、CPU割当量の変更を要求する(S85)。このCPU割当量の変更要求には、S83で算出されたCPU割当量がパラメータとして含まれる。
ワークロード管理部103は、CPU割当て部211からの通知を受領することにより、S85で発行された要求がCPU割当て部211に受け付けられたことを確認する(S86)。そして、ワークロード管理部103は、ワークロード管理テーブル123内の、各仮想サーバ220のCPU割当量を更新する(S87)。
ワークロード管理部103は、周波数制御部214に、周波数の変更を要求する(S88)。この周波数変更要求には、最適周波数とCPUグループ識別子等がパラメータとして含まれる。
なお、CPU割当量の算出方法としては、上述のように仮想サーバ220のCPU使用率に基づいて算出する方法でも良いし、あるいは、予めユーザにより設定される最低値を満たすようにCPU割当量を算出する方法でもよい。仮想サーバ220が最低限有するべき最低値を予め指定することにより、CPUの駆動周波数を低下可能な量を大きくすることができ、より一層消費電力を低減できる。
図18は、周波数制御部214により実行される周波数制御処理を示すフローチャートである。
周波数制御部214は、呼出元であるワークロード管理部103に、要求を受け付けた旨を通知する(S100)。周波数制御部214は、周波数変更対象のCPU21に対して、周波数の変更を指示する(S101)。CPU21への周波数の変更要求は、例えば周波数の値を指定しても良いし、あるいは、周波数が複数のレベルに区切られている場合は、レベル番号を指定しても良い。
なお、CPU21の駆動周波数を低下させる場合は、CPU21の駆動電圧も下げることができる。駆動周波数だけでなく駆動電圧も低下させることにより、消費電力の削減効果を大きくすることができる。
周波数制御部214は、仮想環境性能管理部101に、周波数の変更が完了した旨を通知する(S102)。さらに、周波数制御部214は、仮想環境性能管理部101に、周波数変更後における各仮想サーバ220及び仮想化機構200の負荷状態を測定することを、要求する(S102)。
このように構成される本実施例によれば、各仮想サーバ220の処理性能の低下を抑制しつつ、各仮想サーバ220及び仮想化機構200を有する物理サーバ20の消費電力を適切に制御できる。
本実施例では、CPU21の駆動周波数を低下可能な周波数まで下げるのではなく、消費電力量の変化を示す傾きの値が変化する場合の周波数(閾値周波数)を用いて、CPU21の駆動周波数の決定範囲を制限する。従って、本実施例では、所定の周波数範囲内で、CPU21の駆動周波数を決定でき、仮想サーバ220の負荷増大に速やかに対応することができる。
図19は、本発明の第2実施例に係る管理サーバ10が実行する、電力モード管理処理を示すフローチャートである。本実施例は、第1実施例の変形例に該当するため、第1実施例との相違点を中心に説明する。
電力モード管理部111は、消費電力制御スケジュール500を受け取ると(S30A)、図13で述べたS31〜S35のステップを実行する。消費電力制御スケジュールには、例えば、各仮想サーバ220が稼働する時間帯に関する情報等が含まれる。
従って、電力モード管理部111は、消費電力制御スケジュール500に従って動作することにより、、各仮想サーバ220の稼働時間に合わせて、駆動周波数の変更及びCPU割当量の変更を行うことができる。
例えば、各仮想サーバ220が稼働する時間帯や各仮想サーバ220の負荷ピーク時刻がスケジュール500に記録されていれば、各仮想サーバ220が同時に稼働するのを防止し、各仮想サーバ220の負荷を分散させることができる。これにより、CPU21の駆動周波数を比較的長時間低い値にとどめておくことができ、消費電力をより一層低減することができる。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
本発明の実施形態の概念を示す説明図である。 本実施例に係るシステムの全体構成を示す説明図である。 管理サーバの構成を示す説明図である。 物理サーバの構成を示す説明図である。 仮想サーバにリソースを割り当てる様子を示す説明図である。 本システムの全体動作の流れを示す説明図である。 最適な駆動周波数に調整する前(a)と調整した後(b)の状態をそれぞれ示す説明図である。 物理サーバ管理テーブルの構成を示す説明図である。 仮想サーバ管理テーブルの構成を示す説明図である。 ワークロード管理テーブルの構成を示す説明図である。 電力特性管理テーブルの構成を示す説明図である。 駆動周波数と消費電力との関係を示す説明図である。 電力モード管理処理を示すフローチャートである。 電力特性取得処理を示すフローチャートである。 仮想環境性能管理処理を示すフローチャートである。 リソース管理処理を示すフローチャートである。 ワークロード管理処理を示すフローチャートである。 周波数制御処理を示すフローチャートである。 第2実施例に係る電力モード管理処理のフローチャートである。
符号の説明
1:管理サーバ、1A:CPU使用量等検出部、1B:CPU消費電力特性取得部、1C:周波数決定部、1D:CPU割当量決定部、1E:設定変更要求部、2:物理サーバ、2A:CPU、3:ストレージ装置、3A:論理ボリューム、4:仮想化機構、5:仮想サーバ、10:管理サーバ、20:物理サーバ、21:CPU、21G:CPUグループ、22:メモリ、26:消費電力測定部、30:ストレージ装置、31:コントローラ、32:ドライブ搭載部、33:記憶ドライブ、35:論理ボリューム、35V:仮想ディスク、100:仮想化機構管理部、101:仮想環境性能管理部、102:リソース管理部、103:ワークロード管理部、110:電力管理部、111:電力モード管理部、112:電力特性取得部、121:物理サーバ管理テーブル、122:仮想サーバ管理テーブル、123:ワークロード管理テーブル、124:電力特性管理テーブル、125:周波数−消費電力特性マトリクス、200:仮想化機構、210:リソース制御部、211:CPU割当て部、212:性能取得部、213:電力制御部、214:周波数制御部、220:仮想サーバ、500:消費電力制御スケジュール。

Claims (2)

  1. 少なくとも一つ以上の仮想サーバを有する物理サーバの消費電力を制御するための消費電力制御装置であって、
    前記物理サーバは、前記物理サーバの有する演算処理資源が割り当てられて仮想的に生成される前記少なくとも一つ以上の仮想サーバと、この仮想サーバへ前記演算処理資源を割当てることにより前記仮想サーバを生成する仮想化機構と、を備えており、
    前記仮想サーバにより使用されている前記演算処理資源の第1の量と前記仮想化機構により使用されている前記演算処理資源の第2の量との合計使用量を検出する使用量検出部と
    前記仮想化機構に前記演算処理資源を駆動する周波数の段階的変更を要求し、その要求に従って前記仮想化機構が前記周波数を段階的に変更した場合の前記演算処理資源の消費電力量を前記仮想化機構から受信することにより、前記演算処理資源に関する周波数と消費電力との関係を示す周波数−消費電力特性情報を取得し、前記周波数を段階的に変化させた場合の前記演算処理資源の消費電力の変化量を複数の所定の周波数範囲に分類し、前記各所定の周波数範囲の最も低い周波数を閾値周波数としてそれぞれ決定する消費電力特性取得部と、
    前記演算処理資源の総量に対する前記合計使用量の割合を乗じた値を低下可能な周波数として求め、前記低下可能な周波数が現在の周波数と同一の所定の周波数範囲に属する場合は、前記低下可能な周波数を前記演算処理資源を駆動させる周波数として決定し、前記低下可能な周波数が現在の周波数の属する所定の周波数範囲よりも周波数の低い他の所定の周波数範囲に属する場合は、現在の周波数の属する前記所定の周波数範囲の前記閾値周波数を前記演算処理資源を駆動させる周波数として決定する周波数決定部と、
    前記現在の周波数に対する前記演算処理資源を駆動させる周波数として決定された周波数の割合を前記第1の量に乗じることで、前記仮想サーバに割り当てる前記演算処理資源の第3の量を決定し、かつ、前記現在の周波数に対する前記演算処理資源を駆動させる周波数として決定された周波数の割合を前記第2の量に乗じることで前記仮想化管理機構に割り当てる前記演算処理資源の第4の量を決定する割当量決定部と、
    前記決定された第3の量の前記演算処理資源を前記仮想サーバに割当て、かつ、前記決定された第4の量の前記演算処理資源を前記仮想化機構に割当て、さらに、前記決定された周波数で前記演算処理資源を駆動させるように、前記仮想化機構に要求する設定変更部と、
    を備えるサーバの消費電力制御装置。
  2. 少なくとも一つ以上の仮想サーバを有する物理サーバの消費電力を制御するための消費電力制御方法であって、
    前記物理サーバは、前記物理サーバの有する演算処理資源が割り当てられて仮想的に生成される前記少なくとも一つ以上の仮想サーバと、この仮想サーバへ前記演算処理資源を割当てることにより前記仮想サーバを生成する仮想化機構と、を備えており、
    前記仮想サーバにより使用されている前記演算処理資源の第1の量と前記仮想化機構により使用されている前記演算処理資源の第2の量との合計使用量を検出するステップと
    前記仮想化機構に前記演算処理資源を駆動する周波数の段階的変更を要求し、その要求に従って前記仮想化機構が前記周波数を段階的に変更した場合の前記演算処理資源の消費電力量を前記仮想化機構から受信することにより、前記演算処理資源に関する周波数と消費電力との関係を示す周波数−消費電力特性情報を取得し、前記周波数を段階的に変化させた場合の前記演算処理資源の消費電力の変化量を複数の所定の周波数範囲に分類し、前記各所定の周波数範囲の最も低い周波数を閾値周波数としてそれぞれ決定するステップと、
    前記演算処理資源の総量に対する前記合計使用量の割合を乗じた値を低下可能な周波数として求め、前記低下可能な周波数が現在の周波数と同一の所定の周波数範囲に属する場合は、前記低下可能な周波数を前記演算処理資源を駆動させる周波数として決定し、前記低下可能な周波数が現在の周波数の属する所定の周波数範囲よりも周波数の低い他の所定の周波数範囲に属する場合は、現在の周波数の属する前記所定の周波数範囲の前記閾値周波数を前記演算処理資源を駆動させる周波数として決定するステップと、
    前記現在の周波数に対する前記演算処理資源を駆動させる周波数として決定された周波数の割合を前記第1の量に乗じることで、前記仮想サーバに割り当てる前記演算処理資源の第3の量を決定し、かつ、前記現在の周波数に対する前記演算処理資源を駆動させる周波数として決定された周波数の割合を前記第2の量に乗じることで前記仮想化管理機構に割り当てる前記演算処理資源の第4の量を決定するステップと、
    前記決定された第3の量の前記演算処理資源を前記仮想サーバに割当て、かつ、前記決定された第4の量の前記演算処理資源を前記仮想化機構に割当てさせるように、前記仮想化機構に要求するステップと、
    前記決定された周波数で前記演算処理資源を駆動させるように、前記仮想化機構に要求するステップと、
    をそれぞれ実行するサーバの消費電力制御方法。
JP2008010684A 2008-01-21 2008-01-21 サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム Expired - Fee Related JP4839328B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008010684A JP4839328B2 (ja) 2008-01-21 2008-01-21 サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム
US12/169,917 US8065541B2 (en) 2008-01-21 2008-07-09 Server power consumption controller, and method and computer program for controlling server power consumption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008010684A JP4839328B2 (ja) 2008-01-21 2008-01-21 サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2009175788A JP2009175788A (ja) 2009-08-06
JP4839328B2 true JP4839328B2 (ja) 2011-12-21

Family

ID=40877384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008010684A Expired - Fee Related JP4839328B2 (ja) 2008-01-21 2008-01-21 サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US8065541B2 (ja)
JP (1) JP4839328B2 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447993B2 (en) * 2008-01-23 2013-05-21 Palo Alto Research Center Incorporated Integrated energy savings and business operations in data centers
US20100115509A1 (en) * 2008-10-31 2010-05-06 International Business Machines Corporation Power optimization via virtualization opportunity
TWI386790B (zh) * 2009-01-23 2013-02-21 Wistron Corp 電源訊號偵測系統、方法及可攜式電子裝置
US9607275B2 (en) * 2009-04-28 2017-03-28 Ca, Inc. Method and system for integration of systems management with project and portfolio management
US8178997B2 (en) 2009-06-15 2012-05-15 Google Inc. Supplying grid ancillary services using controllable loads
US8140668B2 (en) * 2009-06-24 2012-03-20 Red Hat Israel, Ltd. Pre-scheduling the timelines of virtual machines
US20100332660A1 (en) * 2009-06-30 2010-12-30 Yahoo! Inc. Adaptive resource allocation for parallel execution of a range query
US20110154327A1 (en) * 2009-09-11 2011-06-23 Kozat Ulas C Method and apparatus for data center automation
US8849966B2 (en) * 2009-10-13 2014-09-30 Hitachi, Ltd. Server image capacity optimization
US8224993B1 (en) 2009-12-07 2012-07-17 Amazon Technologies, Inc. Managing power consumption in a data center
US8370836B2 (en) 2010-01-28 2013-02-05 Dell Products, Lp System and method to enable power related decisions in a virtualization environment
US8463900B2 (en) 2010-02-02 2013-06-11 International Business Machines Corporation Systems and methods for using workload characteristics for sizing and placement for power-aware consolidation
JP2011170483A (ja) * 2010-02-17 2011-09-01 Nec Corp 仮想計算機装置及び仮想計算機装置の制御方法
US11256529B2 (en) 2010-03-17 2022-02-22 Zerto Ltd. Methods and apparatus for providing hypervisor level data services for server virtualization
US10649799B2 (en) 2010-03-17 2020-05-12 Zerto Ltd. Hypervisor virtual server system, and method for providing data services within a hypervisor virtual server system
US9389892B2 (en) 2010-03-17 2016-07-12 Zerto Ltd. Multiple points in time disk images for disaster recovery
US9442748B2 (en) 2010-03-17 2016-09-13 Zerto, Ltd. Multi-RPO data protection
US9710294B2 (en) 2010-03-17 2017-07-18 Zerto Ltd. Methods and apparatus for providing hypervisor level data services for server virtualization
US8515967B2 (en) * 2010-03-29 2013-08-20 International Business Machines Corporation Cost and power efficient storage area network provisioning
WO2011134716A1 (en) 2010-04-26 2011-11-03 International Business Machines Corporation Managing a multiprocessing computer system
JP5178778B2 (ja) * 2010-06-02 2013-04-10 株式会社日立製作所 仮想計算機およびcpu割り当て方法
JP5435133B2 (ja) * 2010-07-13 2014-03-05 富士通株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US8959220B2 (en) 2010-11-02 2015-02-17 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
US8984109B2 (en) 2010-11-02 2015-03-17 International Business Machines Corporation Ensemble having one or more computing systems and a controller thereof
US8966020B2 (en) 2010-11-02 2015-02-24 International Business Machines Corporation Integration of heterogeneous computing systems into a hybrid computing system
US9253016B2 (en) 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
US9081613B2 (en) * 2010-11-02 2015-07-14 International Business Machines Corporation Unified resource manager providing a single point of control
JP5703799B2 (ja) * 2011-02-03 2015-04-22 富士通株式会社 計算機、制御方法及びプログラム
JP5696603B2 (ja) * 2011-06-29 2015-04-08 富士通株式会社 計算機システム、計算機システムの電力制御方法およびプログラム
JP5768586B2 (ja) * 2011-08-17 2015-08-26 日本電気株式会社 計算装置、計算装置の制御方法、及びプログラム
EP2568353A1 (en) * 2011-09-06 2013-03-13 Basque Center for Applied Mathematics Method for scaling the speed of operation of at least one processor unit in a virtualized resource-sharing system
CN103270470B (zh) * 2011-09-21 2016-02-17 英派尔科技开发有限公司 多核***能耗优化
CN103116524A (zh) * 2011-11-16 2013-05-22 鸿富锦精密工业(深圳)有限公司 Cpu使用率调整***及方法
US8924758B2 (en) * 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US9009500B1 (en) 2012-01-18 2015-04-14 Google Inc. Method of correlating power in a data center by fitting a function to a plurality of pairs of actual power draw values and estimated power draw values determined from monitored CPU utilization of a statistical sample of computers in the data center
US9436245B2 (en) * 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
JP5924087B2 (ja) 2012-04-06 2016-05-25 富士通株式会社 情報処理装置、制御方法、及び制御プログラム
US9348391B1 (en) * 2012-06-28 2016-05-24 Amazon Technologies, Inc. Managing resource power states in shared environments
US9292060B1 (en) 2012-06-28 2016-03-22 Amazon Technologies, Inc. Allowing clients to limited control on power consumed by the cloud while executing the client's tasks
US9104498B2 (en) * 2012-07-31 2015-08-11 Hewlett-Packard Development Company, L.P. Maximizing server utilization within a datacenter
US9547353B1 (en) 2012-09-19 2017-01-17 Amazon Technologies, Inc. Processor energy monitoring and dynamic adjustment
US9270746B2 (en) * 2013-03-14 2016-02-23 Alcatel Lucent Scalable load balancing
WO2015019476A1 (ja) 2013-08-08 2015-02-12 富士通株式会社 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
EP3033675A1 (en) * 2013-08-13 2016-06-22 Intel Corporation Power balancing to increase workload density and improve energy efficiency
KR101904955B1 (ko) * 2013-11-12 2018-10-10 삼성전자주식회사 터치 기반의 모바일 기기에서의 컴퓨팅 자원 할당방법 및 장치
US9547331B2 (en) * 2014-04-03 2017-01-17 Qualcomm Incorporated Apparatus and method to set the speed of a clock
JP6236572B2 (ja) * 2014-09-17 2017-11-22 聯發科技股▲ふん▼有限公司Mediatek Inc. マルチプロセッサシステムにおける動的周波数スケーリング
JP6495645B2 (ja) * 2014-12-19 2019-04-03 株式会社東芝 リソース制御装置、方法、及びプログラム
JP6530572B2 (ja) * 2016-12-28 2019-06-12 株式会社日立製作所 情報処理システム及び方法
US10496150B2 (en) 2017-07-13 2019-12-03 Red Hat, Inc. Power consumption optimization on the cloud
US10824215B2 (en) 2018-07-31 2020-11-03 Nutanix, Inc. Managing power budget of multiple computing node clusters in a computing rack system
JP7230374B2 (ja) * 2018-09-05 2023-03-01 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム
US11212946B2 (en) * 2019-09-18 2021-12-28 Baidu Usa Llc Performance-per-watt optimal control logic in liquid cooling solution for high performance machine-learning computing
JP7513864B2 (ja) 2020-02-13 2024-07-10 富士通株式会社 負荷制御装置および負荷制御方法
US20210116982A1 (en) * 2020-12-23 2021-04-22 Intel Corporation Methods and apparatus to optimize a guard band of a hardware resource
KR102389217B1 (ko) * 2021-02-17 2022-04-21 주식회사 노바챔프 실시간 소비전력 모니터링 기반 전력패턴 분석을 통한 전력 관리 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11202988A (ja) * 1998-01-13 1999-07-30 Hitachi Ltd システム消費電力制御方法
US6845456B1 (en) 2001-05-01 2005-01-18 Advanced Micro Devices, Inc. CPU utilization measurement techniques for use in power management
JP2003256067A (ja) * 2002-03-01 2003-09-10 Mitsubishi Electric Corp 省電力制御方式及び省電力制御方法及びプログラム及び記録媒体
US7155617B2 (en) 2002-08-01 2006-12-26 Texas Instruments Incorporated Methods and systems for performing dynamic power management via frequency and voltage scaling
US7080267B2 (en) 2002-08-01 2006-07-18 Texas Instruments Incorporated Methodology for managing power consumption in an application
US7007183B2 (en) * 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
JP2006113767A (ja) * 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US7925901B2 (en) * 2007-03-15 2011-04-12 International Business Machines Corporation Method and system for estimating processor utilization from power measurements

Also Published As

Publication number Publication date
US8065541B2 (en) 2011-11-22
JP2009175788A (ja) 2009-08-06
US20090187776A1 (en) 2009-07-23

Similar Documents

Publication Publication Date Title
JP4839328B2 (ja) サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム
US9471139B2 (en) Non-intrusive power management
US8676397B2 (en) Regulating the temperature of a datacenter
US8627123B2 (en) Managing power provisioning in distributed computing
US7441135B1 (en) Adaptive dynamic buffering system for power management in server clusters
CN107003887B (zh) Cpu超载设置和云计算工作负荷调度机构
Femal et al. Boosting data center performance through non-uniform power allocation
US9405563B2 (en) Resource management method and apparatus for virtual machine system, and virtual machine system
JP5496518B2 (ja) 集中電力管理方法、装置側エージェント、集中電力管理コントローラ及び集中電源管理システム
US8301742B2 (en) Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
CN102696000B (zh) 用于虚拟化数据中心中的协调能量管理的方法和设备
US20180027058A1 (en) Technologies for Efficiently Identifying Managed Nodes Available for Workload Assignments
US8332673B2 (en) System and method to manage power consumption
JP5332065B2 (ja) クラスタ構成管理方法、管理装置及びプログラム
US8635625B2 (en) Power-aware workload allocation in performance-managed computing environments
WO2011007391A1 (en) Storage system, control method of storage device
US9183102B2 (en) Hardware consumption architecture
JP2011118525A (ja) サーバ管理装置とサーバ管理方法およびサーバ管理プログラム
WO2011076486A1 (en) A method and system for dynamic workload allocation in a computing center which optimizes the overall energy consumption
TW202227975A (zh) 機架管理系統、方法及控制器
US9746911B2 (en) Same linking
JP2016099746A (ja) ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム
JP5435133B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
Jiang et al. Dynamic consolidation of virtual machines in cloud datacenters
CN117331688A (zh) 作业分配方法及服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110906

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111003

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees