IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-127631消費電力推定装置、消費電力推定システム及び消費電力推定方法
<>
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図1
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図2
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図3
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図4
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図5
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図6
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図7
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図8
  • 特開-消費電力推定装置、消費電力推定システム及び消費電力推定方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023127631
(43)【公開日】2023-09-14
(54)【発明の名称】消費電力推定装置、消費電力推定システム及び消費電力推定方法
(51)【国際特許分類】
   G06F 11/34 20060101AFI20230907BHJP
   G06F 9/50 20060101ALI20230907BHJP
   G06F 11/30 20060101ALI20230907BHJP
   G06F 1/28 20060101ALI20230907BHJP
【FI】
G06F11/34 152
G06F9/50 150C
G06F11/30 162
G06F11/30 140A
G06F1/28
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022031431
(22)【出願日】2022-03-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000062
【氏名又は名称】弁理士法人第一国際特許事務所
(72)【発明者】
【氏名】チャウダリ プリタム ジャイワント
(72)【発明者】
【氏名】金子 聡
(72)【発明者】
【氏名】小澤 洋司
【テーマコード(参考)】
5B011
5B042
【Fターム(参考)】
5B011EA02
5B011FF04
5B042MA08
5B042MA14
5B042MC12
5B042MC22
(57)【要約】
【課題】多様なアプリケーションの消費電力を正確に推定することが可能な消費電力推定手段を提供すること。
【解決手段】消費電力推定装置は、過去アプリケーションに関する過去アプリケーションメタデータを格納するメタデータDBと、過去アプリケーションの消費電力を示す消費電力情報を含む消費電力DBと、推定対象のアプリケーションの消費電力を推定する消費電力推定部とを含み、消費電力推定部は、推定対象のアプリケーションに関するアプリケーションマニフェストから、対象アプリケーションメタデータを抽出し、対象アプリケーションメタデータの過去アプリケーションメタデータに対する類似度を計算し、類似度が所定の類似度基準を満たす類似アプリケーションに対応する第1の消費電力情報を消費電力DBから抽出し、第1の消費電力情報を第1の消費電力推定結果として出力する。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数のノードから構成されるノードクラスターに配置される推定対象のアプリケーションの消費電力を推定する消費電力推定装置であって、
前記ノードクラスターにおいて過去に実行された過去アプリケーションに関する過去アプリケーションメタデータを格納するメタデータデータベースと、
前記過去アプリケーションの消費電力を示す消費電力情報を含む消費電力データベースと、
推定対象のアプリケーションの消費電力を推定する消費電力推定部とを含み、
前記消費電力推定部は、
前記推定対象のアプリケーションの情報を含むアプリケーションマニフェストを取得し、
前記アプリケーションマニフェストから、前記推定対象のアプリケーションに関するメタデータである対象アプリケーションメタデータを抽出し、
前記対象アプリケーションメタデータの、前記メタデータデータベースに格納されている前記過去アプリケーションメタデータに対する類似度を計算し、
前記過去アプリケーションの内、計算した前記類似度が所定の類似度基準を満たす類似アプリケーションが存在する場合、前記類似アプリケーションに対応する第1の消費電力情報を前記消費電力データベースから抽出し、
前記第1の消費電力情報を、前記推定対象のアプリケーションの消費電力の推定を示す第1の消費電力推定結果として出力する、
ことを特徴とする消費電力推定装置。
【請求項2】
前記消費電力推定部は、
前記過去アプリケーションの内、計算した前記類似度が前記対象アプリケーションメタデータとの前記所定の類似度基準を満たす類似アプリケーションが存在しない場合、前記消費電力データベースに格納されている前記過去アプリケーションのそれぞれの消費電力の平均値を前記第1の消費電力推定結果として出力する、
ことを特徴とする、請求項1に記載の消費電力推定装置。
【請求項3】
前記消費電力推定装置は、
前記過去アプリケーションの実行中に使用されるリソース使用量の情報を示すアプリケーションプロフィールを格納するアプリケーションプロフィールデータベースと、
前記アプリケーションプロフィールに基づいて構築され、前記過去アプリケーションの実行による消費電力を推定する電力モデルを格納する電力モデルデータベースと、
を更に含む、
ことを特徴とする、請求項1に記載の消費電力推定装置。
【請求項4】
前記消費電力推定装置は、
前記第1の消費電力推定結果に基づいて、前記推定対象のアプリケーションの配置先となる配置先ノードを前記ノードクラスターの中から判定し、
前記推定対象のアプリケーションを前記配置先ノードに配置する実行管理部を更に含む、
ことを特徴とする、請求項3に記載の消費電力推定装置。
【請求項5】
前記実行管理部は、
前記推定対象のアプリケーションを前記配置先ノードに配置した後、
前記過去アプリケーションの内、計算した前記類似度が前記対象アプリケーションメタデータとの前記所定の類似度基準を満たす類似アプリケーションが存在する場合、
前記類似アプリケーションの第1のアプリケーションプロフィールに対応する第1の電力モデルを前記電力モデルデータベースから特定し、
特定した前記第1の電力モデルを用いて、前記推定対象のアプリケーションの消費電力の推定を示す第2の消費電力推定結果を生成し、
前記推定対象のアプリケーションを前記配置先ノード上で実行した場合の実際の消費電力を示す消費電力計測値と、前記推定対象のアプリケーションを前記配置先ノード上で実行した場合の実際のリソース使用量を示すリソース使用量計測値を収集し、
前記消費電力計測値と前記第2の消費電力推定結果との乖離度が所定の乖離度基準を満たす場合、前記類似アプリケーションの第1のアプリケーションプロフィールを前記リソース使用量計測値に基づいて更新し、前記第1の電力モデルを、更新した前記第1のアプリケーションプロフィールと、前記消費電力計測値とに基づいて更新する、
ことを特徴とする、請求項4に記載の消費電力推定装置。
【請求項6】
前記実行管理部は、
前記推定対象のアプリケーションを前記配置先ノードに配置した後、
前記過去アプリケーションの内、計算した前記類似度が前記対象アプリケーションメタデータとの前記所定の類似度基準を満たす類似アプリケーションが存在しない場合、
前記推定対象のアプリケーションを前記配置先ノード上で実行した場合の実際の消費電力を示す消費電力計測値と、前記推定対象のアプリケーションを前記配置先ノード上で実行した場合の実際のリソース使用量を示すリソース使用量計測値を収集し、
前記リソース使用量計測値に基づいて前記推定対象のアプリケーションに対応する第2のアプリケーションプロフィールを前記アプリケーションプロフィールデータベースにおいて作成し、
作成した前記第2のアプリケーションプロフィールと、前記消費電力計測値とに基づいて、前記リソース使用量計測値を独立変数とし、前記消費電力計測値を従属変数とした回帰モデルを、前記推定対象のアプリケーションに対応する第2の電力モデルとして構築し、前記電力モデルデータベースに格納する、
ことを特徴とする、請求項4に記載の消費電力推定装置。
【請求項7】
前記対象アプリケーションメタデータは、
テキストで構成されるテキストメタデータと、数値で構成される数値メタデータとを含み、
前記テキストメタデータは、
所定の固定テキスト値を含むキーワードメタデータと、自由に入力可能なテキスト値を含む非構造化テキストメタデータとを含み、
前記消費電力推定装置は、
前記キーワードメタデータをベクトル形式に変換するためのキーワードメタデータ変換テーブルと、前記非構造化テキストメタデータをベクトル形式に変換するための非構造化テキストメタデータ変換テーブルとを格納するメタデータ変換テーブルテータベースを更に含む、
ことを特徴とする、請求項1に記載の消費電力推定装置。
【請求項8】
前記消費電力推定部は、
前記数値メタデータを第1のメタデータベクトルに変換し、
前記キーワードメタデータ変換テーブルを用いて前記キーワードメタデータを第2のメタデータベクトルに変換し、
訓練済みのニューラルネットワークによる分類手段を用いて、前記非構造化テキストメタデータを所定のメタデータカテゴリーに分類し、
前記メタデータカテゴリーと、前記非構造化テキストメタデータ変換テーブルとを用いて前記非構造化テキストメタデータを第3のベクトルに変換し、
前記第1のメタデータベクトル、前記第2のメタデータベクトル及び第3のメタデータベクトルのそれぞれを、前記過去アプリケーションメタデータをベクトル形式で格納する前記メタデータデータベースに比較することで、前記対象アプリケーションメタデータの、前記メタデータデータベースに格納されている前記過去アプリケーションメタデータに対する前記類似度をユークリッド距離として計算する、
ことを特徴とする、請求項7に記載の消費電力推定装置。
【請求項9】
前記消費電力推定部は、
前記第1のメタデータベクトル、前記第2のメタデータベクトル及び第3のメタデータベクトルのいずれかに対して重みを割り当てることで、当該メタデータベクトルの前記類似度への影響力を調整する、
ことを特徴とする、請求項8に記載の消費電力推定装置。
【請求項10】
複数のノードから構成されるノードクラスターと、
前記ノードクラスターを管理するクラスター管理装置と、
前記ノードクラスターに実行させるアプリケーションを依頼するクライアント端末とが通信ネットワークを介して接続される消費電力推定システムであって、
前記クラスター管理装置は、
前記ノードクラスターにおいて実行された過去アプリケーションに関する過去アプリケーションメタデータを格納するメタデータデータベースと、
前記過去アプリケーションの消費電力を示す消費電力情報を含む消費電力データベースと、
推定対象のアプリケーションの消費電力を推定する消費電力推定部と、
前記ノードクラスターに配置するアプリケーションを管理する実行管理部とを備える消費電力推定装置を含み、
前記消費電力推定部は、
前記推定対象のアプリケーションの情報を含むアプリケーションマニフェストを前記クライアント端末から取得し、
前記アプリケーションマニフェストから、前記推定対象のアプリケーションに関するメタデータである対象アプリケーションメタデータを抽出し、
前記対象アプリケーションメタデータの、前記メタデータデータベースに格納されている前記過去アプリケーションメタデータに対する類似度を計算し、
前記過去アプリケーションの内、計算した前記類似度が所定の類似度基準を満たす類似アプリケーションが存在する場合、前記類似アプリケーションに対応する第1の消費電力情報を前記消費電力データベースから抽出し、
前記第1の消費電力情報を、前記推定対象のアプリケーションの消費電力の推定を示す第1の消費電力推定結果として生成し、
前記実行管理部は、
前記第1の消費電力推定結果に基づいて、前記推定対象のアプリケーションの配置先となる配置先ノードを前記ノードクラスターの中から判定し、
前記推定対象のアプリケーションを前記配置先ノードに配置する、
ことを特徴とする消費電力推定システム。
【請求項11】
複数のノードから構成されるノードクラスターに配置される推定対象のアプリケーションの消費電力を推定する消費電力推定方法であって、
前記推定対象のアプリケーションの情報を含むアプリケーションマニフェストを取得する工程と、
前記アプリケーションマニフェストから、前記推定対象のアプリケーションに関するメタデータである対象アプリケーションメタデータを抽出する工程と、
ワン・ホット・エンコーディング手段を用いて前記対象アプリケーションメタデータをベクトル形式のメタデータベクトルに変換する工程と、
前記メタデータベクトルの、前記ノードクラスターにおいて実行された過去アプリケーションに関する過去アプリケーションメタデータに対する類似度を計算する工程と、
前記過去アプリケーションの内、計算した前記類似度が所定の類似度基準を満たす類似アプリケーションが存在する場合、前記類似アプリケーションに対応する第1の消費電力情報を特定する工程と、
前記第1の消費電力情報を、前記推定対象のアプリケーションの消費電力の推定を示す第1の消費電力推定結果として生成する工程と、
前記第1の消費電力推定結果に基づいて、前記推定対象のアプリケーションの配置先となる配置先ノードを前記ノードクラスターの中から判定する工程と、
前記推定対象のアプリケーションを前記配置先ノードに配置する工程と、
を含む消費電力推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、消費電力推定装置、消費電力推定システム及び消費電力推定方法に関する。
【背景技術】
【0002】
互いに接続されている多数のサーバ(以下、「ノード」という)からなる分散コンピューティング環境においては、特定のアプリケーションのワークロードを実行するための最適なノードを効率良く選択することが重要である。特定のワークロードを実行するための最適なノードの選択には、ノードのプロセッサの数、メモリ及びストレージの容量、消費電力の効率等、様々な基準が用いられている。
【0003】
特に近年では、情報通信技術の地球環境への影響の配慮が求められるグリーンIT等の導入に伴い、ワークロードによる電力消費がアプリケーションの配置の重要な検討事項となっており、消費電力を抑制したり、再生可能エネルギーの使用率を向上したりするなど、消費電力を意識したワークロード配置が求められている。
【0004】
消費電力を意識したワークロード配置を実現するためには、アプリケーションの配置先となるノードを決定する前に、当該アプリケーションのワークロードの消費電力を推定する手段が用いられている。
例えば、ワークロードの消費電力を推定する手段の一つとして、特許文献1には、「複数のノードを備えるデータ処理システムを動作させる方法であって、第一のジョブについてモードの指示を受信することと、前記モードに基づいて前記第一のジョブのための利用可能な電力を決定することと、前記利用可能な電力に基づいて前記第一のジョブを実行する前記複数のノードの第一の周波数を調整することであって、前記第一の周波数は前記第一のジョブを実行する前記複数のノードに共通である、ことと、前記第一の周波数に基づいて前記複数のノードで実行される前記第一のジョブのための第一の電力を割り当てることと、前記第一の周波数が所定の周波数より大きいかどうかを判定することと、前記第一の周波数が所定の周波数より大きい場合、第二のジョブのための利用可能な電力を決定することと、を含む方法」が開示されている。
【0005】
また、特許文献2には、「クラウドサーバーなどのサーバーシステムで実行するように構成されたアプリケーションコンテナの消費電力と効率を推定するためのデバイスと手法が提供される。一例では、本方法は、ベンチマークアプリケーションコンテナを作成すること、ホストサーバー上のベンチマークアプリケーションコンテナを命名すること、ホストサーバーの電力消費情報を収集すること、人工ワークロードを使用したベンチマークアプリケーションコンテナのリソース使用量情報を収集すること、消費電力情報とリソース使用量情報を使用して統計モデルを構築すること、ホストサーバーの第1の電力モデルを生成することを含む」技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許第9575536号
【特許文献2】米国特許第10432491号
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記の特許文献1には、特定のアプリケーションのワークロードを特定のノードで実行した場合の最大電力や平均電力の情報を参照することで、同種のアプリケーションのワークロードの消費電力を推定する手段が開示されている。
【0008】
また、特許文献2には、所定のノード上でベンチマークアプリケーションを実行し、当該ベンチマークアプリケーションのワークロードによるプロセッサ使用量、メモリ使用量、I/O使用量等のリソース使用量の情報を計測し、回帰モデリングを用いて計測したリソース使用量の情報を処理することで、消費電力を推定する電力モデルを作成する手段が開示されている。
【0009】
しかし、実際には、分散コンピューティング環境における1つのノードは、ビジネス分析、メディアストリーミング、ウェブサービス等の様々なアプリケーションをホストすることが求められており、アプリケーションによってワークロードの消費電力が変化する。このように、アプリケーションによってワークロードの消費電力が変化するため、1つのノードについて単一の電力モデルだけでは、ノードがホストする可能性がある様々なアプリケーションについて正確な消費電力を推定できず、アプリケーション毎に電力モデルを構築する必要がある。しかし、アプリケーションは多岐にわたり、ノードがホストし得る全てのアプリケーションについて電力モデルを予め構築しておくことが現実的ではない。
【0010】
しかし、上述したアプリケーションの多様性が消費電力の推定に与える影響は、特許文献1及び特許文献2のいずれにも考慮されていない。より具体的には、特許文献1及び特許文献2には、対象のアプリケーションのワークロードの消費電力を推定するためには、当該対象のアプリケーションの特性に類似しているベンチマークアプリケーションが用いられているが、対象のアプリケーションに類似しているベンチマークアプリケーションが必ずしも利用可能であるとは限らない。
特許文献1には、対象のアプリケーションに類似しているベンチマークアプリケーションがない場合、ノードの消費電力の最大値のみに基づいた電力推定が提案されているが、最大の消費電力のみでは、特定のアプリケーションについて正確な消費電力推定が得られない。また、特許文献2には、対象のアプリケーションに類似しているベンチマークアプリケーションがない場合、既に構築済みの電力モデルの係数を調整する手段が提案されているが、アプリケーションの多様性を考慮すると、電力モデルの修正が大きな負担となり得る。
【0011】
そこで、本開示は、上記の課題に鑑みてなされたものであり、分散コンピューティング環境のノードに配置する対象のアプリケーションと、過去に当該ノードで実行されたアプリケーションとの類似度をそれぞれのアプリケーションのメタデータに基づいて計算し、所定の類似度基準を満たす過去のアプリケーションについて計測した消費電力の情報を用いることで、多様なアプリケーションの消費電力を正確に推定することが可能な消費電力推定手段を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記の課題を解決するために、代表的な本発明の消費電力推定装置の一つは、複数のノードから構成されるノードクラスターに配置される推定対象のアプリケーションの消費電力を推定する消費電力推定装置であって、前記ノードクラスターにおいて過去に実行された過去アプリケーションに関する過去アプリケーションメタデータを格納するメタデータデータベースと、前記過去アプリケーションの消費電力を示す消費電力情報を含む消費電力データベースと、推定対象のアプリケーションの消費電力を推定する消費電力推定部とを含み、前記消費電力推定部は、前記推定対象のアプリケーションの情報を含むアプリケーションマニフェストを取得し、前記アプリケーションマニフェストから、前記推定対象のアプリケーションに関するメタデータである対象アプリケーションメタデータを抽出し、前記対象アプリケーションメタデータの、前記メタデータデータベースに格納されている前記過去アプリケーションメタデータに対する類似度を計算し、前記過去アプリケーションの内、計算した前記類似度が所定の類似度基準を満たす類似アプリケーションが存在する場合、前記類似アプリケーションに対応する第1の消費電力情報を前記消費電力データベースから抽出し、前記第1の消費電力情報を、前記推定対象のアプリケーションの消費電力の推定を示す第1の消費電力推定結果として出力する。
【発明の効果】
【0013】
本開示によれば、分散コンピューティング環境のノードに配置する対象のアプリケーションと、過去に当該ノードで実行されたアプリケーションとの類似度をそれぞれのアプリケーションのメタデータに基づいて計算し、所定の類似度基準を満たす過去のアプリケーションについて計測した消費電力の情報を用いることで、多様なアプリケーションの消費電力を正確に推定することが可能な消費電力推定手段を提供することができる。
上記以外の課題、構成及び効果は、以下の発明を実施するための形態における説明により明らかにされる。
【図面の簡単な説明】
【0014】
図1図1は、本開示の実施形態を実施するためのコンピュータシステムを示す図である。
図2図2は、本開示の実施形態に係る消費電力推定システムの構成の一例を示す図である。
図3図3は、本開示の実施形態に係る消費電力推定方法の流れの一例を示すフローチャートである。
図4図4は、本開示の実施形態に係る過去アプリケーションメタデータデータベースの構成例を示す図である。
図5図5は、本開示の実施形態に係る過去アプリケーション消費電力データベースの構成例を示す図である。
図6図6は、本開示の実施形態に係る過去アプリケーションプロフィールの構成例を示す図である。
図7図7は、本開示の実施形態に係るメタデータ変換の一例を示す図である。
図8図8は、本開示の実施形態に係るテキストメタデータ変換テーブルの構成例を示す図である。
図9図9は、本開示の実施形態に係る非構造化テキストメタデータ変換テーブルの構成例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明の実施形態について説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
(本開示の概要)
【0016】
まず、本開示の実施形態について説明する前に、本開示の概要について説明する。
【0017】
上述したように、アプリケーションは多岐にわたっており、アプリケーションによってはワークロードの消費電力が変化するため、多様なアプリケーションのホスト及び実行が求められるノードクラスターにおいて、正確な消費電力を推定することが困難という課題がある。
そこで、本開示では、分散コンピューティング環境のノードクラスターに配置する対象のアプリケーション(以下、「推定対象のアプリケーション」という)と、過去に当該ノードで実行されたアプリケーション(以下、「過去アプリケーション」という)との類似度をそれぞれのアプリケーションのメタデータに基づいて計算し、所定の類似度基準を満たす過去のアプリケーションについて計測した消費電力の情報を用いることで、多様なアプリケーションの消費電力を正確に推定することが可能となる。
【0018】
このように生成したアプリケーションの消費電力推定に基づいて、当該アプリケーションを適切なノードクラスターに配置することができる。また、アプリケーションを適切なノードクラスターに配置した後、アプリケーションの実際の消費電力を計測し分析することで、アプリケーションのリソース使用量を考慮した消費電力を推定する電力モデルの精度を評価することができる。評価の結果、電力モデルの精度が所定の基準を満たさない場合(つまり、電力モデルの推定が実際に計測した値から乖離している場合)、アプリケーションの実際の消費電力の情報に基づいて電力モデルを更新することで、電力モデルの精度を向上させることができる。
【0019】
一方、推定対象のアプリケーションと所定の類似度基準を満たす過去アプリケーションがない場合、推定対象のアプリケーションの消費電力推定は、当該ノードクラスターにおいて実行された過去アプリケーションの消費電力の平均値に基づいて生成される。その後、推定対象のアプリケーションは、この消費電力推定に基づいて適切なノードクラスターに配置される。また、配置したアプリケーションの実際の消費電力を計測し分析することで、当該アプリケーションに対応する新たな電力モデルを構築することができる。
【0020】
このように、時間が経過するにつれて、ノードクラスターは様々なアプリケーションをホストし、ホストした各アプリケーションについて既存の電力モデルを更新したり、新たな電力モデルを作成したりすることにより、多様なアプリケーションに対応する電力モデルのレパートリーが構築されるため、多様なアプリケーションについて消費電力を正確に推定することが可能となる。
【0021】
次に、図1を参照して、本開示の実施例を実施するためのコンピュータシステム100について説明する。本明細書で開示される様々な実施例の機構及び装置は、任意の適切なコンピューティングシステムに適用されてもよい。コンピュータシステム100の主要コンポーネントは、1つ以上のプロセッサ102、メモリ104、端末インターフェース112、ストレージインタフェース113、I/O(入出力)デバイスインタフェース114、及びネットワークインターフェース115を含む。これらのコンポーネントは、メモリバス106、I/Oバス108、バスインターフェースユニット109、及びI/Oバスインターフェースユニット110を介して、相互的に接続されてもよい。
【0022】
コンピュータシステム100は、プロセッサ102と総称される1つ又は複数の汎用プログラマブル中央処理装置(CPU)102A及び102Bを含んでもよい。ある実施例では、コンピュータシステム100は複数のプロセッサを備えてもよく、また別の実施例では、コンピュータシステム100は単一のCPUシステムであってもよい。各プロセッサ102は、メモリ104に格納された命令を実行し、オンボードキャッシュを含んでもよい。
【0023】
ある実施例では、メモリ104は、データ及びプログラムを記憶するためのランダムアクセス半導体メモリ、記憶装置、又は記憶媒体(揮発性又は不揮発性のいずれか)を含んでもよい。メモリ104は、本明細書で説明する機能を実施するプログラム、モジュール、及びデータ構造のすべて又は一部を格納してもよい。例えば、メモリ104は、消費電力推定アプリケーション150を格納していてもよい。ある実施例では、消費電力推定アプリケーション150は、後述する機能をプロセッサ102上で実行する命令又は記述を含んでもよい。
【0024】
ある実施例では、消費電力推定アプリケーション150は、プロセッサベースのシステムの代わりに、またはプロセッサベースのシステムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カード、および/または他の物理ハードウェアデバイスを介してハードウェアで実施されてもよい。ある実施例では、消費電力推定アプリケーション150は、命令又は記述以外のデータを含んでもよい。ある実施例では、カメラ、センサ、または他のデータ入力デバイス(図示せず)が、バスインターフェースユニット109、プロセッサ102、またはコンピュータシステム100の他のハードウェアと直接通信するように提供されてもよい。
【0025】
コンピュータシステム100は、プロセッサ102、メモリ104、表示システム124、及びI/Oバスインターフェースユニット110間の通信を行うバスインターフェースユニット109を含んでもよい。I/Oバスインターフェースユニット110は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス108と連結していてもよい。I/Oバスインターフェースユニット110は、I/Oバス108を介して、I/Oプロセッサ(IOP)又はI/Oアダプタ(IOA)としても知られる複数のI/Oインタフェースユニット112,113,114、及び115と通信してもよい。
【0026】
表示システム124は、表示コントローラ、表示メモリ、又はその両方を含んでもよい。表示コントローラは、ビデオ、オーディオ、又はその両方のデータを表示装置126に提供することができる。また、コンピュータシステム100は、データを収集し、プロセッサ102に当該データを提供するように構成された1つまたは複数のセンサ等のデバイスを含んでもよい。
【0027】
例えば、コンピュータシステム100は、心拍数データやストレスレベルデータ等を収集するバイオメトリックセンサ、湿度データ、温度データ、圧力データ等を収集する環境センサ、及び加速度データ、運動データ等を収集するモーションセンサ等を含んでもよい。これ以外のタイプのセンサも使用可能である。表示システム124は、単独のディスプレイ画面、テレビ、タブレット、又は携帯型デバイスなどの表示装置126に接続されてもよい。
【0028】
I/Oインタフェースユニットは、様々なストレージ又はI/Oデバイスと通信する機能を備える。例えば、端末インタフェースユニット112は、ビデオ表示装置、スピーカテレビ等のユーザ出力デバイスや、キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライトペン、又は他のポインティングデバイス等のユーザ入力デバイスのようなユーザI/Oデバイス116の取り付けが可能である。ユーザは、ユーザインターフェースを使用して、ユーザ入力デバイスを操作することで、ユーザI/Oデバイス116及びコンピュータシステム100に対して入力データや指示を入力し、コンピュータシステム100からの出力データを受け取ってもよい。ユーザインターフェースは例えば、ユーザI/Oデバイス116を介して、表示装置に表示されたり、スピーカによって再生されたり、プリンタを介して印刷されたりしてもよい。
【0029】
ストレージインタフェース113は、1つ又は複数のディスクドライブや直接アクセスストレージ装置117(通常は磁気ディスクドライブストレージ装置であるが、単一のディスクドライブとして見えるように構成されたディスクドライブのアレイ又は他のストレージ装置であってもよい)の取り付けが可能である。ある実施例では、ストレージ装置117は、任意の二次記憶装置として実装されてもよい。メモリ104の内容は、ストレージ装置117に記憶され、必要に応じてストレージ装置117から読み出されてもよい。I/Oデバイスインタフェース114は、プリンタ、ファックスマシン等の他のI/Oデバイスに対するインターフェースを提供してもよい。ネットワークインターフェース115は、コンピュータシステム100と他のデバイスが相互的に通信できるように、通信経路を提供してもよい。この通信経路は、例えば、ネットワーク130であってもよい。
【0030】
ある実施例では、コンピュータシステム100は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、又はサーバコンピュータ等の、直接的ユーザインターフェースを有しない、他のコンピュータシステム(クライアント)からの要求を受信するデバイスであってもよい。他の実施例では、コンピュータシステム100は、デスクトップコンピュータ、携帯型コンピューター、ノートパソコン、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、又は任意の他の適切な電子機器であってもよい。
【0031】
次に、図2を参照して、本開示の実施形態に係る消費電力推定システムの構成について説明する。
【0032】
図2は、本開示の実施形態に係る消費電力推定システム160の構成の一例を示す図である。図2に示すように、本開示の実施形態に係る消費電力推定システム160は、主にクラスター管理装置1000、通信ネットワーク2000、ノードクラスター3010、3020...30N0及びクライアント端末4000からなる。図2に示すように、消費電力推定システム160は、クラスター管理装置1000、ノードクラスター3010、3020...30N0及びクライアント端末4000は、通信ネットワーク2000を介して互いに通信可能に接続される。
【0033】
通信ネットワーク2000は、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、衛星ネットワーク、ケーブルネットワーク、WiFiネットワーク、またはそれらの任意の組み合わせを含むものであってもよい。
【0034】
クライアント端末4000は、所定のアプリケーションの実行や管理をクラスター管理装置1000に依頼する依頼主に利用される端末装置である。ここでのアプリケーションは、例えばビジネス分析のアプリケーション、メディアストリーミングのアプリケーション、ウェブサービスのアプリケーション等を含んでもよく、ここでは特に限定されない。クライアント端末4000は、通信ネットワーク2000を介してクラスター管理装置1000と通信を行う。クライアント端末4000は、依頼したアプリケーションの情報を有するアプリケーションマニフェストを含む実行要求を、通信ネットワーク2000を介してクラスター管理装置1000に送信してもよい。
【0035】
ノードクラスター3010、3020...30N0は、いわゆる分散コンピューティング環境を構成するノードのグループであり、後述するクラスター管理装置1000によって配置されるアプリケーションを実行するように構成されている。ここでは、ノードクラスター3010、3020...30N0における各ノードを同種のノード(つまり、同一のサーバ構成を有するノード)とする。
【0036】
図2に示すように、ノードクラスター3010は、一つのマスターノード3011と、複数のスレーブノード3012、3013、301Nとを含む。マスターノード3011は、通信ネットワーク2000を介してクラスター管理装置1000と通信を行う。
【0037】
マスターノード3011は、スレーブノード3012、3013、301N上のアプリケーションの実行を管理するためのノードであり、後述するクラスター管理装置1000からの指示に従って所定のアプリケーションのワークロードを適切なスレーブノードに割り当てた後、実行させる。また、マスターノード3011は、スレーブノード3012、3013、301Nのそれぞれの消費電力の情報や、スレーブノード3012、3013、301N上で実行されているアプリケーションのワークロードのリソース使用量の情報(プロセッサ使用量、メモリ使用量、I/O使用量等)を計測し、クラスター管理装置1000に送信する。
【0038】
クラスター管理装置1000は、クライアント端末4000から受信した実行要求で依頼されたアプリケーションを、ノードクラスター3010、3020...30N0のいずれかに配置するためのサーバ装置である。図2に示すように、クラスター管理装置1000は、消費電力推定装置1010、入出力装置1020、プロセッサ1030、メモリ1040及びネットワークインターフェース1050を含む。
クラスター管理装置1000は、例えば図1に示すコンピュータシステム100によって構成されてもよい。
【0039】
ネットワークインターフェース1050は、通信ネットワーク2000を介して、クラスター管理装置1000と外部(ノードクラスター3010、3020...30N0及びクライアント端末4000)との通信を行う機能部である。
入出力装置1020は、クラスター管理装置1000に対して情報を入力したり、クラスター管理装置1000から出力される情報を確認したりするためのインターフェースを提供する機能部である。
プロセッサ1030は、後述するメモリ1040によって取得されるプログラム命令(例えば、消費電力推定装置1010における各機能部の機能)を実行する。
メモリ1040は、後述する消費電力推定装置1010に格納される機能部の機能を実現するためのプログラム命令を取得し、プロセッサ1030に提供する。
【0040】
消費電力推定装置1010は、本開示の実施形態に係る消費電力推定手段を実施するための装置である。図2に示すように、消費電力推定装置1010は、消費電力推定部1011、実行管理部1013、メタデータデータベース1014、メタデータ変換テーブルデータベース1015、アプリケーション消費電力データベース1016、アプリケーションプロフィールデータベース1017及び電力モデルデータベース1018を含む。
消費電力推定装置1010の各機能部(消費電力推定部1011や実行管理部1013)は、例えば、図1に示す消費電力推定アプリケーション150におけるソフトウェアモジュールとして構成されてもよく、専用のハードウェアデバイスとして構成されてもよいが、本開示では、説明の便宜上、各機能部をソフトウェアモジュールとして構成した場合を一例として説明する。
【0041】
消費電力推定部1011は、ノードクラスター3010、3020...30N0に配置する対象のアプリケーション(以下、「推定対象のアプリケーション」という)のワークロードに消費される電力を推定する消費電力推定結果(第1の消費電力推定結果)を生成するための機能部である。ここで、「アプリケーションのワークロード」とは、あるアプリケーションの機能を実現するにあたって実行される処理タスクを意味する。アプリケーションのワークロードは、分割され、ノードクラスターにおける異なるノードに分けて割り当てられてもよい。
なお、消費電力推定部1011の機能の詳細については後述するため、ここではその説明を省略する。
【0042】
実行管理部1013は、例えば消費電力推定部1011によって生成される、推定対象のアプリケーションの消費電力推定結果(第1の消費電力推定結果)に基づいて、推定対象のアプリケーションを適切なノードクラスター3010、3020...30N0に配置するための機能部である。
【0043】
メタデータデータベース1014は、ノードクラスター3010、3020...30N0によって実行されるアプリケーション(例えば、過去にノードクラスターに配置されたアプリケーション)に関するメタデータを格納するデータベースである。
【0044】
メタデータ変換テーブルデータベース1015は、ノードクラスター3010、3020...30N0によって実行されるアプリケーションのメタデータをテキスト形式からベクトル形式に変換するためのテーブルである。
【0045】
アプリケーション消費電力データベース1016は、ノードクラスター3010、3020...30N0によって実行されるアプリケーションの消費電力の情報、当該アプリケーションのリソース使用量を示すアプリケーションプロフィールの保存先の情報及び当該アプリケーションのリソース使用量を考慮した消費電力を推定するための電力モデルの保存先の情報を格納するデータベースである。
【0046】
アプリケーションプロフィールデータベース1017は、アプリケーションのリソース使用量を示すアプリケーションプロフィールの情報を格納するデータベースである。
【0047】
電力モデルデータベース1018は、ノードクラスター3010、3020...30N0によって実行されるアプリケーションのリソース使用量を考慮した消費電力を推定する(つまり、第2の費電力推定結果を生成する)ための電力モデルを格納するデータベースである。ここでの電力モデルは、例えばpickleファイルで保存される、学習されたモデル係数を指定するPythonオブジェクトであってもよい。
上述した消費電力推定部1011によって生成される、推定対象のアプリケーションの配置先となるノードの判定に用いられる第1の消費電力推定結果は、類似アプリケーションの消費電力の平均値及び消費電力の最大値等の情報を含むのに対して、電力モデルデータベース1018に格納される電力モデルに基づいて生成される第2の消費電力推定結果は、推定対象のアプリケーションによって使用されるリソース使用量を考慮した消費電力の予測であるため、第1の消費電力推定結果より細かな推定を示すことができる。
【0048】
以上説明した消費電力推定システム160によれば、多様なアプリケーションの消費電力を正確に推定することが可能な消費電力推定手段を提供することができる。
【0049】
次に、図3を参照して、本開示の実施形態に係る消費電力推定方法の流れの一例について説明する。
【0050】
図3は、本開示の実施形態に係る消費電力推定方法300の流れの一例を示すフローチャートである。図3に示す消費電力推定方法300は、分散コンピューティング環境のノードクラスターに配置する対象のアプリケーション(以下、「推定対象のアプリケーション」という)と、過去に当該ノードで実行されたアプリケーション(以下、「過去アプリケーション」という)との類似度をそれぞれのアプリケーションのメタデータに基づいて計算し、所定の類似度基準を満たす過去のアプリケーションについて計測した消費電力の情報を用いることで、多様なアプリケーションの消費電力を正確に推定する方法である。消費電力推定方法300は、例えば上述した消費電力推定装置1010における消費電力推定部1011によって実施される。
【0051】
まず、ステップS301では、消費電力推定部1011は、例えば上述した通信ネットワーク2000を介して、推定対象のアプリケーションのアプリケーションマニフェストをクライアント端末4000から受信する。このアプリケーションマニフェストは、例えば、推定対象のアプリケーションをノードクラスター3010、3020...30N0のいずれかに配置するための実行要求に含まれてもよい。
このアプリケーションマニフェストとは、ノードクラスター3010、3020...30N0に配置される対象のアプリケーションを構成するコンポーネントの記述であり、例えばアプリケーションに提供されるサービス(マイクロサービスともいう)の記述、当該サービスを構成するコンテナの記述、アプリケーションを構成するジョブ(処理タスク)の記述等を含んでもよい。これらのサービス、コンテナ、ジョブの記述等は、「アプリケーションリソース」と総称する。
【0052】
次に、ステップS302では、消費電力推定部1011は、ステップS301で受信したアプリケーションマニフェストから、推定対象のアプリケーションに関するアプリケーションメタデータ(以下、「対象アプリケーションメタデータ」という)を抽出する。推定対象のアプリケーションに関する対象アプリケーションメタデータとは、上述したそれぞれのアプリケーションリソースの仕様を指定する情報である。例えば、対象アプリケーションメタデータは、サービスの種類、サービスのコンテナの数、コンテナを実装するためのイメージ、サービスに用いられるネットワークプロトコル、コンテナのプロセッサ及びメモリの要件、ジョブの実行優先順位、コンテナ実行のためのノード優先順位、サービスに関連付けられたラベル、コンテナに関連付けられたラベル、ジョブに関連付けられたラベル等を含んでもよい。この対象アプリケーションメタデータを抽出するために、消費電力推定部1011は、既存の情報抽出手法を用いてもよく、ここでは特に限定されない。
【0053】
次に、ステップS303では、消費電力推定部1011は、ステップS302で抽出した推定対象のアプリケーションに関する対象アプリケーションメタデータをベクトル形式に変換する。ここでは、消費電力推定部1011は、上述したメタデータ変換テーブルに基づいていわゆるワン・ホット・エンコーディングを行うことで対象アプリケーションメタデータをベクトル形式に変換してもよい。
なお、推定対象のアプリケーションに関する対象アプリケーションメタデータをベクトル形式に変換する処理の詳細については後述するため、ここではその説明を省略する。
【0054】
次に、ステップS304では、消費電力推定部1011は、各ノードクラスター3010、3020...30N0上で実行された各過去アプリケーション毎に、推定対象のアプリケーションと過去アプリケーションとの類似度を、それぞれのアプリケーションメタデータに基づいて計算する。ここでの過去アプリケーションとは、過去にノードクラスター3010、3020...30N0のいずれかに実行されたことのあるアプリケーションを意味する。
より具体的には、消費電力推定部1011は、各ノードクラスター3010、3020...30N0について、当該ノードクラスター上で実行された各過去アプリケーションのメタデータである過去アプリケーションメタデータを上述したメタデータデータベース1014から取得する。
【0055】
その後、消費電力推定部1011は、ステップS302で抽出され、ステップS303でベクトル形式に変換された推定対象のアプリケーションの対象アプリケーションメタデータの、メタデータデータベース1014から取得した各過去アプリケーションの過去アプリケーションメタデータに対する類似度を計算する。ここでの類似度の尺度として、例えば対象アプリケーションメタデータと過去アプリケーションメタデータとの距離を用いてもよい。この場合、対象アプリケーションメタデータと過去アプリケーションメタデータとの距離が低い程、対象アプリケーションメタデータと過去アプリケーションメタデータは類似度が高いと言える。
【0056】
一例として、推定対象のアプリケーションの対象アプリケーションメタデータは、A、B、Cの要素(プロセッサ要件、メモリ要件、コンテナ数等)からなるメタデータベクトルXで表現されているとする。同様に、過去アプリケーションの過去アプリケーションメタデータは、a、b、cの要素(プロセッサ要件、メモリ要件、コンテナ数等)からなるメタデータベクトルxで表現されているとする。
この場合、対象アプリケーションメタデータXと過去アプリケーションメタデータxとの数値メタデータ距離Dは、ミンコフスキー距離やユークリッド距離等で計算されてもよい。対象アプリケーションメタデータXと過去アプリケーションメタデータxとの距離Dをユークリッド距離で計算する数式を数1で示す。
【数1】
【0057】
以上では、アプリケーションメタデータが全て数値で表現されている場合について説明したが、アプリケーションメタデータの中には、コンテナイメージ名、サービスタイプラベル等のテキストで表現されているメタデータが存在する場合がある。この場合、これらのテキスト形式のメタデータは、後述するメタデータ変換テーブルデータベース1015を用いて、ワン・ホット・エンコーディング手法を行うことにより、ベクトル形式に変換することができる。ここで、ワン・ホット・エンコーディング手法によりベクトル形式に変換した対象アプリケーションメタデータをU、Vとし、ワン・ホット・エンコーディングングィング手法によりベクトル形式に変換した過去アプリケーションメタデータをu、vとする。
この場合、ワン・ホット・エンコーディング手法によりベクトル形式に変換した対象アプリケーションメタデータU、Vとワン・ホットエンコーディング手法によりベクトル形式に変換した過去アプリケーションメタデータu、vとのテキストメタデータ距離Dは、以下の数式2で求められる。
【数2】
【0058】
ここで、[[U.u]]は、U.とuとの内積の大きさを意味する。
上述した数値メタデータ距離D及びテキストメタデータ距離Dの両方を含む全体距離DAは、以下の数式3で求められる。
【数3】
【0059】
また、アプリケーションメタデータの距離の別の計算方法では、アプリケーションメタデータ(例えば、特定のメタデータベクトル)に対して重みを割り当て、特定のアプリケーションメタデータの、全体距離への影響力を調整する(つまり、重みを強調する)ことが可能である。一例として、特定のアプリケーションが使用するコンテナイメージが「Web Server B」と記述するアプリケーションメタデータは、特定のアプリケーションのアプリケーションサービスが「バックエンド」と記述するアプリケーションメタデータよりも正確にアプリケーションを識別するため、「Web Server B」とのアプリケーションメタデータのメタデータベクトルに対してより高い重みを設定することで、識別力がより高いメタデータの、全体距離への影響力を強調することができる。
【0060】
次に、ステップS305では、消費電力推定部1011は、ステップS304で計算した、推定対象のアプリケーションの、各過去アプリケーションに対する類似度が所定の類似度基準を満たすか否かを判定する。ここでの所定の類似度基準は、例えば消費電力推定システム160の管理者によって設定されてもよく、既存の統計的手法によって定められてもよい。一例として、類似度の尺度が上述したユークリッド距離の場合、ここでの所定の類似度基準は、距離の上限を指定してもよい。従って、この距離の上限を下回る値は、類似度基準を満たすとみなされ、この距離の上限を超える値は、類似度基準を満たさないとみなされる。
ステップS304で計算した類似度が所定の類似度基準を満たす場合、本処理はステップS306へ進み、ステップS304で計算した類似度が所定の類似度基準を満たさない場合、本処理はステップS307へ進む。
【0061】
次に、ステップS306では、消費電力推定部1011は、所定の類似度基準を満たした過去アプリケーションのタイプを一意に識別するアプリケーションタイプ識別子を所定のメモリ領域に保存する。所定の類似度基準を満たした過去アプリケーションが複数あった場合、消費電力推定部1011は、それぞれの過去アプリケーションのアプリケーションタイプ識別子及び計算した類似度を保存する。以下では、推定対象のアプリケーションとの類似度基準を満たした過去アプリケーションを「類似アプリケーション」という。
【0062】
次に、ステップS307では、推定対象のアプリケーションの、過去アプリケーションに対する類似度の計算が全ての過去アプリケーションについて完了した後、消費電力推定部1011は、所定の類似度基準を満たす過去アプリケーション(つまり、推定対象のアプリケーションとの類似アプリケーション)が1つ以上あったか否かを判定する。類似アプリケーションが存在すると判定した場合、本処理はステップS308へ進み、類似アプリケーションが存在しないと判定した場合、本処理はステップS309へ進む。
【0063】
ステップS308では、類似アプリケーションが存在する場合、消費電力推定部1011は、ステップS306でアプリケーションタイプ識別子及び類似度を保存した類似アプリケーションの中から、類似度が最も高い類似アプリケーションを選択する。その後、消費電力推定部1011は、上述したアプリケーション消費電力データベース1016を参照し、選択した類似アプリケーションの消費電力の情報を上述したアプリケーション消費電力データベース1016から取得し、取得した類似アプリケーションの消費電力の情報を、推定対象のアプリケーションの第1の消費電力推定結果として実行管理部1013へ出力する。ここでの第1の消費電力推定結果は、例えば、推定対象のアプリケーションの消費電力の平均値の推定や、推定対象のアプリケーションの消費電力の最大値等の情報を含んでもよい。
【0064】
ステップS309では、類似アプリケーションが存在しない場合、消費電力推定部1011は、アプリケーション消費電力データベース1016に格納されている全ての過去アプリケーションの消費電力の平均値を計算し、計算した消費電力の平均値を第1の消費電力推定結果として実行管理部1013へ出力する。
【0065】
このように、推定対象のアプリケーションと所定の類似度基準を満たす過去アプリケーションの消費電力の情報を用いることで、推定対象のアプリケーションの消費電力を正確に推定する第1の消費電力推定結果を生成することができる。また、その後、上述した実行管理部1013は、この第1の消費電力推定結果に基づいて、推定対象のアプリケーションの適切な配置先となるノードクラスターをノードクラスター3010、3020...30N0の中から判定することができる。配置先を判定した後、実行管理部1013は、推定対象のアプリケーションの配置を要求する配置指示を、判定したノードクラスターのマスターノードに送信し、推定対象のアプリケーションを当該ノードクラスターに配置する。
【0066】
次に、図4を参照して、本開示の実施形態に係る過去アプリケーションメタデータデータベースの構成について説明する。
【0067】
図4は、本開示の実施形態に係るメタデータデータベース1014の構成例を示す図である。上述したように、メタデータデータベース1014は、ノードクラスター3010、3020...30N0によって実行されるアプリケーション(例えば、過去にノードクラスターに配置された過去アプリケーション)に関するメタデータを有するメタデータテーブルを格納するデータベースである。メタデータデータベース1014において、ノードクラスター3010、3020...30N0毎に、専用のメタデータテーブル410、420、4N0が存在する。例えば、ノードクラスター3010に対応するメタデータテーブル410が存在し、ノードクラスター3020に対応するメタデータテーブル420が存在し、ノードクラスター30N0に対応するメタデータテーブル4N0が存在する。
【0068】
一例として、メタデータテーブル410は、ノードクラスター3010上で実行されたことのある過去アプリケーションのアプリケーションメタデータを格納する。
図4に示すように、メタデータテーブル410は、「app1」や「app2」等の特定の過去アプリケーションのタイプを一意に識別するためのアプリケーションタイプ識別子411と、「フロントエンド」や「バックエンド」等のアプリケーションのティア412と、「ClusterIP」や「NodePort」等のサービスタイプ413と、コンテナの数を示すレプリカ数414と、「Web Server A」や「Web Server B」」等のコンテナのイメージ名415とを格納してもよい。
【0069】
ここで、ティア412、サービスタイプ413及びイメージ名415等のテキスト形式の情報は、後述するワン・ホット・エンコーディングで得られるベクトル形式で格納される。より具体的には、メタデータテーブル410において、アプリケーションタイプ識別子が「app1」のアプリケーションについて、「フロントエンド」の値がベクトル形式では「1,0,...」と表現され、「NodePort」の値がベクトル形式では「1,0,0」と表現され、「Web Server A」の値が「1,0,...」と表現される。
【0070】
初期の段階では、各メタデータテーブル410、420、4N0は、ノードクラスター3010、3020...30N0で実行されたベンチマークアプリケーションのメタデータを格納してもよい。
その後、新たなアプリケーション(つまり、クライアント端末4000に依頼された推定対象のアプリケーション)が特定のノードクラスター上で実行されるとき、当該新たなアプリケーションと類似している(つまり、所定の類似度基準を満たす)過去アプリケーションが同じノードクラスター上で実行され、アプリケーションメタデータがメタデータデータベース1014において既に保存されている場合、新たなアプリケーションのメタデータはメタデータデータベース1014において保存されない(つまり、重複しているメタデータの記録を防ぐため)。一方、推定対象のアプリケーションと類似している(つまり、所定の類似度基準を満たす)過去アプリケーションが同じノードクラスター上で実行されていない場合、当該推定対象のアプリケーションのアプリケーションメタデータがメタデータデータベース1014において保存され、メタデータデータベース1014が更新される。ここでの類似度は、上述した類似度の計算法(ユークリッド距離等)によって求められてもよい。
【0071】
以上、説明の便宜上、メタデータテーブル410の構成について説明したが、メタデータテーブル420及びメタデータテーブル4N0も同様である。
【0072】
次に、図5及び図6を参照して、本開示の実施形態に係るアプリケーション消費電力データベースについて説明する。
【0073】
図5は、本開示の実施形態に係るアプリケーション消費電力データベース1016の構成例を示す図である。上述したように、アプリケーション消費電力データベース1016は、ノードクラスター3010、3020...30N0によって実行されるアプリケーションの消費電力の情報、当該アプリケーションのリソース使用量を示すアプリケーションプロフィールの保存先の情報及び当該アプリケーションの消費電力を推定するための電力モデルの保存先の情報を格納するデータベースである。
アプリケーション消費電力データベース1016において、ノードクラスター3010、3020...30N0毎に、専用のアプリケーション消費電力テーブル510、520、5N0が存在する。例えば、ノードクラスター3010に対応するアプリケーション消費電力テーブル510が存在し、ノードクラスター3020に対応するアプリケーション消費電力テーブル520が存在し、ノードクラスター30N0に対応するアプリケーション消費電力テーブル5N0が存在する。
【0074】
アプリケーション消費電力テーブル510は、ノードクラスター3010上で実行されたことのある過去アプリケーションの消費電力の情報、アプリケーションプロフィールの保存先の情報及び電力モデルの保存先の情報を格納する。
【0075】
図5に示すように、アプリケーション消費電力テーブル510は、「app1」や「app2」等の特定の過去アプリケーションのタイプを一意に識別するためのアプリケーションタイプ識別子511と、特定のアプリケーションの消費電力の平均値及び最大値を示す消費電力情報512と、特定のアプリケーションのアプリケーションプロフィールの保存先513と、特定のアプリケーションのアプリケーションプロフィールに基づいて構築された電力モデルの保存先514とを格納してもよい。
【0076】
一例として、図5に示すように、アプリケーション消費電力テーブル510において、アプリケーションタイプ識別子が「app1」のアプリケーションについて、「20W」の消費電力の平均値、「60W」の消費電力の最大値、「Wl1.csv」のアプリケーションプロフィールの保存先、及び「model1.pk」の電力モデルが格納されている。
【0077】
初期の段階では、アプリケーション消費電力テーブル510、520、5N0は、ノードクラスター3010、3020...30N0で実行されたベンチマークアプリケーションの消費電力の情報を格納してもよい。
その後、新たなアプリケーション(つまり、クライアント端末4000に依頼された推定対象のアプリケーション)が特定のノードクラスター上で実行されるとき、当該推定対象のアプリケーションと類似している(つまり、所定の類似度基準を満たす)過去アプリケーション(以下、類似アプリケーション)が同じノードクラスター上で実行され、電力モデルの保存先がアプリケーション消費電力データベース1016において既に保存されている場合、実行管理部1013は、当該類似アプリケーションのアプリケーションプロフィール(例えば、第1のアプリケーションプロフィール)に対応する電力モデル(例えば第1の電力モデル)を電力モデルデータベース1018から特定する。
【0078】
次に、実行管理部1013は、特定した電力モデルを用いて、推定対象の消費電力の推定を示す第2の消費電力推定結果を生成する。次に、実行管理部1013は、推定対象のアプリケーションを配置先ノード上で実行した場合の実際の消費電力を示す消費電力計測値と、推定対象のアプリケーションを配置先ノード上で実行した場合の実際のリソース使用量を示すリソース使用量計測値(プロセッサ使用量、メモリ使用量、ストレージ使用量、ネットワーク使用量等のリソース使用量を計測した値)を収集する。次に、消費電力計測値と第2の消費電力推定結果との乖離度が所定の乖離度基準を満たす場合、実行管理部1013は、類似アプリケーションのアプリケーションプロフィールを収集したリソース使用量計測値に基づいて更新し、第1の電力モデルを、更新した第1のアプリケーションプロフィールと、消費電力計測値とに基づいて更新する。
これにより、過去アプリケーションの電力モデルに基づいて推定される消費電力が、推定対象のアプリケーションを配置先ノード上で実行した場合の実際の消費電力に合わない場合、当該過去アプリケーションのアプリケーションプロフィールや電力モデルを実際に計測した情報に基づいて更新することで、電力モデルの精度を向上させることができる。
【0079】
ここでの「乖離度」とは、実際に計算した値(例えば、消費電力計測値)と、電力モデルで推定した値(例えば、第2の消費電力推定結果)との差分を意味する。また、所定の乖離度基準は、管理者に予め設定される閾値であってもよく、統計的手段によって自動的に定められた閾値であってもよい。
【0080】
なお、上述した消費電力推定方法300によって生成され、推定対象のアプリケーションの配置先となるノードの判定に用いられる第1の消費電力推定結果は、類似アプリケーションの消費電力の平均値及び消費電力の最大値等の情報を含むのに対して、電力モデルに基づいて生成される第2の消費電力推定結果は、推定対象のアプリケーションによって使用されるリソース使用量を考慮した消費電力の予測であるため、第1の消費電力推定結果より細かな推定を示すことができる。
【0081】
一方、推定対象のアプリケーションと類似している過去アプリケーション(以下、類似アプリケーション)が同じノードクラスター上で実行されたことがない場合、実行管理部1013は、推定対象のアプリケーションを配置先ノード上で実行した場合の実際の消費電力を示す消費電力計測値と、推定対象のアプリケーションを配置先ノード上で実行した場合の実際のリソース使用量を示すリソース使用量計測値を収集し、リソース使用量計測値に基づいて推定対象のアプリケーションに対応する新たなアプリケーションプロフィール(例えば、第2のアプリケーションプロフィール)をアプリケーションプロフィールデータベース1017において作成する。推定対象のアプリケーションの第2のアプリケーションプロフィールは、推定対象のアプリケーションを実行した場合のプロセッサ使用量、メモリ使用量、ストレージ使用量、ネットワーク使用量を計測することで作成される。推定対象のアプリケーションの消費電力の情報は、実際に測定したノードクラスターの消費電力から、推定対象のアプリケーション以外に当該ノードクラスター上で実行されている他のアプリケーションの消費電力を引くことで得られ、当該ノードクラスターに対応するアプリケーション消費電力テーブルに格納される。
【0082】
次に、実行管理部1013は、作成した第2のアプリケーションプロフィールと、消費電力計測値とに基づいて、推定対象のアプリケーションに対応する新たな電力モデル(第2の電力モデル)を構築し、アプリケーション消費電力データベース1016に格納する。より具体的には、実行管理部1013は、プロセッサ使用量、メモリ使用量、ストレージ使用量、及びネットワーク使用量等のリソース使用量計測値を独立変数とし、消費電力計測値を従属変数とした回帰モデルを、推定対象のアプリケーションに対応する第2の電力モデルとして構築してもよい。
これにより、推定対象のアプリケーションと類似している過去アプリケーションがない場合、当該推定対象のアプリケーションに対応する新たなアプリケーションプロフィール及び電力モデルを作成することができる。このように作成したアプリケーションプロフィール及び電力モデルを用いることで、推定対象のアプリケーションのリソース使用量を考慮した消費電力を正確に推定することができる。
【0083】
以上、説明の便宜上、アプリケーション消費電力テーブル510の構成について説明したが、アプリケーション消費電力テーブル520及びアプリケーション消費電力テーブル5N0も同様である。
【0084】
図6は、本開示の実施形態に係るアプリケーションプロフィールデータベース1017の構成例を示す図である。上述したように、アプリケーションプロフィールデータベース1017は、アプリケーションのリソース使用量を示すアプリケーションプロフィールの情報を格納するデータベースである。アプリケーションプロフィールデータベース1017において、過去アプリケーション毎に、専用のアプリケーションプロフィール610、620、6N0が存在する。これらのアプリケーションプロフィール610、620、6N0は、例えばCSV(comma separated variable)ファイルであってもよい。
【0085】
図6に示すように、アプリケーションプロフィール610は、例えば「wl1」等の特定のアプリケーションプロフィール識別子について、特定のリソース使用量の測定が行われた時刻611、アプリケーションによるCPU使用量612(millicpu(m))、アプリケーションによるメモリ使用量613(メビバイト(Mi))、アプリケーションによるストレージ使用量614(キロバイト(kB))、アプリケーションによるネットワーク使用量615(キロバイト(kB))、及び消費電力616(ワット(W))を格納してもよい。対象のアプリケーションがノード上で単独で実行されている場合、この消費電力616は、ノード全体の消費電力値として測定されてもよく、同一のノード上で複数のアプリケーションが実行されている場合、消費電力616は、電力モデルに基づいて推定される消費電力値としてもよい。
【0086】
一例として、アプリケーションプロフィール610において、特定のアプリケーションについて、「20m」のCPU使用量、「10Miのメモリ使用量、「12kB」のストレージ使用量、「0kB」のネットワーク使用量、及び「5W」の消費電力が時刻「123005」で測定されたことを示す。
【0087】
以上、説明の便宜上、アプリケーションプロフィール610の構成について説明したが、アプリケーションプロフィール620及びアプリケーションプロフィール6N0も同様である。
【0088】
次に、図7を参照して、本開示の実施形態に係るメタデータ変換の一例について説明する。
【0089】
本開示の実施形態に係るメタデータ変換700の一例を示すフローチャートである。上述したように、アプリケーションメタデータの中には、アプリケーションリソースを数値で表現する数値メタデータに加えて、コンテナイメージ名、サービスタイプラベル等のアプリケーションリソースをテキストで表現するテキストメタデータが存在する場合がある。この場合、推定対象のアプリケーションと過去アプリケーションとのメタデータの比較をより容易に行うためには、テキスト形式のメタデータを、本開示の実施形態に係るメタデータ変換700により、ベクトル形式に変換することが望ましい。
図7は、本開示の実施形態に係るメタデータ変換700の流れを示す図である。
【0090】
上述したように、消費電力推定部1011がクライアント端末4000から受信するアプリケーションマニフェスト705は、例えばアプリケーションリソースの仕様を指定するYAMLファイルであってもよい。上述したように、このアプリケーションリソースの仕様は、当該アプリケーションのアプリケーションメタデータである。また、アプリケーションメタデータは、数値から構成される数値メタデータ710と、テキストから構成されるテキストメタデータ720との2種類を含んでもよい。
【0091】
数値メタデータ710は、アプリケーションリソースの仕様を数値で示すメタデータである。例えば、図7に示すように、数値メタデータ710は、アプリケーションのレプリカ数が「4」、プロセッサ使用量が「0.25%」、メモリの使用量が「64Mi」、優先順位が「1000」であることを示してもよい。この数値メタデータ710は、既に数値で表現されているため、これらの数値から構成した数値メタデータベクトル712(4,0.25,64,1000)として表現し、メタデータデータベース1014に格納することができる。
【0092】
テキストメタデータ720は、アプリケーションリソースの仕様をテキストで示すメタデータである。また、テキストメタデータ720は、アプリケーションリソースの仕様を所定の固定テキスト値(つまり、キーワード)で示すキーワードメタデータ730と、アプリケーションリソースの仕様を自由に入力可能なテキストで示す非構造化テキストメタデータ721との2種類を含んでもよい。
【0093】
キーワードメタデータ730は、メタデータ変換テーブルデータベース1015におけるキーワードメタデータ変換テーブル800を参照し、ワン・ホット・エンコーディングを行うことで、ベクトル形式に変換することができる。ワン・ホット・エンコーディングを行うことで得られたベクトルは、1つを除く全ての要素が「0」に設定されたベクトルである。「0」でない要素は「1」に設定される。値が「1」のベクトル内の位置は、テキスト値に対して一意であり、ベクトルのサイズは、一意のテキスト値の数に等しい。一例として、図7に示すキーワードメタデータ730における「ClusterIP」のサービスタイプは、ベクトル形式では、「0,1,0」と表現され、「Web Server B」のイメージは、ベクトル形式では、「0,1,...」と表現される。
【0094】
一方、非構造化テキストメタデータ721におけるテキストデータは、例えばユーザに自由に入力されるテキスト情報であるため、同じ意味を有していても、表記や呼び名の相違によるばらつきが生じることがある。例えば、「FE」、「フロントエンド」及び「ユーザ向け」との値は全て、表記が異なるが、当該アプリケーションがフロントエンドサービスであることを意味する情報である。同様に、「dev」及び「development」の値は全て、当該アプリケーションが開発中であることを意味する情報である。そこで、このようなばらつきが存在する非構造化テキストメタデータを、一貫してベクトル形式に変換するためには、訓練済みのニューラルネットワークによる分類手法722を用いることが望ましい。非構造化テキストメタデータ721を、分類手法722によって処理することにより、同じ概念を意味するテキスト情報が全て同じカテゴリーに分類した、分類済み非構造化テキストメタデータ723を得ることができる。
その後、このように得られた分類済み非構造化テキストメタデータ723は、メタデータ変換テーブルデータベース1015における非構造化テキストメタデータ変換テーブル900を参照し、ワン・ホット・エンコーディングを行うことで、ベクトル形式に変換することができる。一例として、図8に示す分類済み非構造化テキストメタデータ723におけるティアの値は、ベクトル形式では「1,0,0,...」と表現され、ネームスペースの値は、ベクトル形式では「0,1,0,...」と表現される。
【0095】
以上説明したメタデータ変換700によれば、アプリケーションメタデータをベクトル形式に変換し、上述したメタデータデータベース1014に格納することができる。また、これにより、全てのメタデータをベクトル形式で表現することができるため、推定対象のアプリケーションと過去アプリケーションとのメタデータの比較をメタデータベクトル同士で行うことが可能となり、推定対象のアプリケーションと過去アプリケーションとの類似度を容易に計算することができる。
【0096】
上述したメタデータ変換700において、テキスト形式のメタデータをベクトル形式に変換するためにはメタデータ変換テーブルデータベースに格納されるメタデータ変換テーブルが用いられる。したがって、次に、図8及び図9を参照して、本開示の実施形態に係るメタデータ変換テーブルデータベースについて説明する。
【0097】
図8は、本開示の実施形態に係るメタデータ変換テーブルデータベース1015におけるキーワードメタデータ変換テーブル800の一例を示す図である。キーワードメタデータ変換テーブル800は、テキストメタデータにおける特定のキーワードを所定のベクトルに対応付けることで、キーワードメタデータをベクトル形式に変換するためのテーブルである。
【0098】
図8に示すように、キーワードメタデータ変換テーブル800は、「サービスタイプ」や「イメージ名」等のアプリケーションリソースの名称を示すキー811、「Nodeport」や「Web Server A」等のアプリケーションリソースの可能な値812、及びこれらの値812に対応するベクトル形式813の情報を格納する。
キーワードメタデータ変換テーブル800を用いることで、アプリケーションメタデータにおける特定のキーワードをベクトル形式に変換することができる。一例として、「サービスタイプ」とのアプリケーションリソースの値が「Nodeport」の場合、キーワードメタデータ変換テーブル800を用いることで、「Nodeport」との値を[1,0,0]のベクトル形式に変換することができる。
【0099】
図9は、本開示の実施形態に係るメタデータ変換テーブルデータベース1015における非構造化テキストメタデータ変換テーブル900の一例を示す図である。非構造化テキストメタデータ変換テーブル900は、例えばユーザに自由に入力された非構造化テキスト情報を所定のベクトルに対応付けることで、非構造化テキストメタデータをベクトル形式に変換するためのテーブルである。
【0100】
図9に示すように、非構造化テキストメタデータ変換テーブル900は、「ティア」や「ネームスペース」等のアプリケーションリソースの名称を示すキー911、「frontend」や「development」等のアプリケーションリソースの可能な値912、これらの値912が上述したニューラルネットワークベースの分類手法によって分類される推定カテゴリー913及びこれらの値912に対応するベクトル形式914の情報を格納する。
非構造化テキストメタデータ変換テーブル900を用いることで、アプリケーションメタデータにおける、非構造化テキストメタデータをベクトル形式に変換することができる。一例として、「ティア」とのアプリケーションリソースの値が「backend」の場合、非構造化テキストメタデータ変換テーブル900を用いることで、「backend」との値を[0,1,0,...]のベクトル形式に変換することができる。
なお、ここでは、ベクトル形式に変換する前に、アプリケーションメタデータにおける非構造化テキストメタデータは、既にニューラルネットワークベースの分類手法によって特定のカテゴリーに分類されたことを前提とする。
【0101】
初期段階では、上述したメタデータ変換テーブルデータベース1015におけるキーワードメタデータ変換テーブル800及び非構造化テキストメタデータ変換テーブル900は、ベンチマークアプリケーションに関するアプリケーションメタデータに基づいて構成される。
その後、新たなアプリケーション(例えば、依頼されたアプリケーション)が特定のノードクラスター上で実行されるとき、キーワードメタデータ変換テーブル800及び非構造化テキストメタデータ変換テーブル900は、当該新たなアプリケーションのアプリケーションマニフェストから抽出されたアプリケーションメタデータに基づいて更新される。
【0102】
以上説明した消費電力推定手段によれば、分散コンピューティング環境のノードに配置する対象のアプリケーションと、過去に当該ノードで実行されたアプリケーションとの類似度をそれぞれのアプリケーションのメタデータに基づいて計算し、所定の類似度基準を満たす過去のアプリケーションについて計測した消費電力の情報を用いることで、多様なアプリケーションの消費電力を正確に推定することが可能となる。
【0103】
このように生成したアプリケーションの消費電力推定に基づいて、当該アプリケーションを適切なノードクラスターに配置することができる。また、アプリケーションを適切なノードクラスターに配置した後、アプリケーションの実際の消費電力を計測し分析することで、アプリケーションのリソース使用量を考慮した消費電力を推定する電力モデルの精度を評価することができる。評価の結果、電力モデルの精度が所定の基準を満たさない場合(つまり、電力モデルの推定が実際に計測した値から乖離している場合)、アプリケーションの実際の消費電力の情報に基づいて電力モデルを更新することで、電力モデルの精度を向上させることができる。
【0104】
一方、推定対象のアプリケーションと所定の類似度基準を満たす過去アプリケーションがない場合、推定対象のアプリケーションの消費電力推定は、当該ノードクラスターにおいて実行された過去アプリケーションの消費電力の平均値に基づいて生成される。その後、推定対象のアプリケーションは、この消費電力推定に基づいて適切なノードクラスターに配置される。また、配置したアプリケーションの実際の消費電力を計測し分析することで、当該アプリケーションに対応する新たな電力モデルを構築することができる。
【0105】
このように、時間が経過するにつれて、ノードクラスターは様々なアプリケーションをホストし、ホストした各アプリケーションについて既存の電力モデルを更新したり、新たな電力モデルを作成したりすることにより、多様なアプリケーションに対応する電力モデルのレパートリーが構築されるため、多様なアプリケーションについて消費電力を正確に推定することが可能となる。
【0106】
以上、本発明の実施の形態について説明したが、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0107】
160 消費電力推定システム
1000 クラスター管理装置
1010 消費電力推定装置
1011 消費電力推定部
1013 実行管理部
1014 メタデータデータベース
1015 メタデータ変換テーブルデータベース
1016 アプリケーション消費電力データベース
1017 アプリケーションプロフィールデータベース
1018 電力モデルデータベース
1020 入出力装置
1030 プロセッサ
1040 メモリ
1050 ネットワークインターフェース
2000 通信ネットワーク
3010、3020...30N0 ノードクラスター
3011 マスターノード
3012、3013、301N スレーブノード
4000 クライアント端末
図1
図2
図3
図4
図5
図6
図7
図8
図9