CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回に続いて、2020年に公開された論文「Data Center Power Oversubscription with a Medium Voltage Power Plane and Priority-Aware Capping」を紹介します。今回は、電力の使用量をリアルタイムにモニタリングして、サーバー上のジョブをコントロールする「パワーキャッピングサービス」の仕組みを解説します。
前回の図2に示したように、Googleのデータセンターでは、複数の自家発電装置を束ねた「Generator Farm」が、外部の商用電源と並列に配置されています。2系統ある商用電源からの電力供給がどちらも停止すると言う緊急事態が発生した際は、UPS(無停電電源装置)で一時的に電力供給を続けながら、UPSが停止するまでの間に自家発電装置を立ち上げます。この際、すべての自家発電装置を一度に起動するのではなく、データセンター全体での電力使用量をモニタリングしながら、必要な台数だけを起動することで、自家発電装置の稼働に必要な燃料の消費量を抑えます。
そして、データセンター全体での電力使用量が、すべての自家発電装置で供給可能な上限に近づくと、パワーキャッピングサービスは、サーバークラスターのジョブ管理システムと連携して(外部向けのサービスに影響しない)優先度の低いジョブを一時停止します。このパワーキャッピングサービスの構成概要は、図1のようになります。
図1 パワーキャッピングサービスの構成(論文より抜粋)
「Meter Watcher」は、電力供給経路の複数箇所に取り付けられた電力メーターの計測値を1秒ごとに読み出します。「Power Notifier」はその結果を用いて現在の電力使用量を計算した上で、自家発電装置による供給量の限界が近づくと、「Machine Manager」を通じて、各サーバークラスターにジョブの停止命令を発行します。厳密には、電力使用量が供給限界の98%に達した時点でジョブの停止命令が発行されて、4秒以内に停止が完了するように設計されています。図2は、電力使用量のしきい値設定を下げて、意図的にジョブ停止命令を発行させた際の測定結果ですが、しきい値の変更後、約2秒で電力使用量が減少していることがわかります。
図2 パワーキャッピングサービスの稼働テスト結果(論文より抜粋)
なお、パワーキャッピングサービスによって停止される可能性があるのは、優先度の低いジョブに限定されており、外部向けのサービスに影響を与えるジョブは停止の対象外になります。
前述のパワーキャッピングサービスなどの仕組みにより、自家発電装置で供給可能な最大電力は、すべてのサーバーがフル稼働した際のピーク使用量よりも少なく抑えることができます。ピーク使用量が供給可能量を超える割合はオーバーサブスクリプションレート(OSR)と呼ばれ、次の計算式で定義されます。
・OSR =(ピーク使用量 - 供給可能量)/ 供給可能量
前回説明したように、一般的なデータセンターでは、OSRの値は数%程度ですが、Googleのデータセンターでは25%を実現しています。この25%という値を設定するにあたっては、過去のジョブデータを用いたシミュレーションを用いていることが論文内で説明されています。図3は、自家発電装置の稼働中(商用電源の供給停止中)に、パワーキャッピングサービスによるジョブの一時停止が発生する時間の割合を示しています。さまざまなジョブの稼働パターンによるシミュレーションを繰り返しており、各OSRの値ついての複数の結果が箱ひげ図に示されています。OSRを25%に設定した場合、(x印で示された外れ値を除外すると)一時停止が発生する時間の割合は数%程度に留まることが読み取れます。
図3 低優先度ジョブの強制停止が発生する時間の割合(論文より抜粋)
仮にジョブの一時停止が発生しても、外部サービスへの直接の影響はありませんので、これはかなり安全側に振った設定と言えるでしょう。この他には、現在の電力使用量をモニタリングして、ピーク使用量を予測する図4のような仕組みも用意されています。これにより、現在のOSRの設定が適切かどうかを判断しているということです。
図4 電力使用量のモニタリングと予測の仕組み(論文より抜粋)
今回は、2020年に公開された論文「Data Center Power Oversubscription with a Medium Voltage Power Plane and Priority-Aware Capping」に基づいて、Googleのデータセンターにおけるパワーキャッピングサービスの仕組みを紹介しました。論文内では、この他にも、電力使用量に関する様々なシミュレーション結果が紹介されていますので、興味のある方は参考にしてください。
次回は、Googleのデータセンターにおけるサーバークラスター(Borgクラスター)の稼働状況に関する最新の調査結果を紹介します。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes