JP2023078639A - 情報処理装置及び情報処理方法 - Google Patents
情報処理装置及び情報処理方法 Download PDFInfo
- Publication number
- JP2023078639A JP2023078639A JP2021191864A JP2021191864A JP2023078639A JP 2023078639 A JP2023078639 A JP 2023078639A JP 2021191864 A JP2021191864 A JP 2021191864A JP 2021191864 A JP2021191864 A JP 2021191864A JP 2023078639 A JP2023078639 A JP 2023078639A
- Authority
- JP
- Japan
- Prior art keywords
- application
- information
- information processing
- service
- estimation model
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims description 55
- 238000003672 processing method Methods 0.000 title claims description 12
- 238000010801 machine learning Methods 0.000 claims abstract description 73
- 238000012549 training Methods 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims description 94
- 238000005457 optimization Methods 0.000 claims description 71
- 238000013528 artificial neural network Methods 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 74
- 230000008569 process Effects 0.000 description 49
- 238000004364 calculation method Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 14
- 238000013468 resource allocation Methods 0.000 description 10
- 230000000052 comparative effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000002945 steepest descent method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】マイクロサービスアーキテクチャで構築されたアプリケーションのサービス品質の目標に応じて、使用するリソースの量を最適化可能な技術を提供する。【解決手段】本開示の一側面に係る情報処理装置は、訓練データ及び正解ラベルの組み合わせによりそれぞれ構成される複数のデータセットを取得し、取得された複数のデータセットを使用して、推定モデルの機械学習を実施する。訓練データは、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び各コンポーネントに使用されるリソースについてのリソース使用情報を含む。正解ラベルは、アプリケーションのサービス品質の真値を示す。機械学習は、各データセットについて、訓練データに基づき算出されるサービス品質の推定値が正解ラベルにより示される真値に適合するように推定モデルを訓練することにより構成される。【選択図】図1A
Description
本開示は、マイクロサービスアーキテクチャで構築されたアプリケーションに使用するリソースの量を最適化する技術に関する。
近年、アプリケーションシステムの開発及び運用において、マイクロサービスアーキテクチャを採用する例が増えてきている。マイクロサービスアーキテクチャは、サービスを構成する各要素をマイクロサービスと呼ばれる独立したコンポーネントとして実装する手法である。非特許文献1では、個々のコンポーネントによるリソースの使用状況(例えば、プロセッサ/メモリの使用率)に目標値を設けて、その目標値に使用状況が近付くようにリソースの量(具体的には、コンテナを展開するポッドの数)を調整する方法が提案されている。
"Horizontal Pod Autoscaler|Kubernetes"、[online]、[令和3年11月5日検索]、インターネット<URL: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/>
本開示の目的は、マイクロサービスアーキテクチャで構築されたアプリケーションのサービス品質の目標に応じて、使用するリソースの量を最適化可能な技術を提供することである。
本開示の第1の態様に係る情報処理装置は、訓練データ及び正解ラベルの組み合わせによりそれぞれ構成される複数のデータセットを取得することと、取得された複数のデータセットを使用して、推定モデルの機械学習を実施することと、を実行するように構成された制御部を備える。前記訓練データは、学習対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び前記アプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含む。前記正解ラベルは、前記アプリケーションのサービス品質の真値を示すように構成される。前記機械学習は、前記各データセットについて、前記推定モデルにより前記訓練データに基づき算出される前記サービス品質の推定値が前記正解ラベルにより示される真値に適合するように前記推定モデルを訓練することにより構成される。
本開示の第2の態様に係る情報処理装置は、推定対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び前記アプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含む対象データを取得することと、訓練済みの推定モデルを使用することで、取得された前記対象データに基づき、前記アプリケーションのサービス品質の推定値を算出することと、算出された前記サービス品質の推定値が適正に目標を満たさない場合に、所定の最適化手法により、前記訓練済みの推定モデルにより算出される前記サービス品質の推定値に基づき前記目標に対して前記リソースの量を最適化することと、前記最適化の結果に従って、前記各コンポーネントに使用される前記リソースの量を調整することと、を実行するように構成された制御部を備える。
本開示の第3の態様に係る情報処理方法は、コンピュータによって実行される情報処理方法であって、推定対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び前記アプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含む対象データを取得することと、訓練済みの推定モデルを使用することで、取得された前記対象データに基づき、前記アプリケーションのサービス品質の推定値を算出することと、算出された前記サービス品質の推定値が適正に目標を満たさない場合に、所定の最適化手法により、前記訓練済みの推定モデルにより算出される前記サービス品質の推定値に基づき前記目標に対して前記リソースの量を最適化することと、前記最適化の結果に従って、前記各コンポーネントに使用される前記リソースの量を調整することと、を含む。
本開示によれば、マイクロサービスアーキテクチャで構築されたアプリケーションのサービス品質の目標に応じて、使用するリソースの量を最適化することができる。
非特許文献1で提案される方法によれば、コンポーネント(マイクロサービス)毎に使用されるリソースの量を目標値に近付くように調整することで、アプリケーション全体のサービス品質(Quality of Service)を担保することができる。例えば、個々のコンポーネントに使用されるポッド数を増やすことで、アプリケーション全体のサービス品質の向上を図ることができる。
しかしながら、コンポーネントの数が増え、アプリケーションの構成が複雑になればなるほど、各コンポーネントがアプリケーション全体のサービス品質に与える影響が不明となる。また、各コンポーネントは、アプリケーションのサービス品質に関して異なる特徴曲線を持ち得る。すなわち、少量のリソースの割り当てでサービス品質を改善可能なコンポーネントも存在すれば、多くのリソースを割り当てないとサービス品質を改善できないコンポーネントも存在し得る。
したがって、アプリケーション全体のサービス品質が適正に目標を満たすように、コンポーネント毎に目標値を最適に設定するのは困難である。また、目標値を一律に決定してしまうと、コンポーネントによっては、無駄なリソースの配備が生まれてしまう。つまり、従来の方法では、マイクロサービスアーキテクチャで構築されたアプリケーション全体のサービス品質の目標に応じて、各コンポーネントに使用するリソースの量を最適化することは困難である。
これに対して、本開示の第1の態様に係る情報処理装置は、訓練データ及び正解ラベルの組み合わせによりそれぞれ構成される複数のデータセットを取得することと、取得された複数のデータセットを使用して、推定モデルの機械学習を実施することと、を実行するように構成された制御部を備える。訓練データは、学習対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び当該アプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含む。正解ラベルは、アプリケーションのサービス品質の真値を示すように構成される。機械学習は、各データセットについて、推定モデルにより訓練データに基づき算出されるサービス品質の推定値が正解ラベルにより示される真値に適合するように推定モデルを訓練することにより構成される。
本開示の第2の態様に係る情報処理装置は制御部を備える。制御部は、推定対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及びアプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含む対象データを取得することと、訓練済みの推定モデルを使用することで、取得された対象データに基づき、アプリケーションのサービス品質の推定値を算出することと、算出されたサービス品質の推定値が適正に目標を満たさない場合に、所定の最適化手法により、前記訓練済みの推定モデルにより算出される前記サービス品質の推定値に基づき前記目標に対して前記リソースの量を最適化することと、最適化の結果に従って、各コンポーネントに使用されるリソースの量を調整することと、を実行するように構成される。
本開示の第1の態様に係る情報処理装置によれば、ワークロード情報及びリソースについてのリソース使用情報からアプリケーションのサービス品質を推定する能力を獲得した訓練済みの推定モデルを生成することができる。この訓練済みの推定モデルによれば、ワークロードの状態及び各コンポーネントへのリソースの配備が与えられると、その条件におけるアプリケーション全体のサービス品質を推定することができる。つまり、この訓練済みの推定モデルを使用すれば、ワークロードの状態に応じて、各コンポーネントへのリソースの配備とアプリケーションのサービス品質との間の対応関係を推測することができる。したがって、サービス品質の目標を与えることで、任意の最適化手法により、その目標に応じた各コンポーネントに対するリソースの最適な量を導出することができる。
よって、本開示の第2の態様に係る情報処理装置によれば、この訓練済みの推定モデルを使用することで、マイクロサービスアーキテクチャで構築されたアプリケーションのサービス品質の目標に応じて、各コンポーネントに使用するリソースの量を最適化することができる。その結果、アプリケーションのサービス品質の維持にかかるコスト(例えば、消費電力等)の低減を図ることができる。本開示の第1の態様に係る情報処理装置によれば、そのようなリソースの割り当ての最適化に使用可能な訓練済みの推定モデルを生成することができる。
以下、本開示の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本開
示の例示に過ぎない。本開示の範囲を逸脱することなく種々の改良又は変形が行われてよい。本開示の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
示の例示に過ぎない。本開示の範囲を逸脱することなく種々の改良又は変形が行われてよい。本開示の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
[1 適用例]
図1Aは、本開示を適用した場面の一例を模式的に例示する。図1Bは、マイクロサービスアーキテクチャで構築されるアプリケーションAPの一例を模式的に示す。
図1Aは、本開示を適用した場面の一例を模式的に例示する。図1Bは、マイクロサービスアーキテクチャで構築されるアプリケーションAPの一例を模式的に示す。
本実施形態に係るサーバ装置1は、アプリケーションAPを実行すると共に、推定モデル5の機械学習を実施し、生成された訓練済みの推定モデル5を使用して、リソース配備の最適化を遂行するように構成される1台以上のコンピュータである。サーバ装置1は、上記第1の態様及び第2の態様の情報処理装置の一例である。
アプリケーションAPは、マイクロサービスアーキテクチャで構築され、複数のコンポーネントASを含む。各コンポーネントASは、アプリケーションプロセスを個別に実行するように構成される。これにより、各コンポーネントASは、マイクロサービスを個別に提供する。各コンポーネントASは、アプリケーションAPにより提供する情報処理、サービス設計、仕様等に応じて、フロントエンドからバックエンドにかけて接続関係を適宜有してよい。フロントエンドからバックエンドまでの経路をサービスチェインと称してよい。各コンポーネントAS間では、データの受け渡しが適宜行われてよい。
各コンポーネントASはコンテナ化されてよい。すなわち、各コンポーネントASは、コンテナ上で実行されてよい。コンテナは、1つ以上のコンポーネントを含むように構成されてよい。マイクロサービスアーキテクチャで構築されたアプリケーションAPの運用には任意のソフトウェアが用いられてよい。一例として、Kubernetes等の公知のソフトウェアが用いられてよい。
運用の一例として、サーバ装置1では、1つ以上のクラスタKが構築されてよい。クラスタKは、マスタKM及び1つ以上のノードKNを備え、アプリケーションAPを実行するように構成される。マスタKMは、オペレータ等により設定された内容を維持するようにノードKNに指示を与えることで、クラスタKの管理を行うように構成される。ノードKNは、各コンポーネントASのアプリケーションプロセスの実行環境を提供する。ノードKNは、1つ以上のポッドを実行するように構成されてよく、ポッドは、1つ以上のコンテナKCを展開するように構成されてよい。マスタKM及びノードKNは、物理マシン又は仮想マシンにより構成されてよい。
図1Bに示されるとおり、アプリケーションAPを構成する各コンポーネントASは、任意のノードKN及び任意のコンテナKC上で実行されてよい。各コンポーネントASを実行するコンテナKCの数はコンポーネントAS毎に決定されてよい。また、1つのノードKN上で展開されるコンテナKCの数は適宜決定されてよく、1つのコンテナKC上で実行されるコンポーネントASの数も適宜決定されてよい。
アプリケーションAPは、マイクロサービスアーキテクチャで構築されていればよく、その内容は、特に限定されなくてよい。アプリケーションAPにより実行される情報処理及び提供されるサービスは、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。サーバ装置1の名称は、アプリケーションAPにより実行される情報処理の内容に応じて適宜変更されてよい。
図1Aの例では、アプリケーションAPは、ネットワークを介して1つ以上の端末Tに対して情報処理を提供する。一例では、端末Tは、車両に搭載される車載装置であってよい。車載装置は、専用に設計されたコンピュータであってもよいし、或いはスマートフォン等の可搬性を有する汎用のコンピュータであってもよい。アプリケーションAPは、車載装置から得られるデータを解析して交通状況を解析する、自動運転の指示を決定する等の車両の運行に関する情報処理を実行するように構成されてよい。他の一例では、端末Tは、スマートフォン、その他携帯端末、タブレットPC(personal computer)、汎用の
PC等であってよい。アプリケーションAPは、例えば、ソーシャルネットワーキングサービス、EC(electronic commerce)サイト、コンテンツ(例えば、音楽、動画、ゲー
ム等)の配信サービス等を提供するウェブアプリケーションであってよい。
PC等であってよい。アプリケーションAPは、例えば、ソーシャルネットワーキングサービス、EC(electronic commerce)サイト、コンテンツ(例えば、音楽、動画、ゲー
ム等)の配信サービス等を提供するウェブアプリケーションであってよい。
(学習段階)
学習段階において、本実施形態に係るサーバ装置1は、複数のデータセット3を取得する。そして、サーバ装置1は、取得された複数のデータセット3を使用して、推定モデル5の機械学習を実施する。
学習段階において、本実施形態に係るサーバ装置1は、複数のデータセット3を取得する。そして、サーバ装置1は、取得された複数のデータセット3を使用して、推定モデル5の機械学習を実施する。
各データセット3は、訓練データ31及び正解ラベル33の組み合わせにより構成される。訓練データ31は、ワークロード情報311、リソース使用情報313及びサービスチェイン情報315を含むように構成される。ワークロード情報311は、学習対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロードの状態を示すように構成される。リソース使用情報313は、当該アプリケーションに含まれる各コンポーネントに対するリソースの使用状況(各コンポーネントに使用されるリソースの量)を示すように構成される。サービスチェイン情報315は、当該アプリケーションに含まれる各コンポーネントの接続関係(例えば、図1B)を示すように構成される。正解ラベル33は、対応する訓練データ31により示される状況(その時点又は未来の時点)におけるアプリケーションのサービス品質の真値を示すように構成される。
なお、この機械学習に使用されるデータセット3を収集する対象となるアプリケーションを「学習対象アプリケーション」とも称する。本実施形態に係るアプリケーションAPは、学習対象アプリケーションの一例である。各データセット3は、クラスタKによるアプリケーションAPの実行実績から収集されてよい。
機械学習は、各データセット3について、推定モデル5により訓練データ31に基づき算出されるサービス品質の推定値が正解ラベル33により示される真値に適合するように推定モデル5を訓練することにより構成される。この機械学習の処理により、アプリケーションに対するワークロード情報、リソースについてのリソース使用情報、及びサービスチェイン情報から当該アプリケーションのサービス品質を推定する能力を獲得した訓練済みの推定モデル5を生成することができる。生成された訓練済みの推定モデル5は、推論段階で使用される。なお、推定することは、回帰すること又は識別することにより構成されてよい。推定値は、連続値又は離散値により構成されてよい。推定することは、予測することを含んでよい。この機械学習の処理は、クラスタK上で運用されるアプリケーションAPに対してオフラインで実行されてよい。
(推論段階)
推論段階において、本実施形態に係るサーバ装置1は、ワークロード情報41、リソース使用情報43、及びサービスチェイン情報45を含む対象データ4を取得する。ワークロード情報41は、推定対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロードの状態を示すように構成される。リソース使用情報43は、当該アプリケーションに含まれる各コンポーネントに対するリソースの使
用状況(各コンポーネントに使用されるリソースの量)を示すように構成される。サービスチェイン情報45は、当該アプリケーションに含まれる各コンポーネントの接続関係を示すように構成される。
推論段階において、本実施形態に係るサーバ装置1は、ワークロード情報41、リソース使用情報43、及びサービスチェイン情報45を含む対象データ4を取得する。ワークロード情報41は、推定対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロードの状態を示すように構成される。リソース使用情報43は、当該アプリケーションに含まれる各コンポーネントに対するリソースの使
用状況(各コンポーネントに使用されるリソースの量)を示すように構成される。サービスチェイン情報45は、当該アプリケーションに含まれる各コンポーネントの接続関係を示すように構成される。
サーバ装置1は、訓練済みの推定モデル5を使用することで、取得された対象データ4に基づき、当該アプリケーションのサービス品質の推定値を算出する。サーバ装置1は、算出されたサービス品質の推定値が目標(Target QoS)を満たすか否かを判定する。目標は、任意の方法(例えば、オペレータによる指示)で予め設定されてよい。算出されたサービス品質の推定値が適正に目標を満たさない場合、サーバ装置1は、所定の最適化手法によって、訓練済みの推定モデル5により算出されるサービス品質の推定値に基づき目標に対して各コンポーネントに使用されるリソースの量を最適化する。そして、サーバ装置1は、最適化の結果に従って、各コンポーネントに使用されるリソースの量を調整する。
なお、この訓練済みの推定モデル5を使用してサービス品質を推定し、推定結果に基づいてリソースの量を最適化する対象となるアプリケーションを「推定対象アプリケーション」とも称する。本実施形態に係るアプリケーションAPは、推定対象アプリケーションの一例でもある。サーバ装置1は、クラスタKによりアプリケーションAPを運用しながら、上記リソースの量を最適化する処理をオンラインで実行してよい。これにより、アプリケーションAPの実行に使用されるクラスタKのリソース(ノードKN、コンテナKC)の量を調整してよい。リソースは、例えば、プロセッサ・リソース、メモリ・リソース等の情報処理に使用される資源である。プロセッサは、実プロセッサ又は仮想プロセッサであってよい。メモリは、実メモリ又は仮想メモリであってよい。リソース量の調整は、例えば、ノードKN単位、ポッド単位、コンテナKC単位等の任意の単位で行われてよい。
(効果)
以上のとおり、本実施形態の推論段階におけるサーバ装置1の処理によれば、訓練済みの推定モデル5を使用することで、マイクロサービスアーキテクチャで構築されたアプリケーションAPのサービス品質の目標に応じて、各コンポーネントASに使用するリソースの量を最適化することができる。その結果、アプリケーションAPのサービス品質の維持にかかるコストの低減を図ることができる。本実施形態の学習段階におけるサーバ装置1の処理によれば、そのようなリソース配備の最適化に使用可能な訓練済みの推定モデル5を生成することができる。
以上のとおり、本実施形態の推論段階におけるサーバ装置1の処理によれば、訓練済みの推定モデル5を使用することで、マイクロサービスアーキテクチャで構築されたアプリケーションAPのサービス品質の目標に応じて、各コンポーネントASに使用するリソースの量を最適化することができる。その結果、アプリケーションAPのサービス品質の維持にかかるコストの低減を図ることができる。本実施形態の学習段階におけるサーバ装置1の処理によれば、そのようなリソース配備の最適化に使用可能な訓練済みの推定モデル5を生成することができる。
(その他)
サービスチェイン情報(315、45)は、各コンポーネントASの接続関係をグラフ形式で表現するように構成されてよい。グラフは、エッジ及びノードによりデータを表現する。各コンポーネントASは、エッジにより表現されてよく、各コンポーネントAS間の接続関係はノードで表現されてよい。グラフのデータ形式には、例えば、行列等の公知のデータ形式が用いられてよい。これに応じて、推定モデル5は、グラフニューラルネットワークを含むように構成されてよい。グラフニューラルネットワークの構造には、例えば、参考文献(Scarselli, Franco, et al、"The graph neural network model"、 IEEE transactions on neural networks 20.1 (2008): 61-80、[online]、[令和3年11月5日検索]、インターネット<URL: https://ieeexplore.ieee.org/abstract/document/4700287>)等で提案される公知の構造が用いられてよい。これにより、サービスチェイン情報により示される各コンポーネントASの接続関係をサービス品質の推定処理に適切に反映することができ、その結果、推定精度の向上を図ることができる。
サービスチェイン情報(315、45)は、各コンポーネントASの接続関係をグラフ形式で表現するように構成されてよい。グラフは、エッジ及びノードによりデータを表現する。各コンポーネントASは、エッジにより表現されてよく、各コンポーネントAS間の接続関係はノードで表現されてよい。グラフのデータ形式には、例えば、行列等の公知のデータ形式が用いられてよい。これに応じて、推定モデル5は、グラフニューラルネットワークを含むように構成されてよい。グラフニューラルネットワークの構造には、例えば、参考文献(Scarselli, Franco, et al、"The graph neural network model"、 IEEE transactions on neural networks 20.1 (2008): 61-80、[online]、[令和3年11月5日検索]、インターネット<URL: https://ieeexplore.ieee.org/abstract/document/4700287>)等で提案される公知の構造が用いられてよい。これにより、サービスチェイン情報により示される各コンポーネントASの接続関係をサービス品質の推定処理に適切に反映することができ、その結果、推定精度の向上を図ることができる。
サービス品質は、アプリケーションAPの遅延時間、実行時間、及び正常に処理された程度の少なくともいずれかに基づいて算定されてよい。遅延時間は、データ転送等の要求
からそれに対する返送までにかかる時間(レイテンシ)であってよい。一例として、遅延時間は、自動運転の指示等のリアルタイム処理におけるレイテンシであってよい。実行時間は、アプリケーションAP全体又は一部の処理にかかる時間であってよい。一例として、実行時間は、マップ系、リデュース系等のバッチ処理にかかる時間であってよい。正常に処理された程度は、アプリケーションAPの処理が正常に実行された程度を示すように適宜構成されてよい。正常に処理された程度は、エラーの発生した(正常に処理されなかった)程度により表現されてもよい。程度は、例えば、回数、比率等で表現されてよい。一例として、アプリケーションAPがHTTPアプリケーションである場合、正常に処理された程度は、ユーザ(端末T)からのHTTPリクエストを単位時間当たりに正常に処理して返信した比率により表現されてよい。これらによれば、サービス品質を適切に評価することができ、その結果、リソース量の最適化を適切に遂行することができる。
からそれに対する返送までにかかる時間(レイテンシ)であってよい。一例として、遅延時間は、自動運転の指示等のリアルタイム処理におけるレイテンシであってよい。実行時間は、アプリケーションAP全体又は一部の処理にかかる時間であってよい。一例として、実行時間は、マップ系、リデュース系等のバッチ処理にかかる時間であってよい。正常に処理された程度は、アプリケーションAPの処理が正常に実行された程度を示すように適宜構成されてよい。正常に処理された程度は、エラーの発生した(正常に処理されなかった)程度により表現されてもよい。程度は、例えば、回数、比率等で表現されてよい。一例として、アプリケーションAPがHTTPアプリケーションである場合、正常に処理された程度は、ユーザ(端末T)からのHTTPリクエストを単位時間当たりに正常に処理して返信した比率により表現されてよい。これらによれば、サービス品質を適切に評価することができ、その結果、リソース量の最適化を適切に遂行することができる。
ワークロード情報(311、41)は、アプリケーションAPに対するトランザクション量、ユーザからのメッセージ量、及びデータの転送量の少なくともいずれかを含むように構成されてよい。トランザクション量は、例えば、端末Tから受信するデータの量、端末Tからの要求される処理の量等により算定されてよい。メッセージ量は、例えば、端末Tからの要求の数等により算定されてよい。一例として、アプリケーションAPがHTTPアプリケーションである場合、メッセージ量は、HTTPリクエストの量であってよい。メッセージ量は、メッセージの総量で算定されてもよいし、API(Application Programming Interface)毎に算定されてもよい。データの転送量は、例えば、画像ファイル
等のデータを送受信する量により算定されてよい。これらによれば、ワークロードの状態を適切に表現することができ、その結果、リソース量の最適化を適切に遂行することができる。
等のデータを送受信する量により算定されてよい。これらによれば、ワークロードの状態を適切に表現することができ、その結果、リソース量の最適化を適切に遂行することができる。
リソース使用情報(313、43)は、アプリケーションAPに含まれる各コンポーネントASに割り当てられたプロセッサの使用量、メモリの使用量、及びネットワーク帯域の使用量の少なくともいずれかを含むように構成されてよい。プロセッサは、実プロセッサ又は仮想プロセッサであってよい。実プロセッサは、例えば、CPU(Central Processing Unit)、マイクロプロセッサ、FPGA(field-programmable gate array)、GPU(Graphics Processing Unit)等を含んでよい。メモリは、実メモリ又は仮想メモリであってよい。実メモリは、例えば、ストレージ(ハードディスクドライブ、ソリッドステートドライブ等)、RAM(Random Access Memory)、キャッシュメモリ(例えば、Last
Level Cache)等を含んでよい。一例として、メモリの使用量は、ストレージ/RAMに対する入出力量、キャッシュメモリの帯域幅、キャッシュメモリのキャパシティ量等により計測されてよい。ネットワーク帯域の使用量は、ネットワークを介したデータの入出力量により計測されてよい。各使用量は、任意の単位で表現されてよい。これらによれば、リソースの使用状況を適切に表現することができ、その結果、リソース量の最適化を適切に遂行することができる。
Level Cache)等を含んでよい。一例として、メモリの使用量は、ストレージ/RAMに対する入出力量、キャッシュメモリの帯域幅、キャッシュメモリのキャパシティ量等により計測されてよい。ネットワーク帯域の使用量は、ネットワークを介したデータの入出力量により計測されてよい。各使用量は、任意の単位で表現されてよい。これらによれば、リソースの使用状況を適切に表現することができ、その結果、リソース量の最適化を適切に遂行することができる。
なお、本実施形態では、学習対象アプリケーション及び推定対象アプリケーションは、アプリケーションAPで共通である。一例では、アプリケーションAPの構成が学習段階と推論段階とで一致していることで、学習対象アプリケーション及び推定対象アプリケーションは、互いに同一であってよい。しかしながら、学習対象アプリケーション及び推定対象アプリケーションは、必ずしも互いに同一でなければならない訳ではない。他の一例では、学習対象アプリケーション及び推定対象アプリケーションは互いに異なっていてもよい。例えば、学習段階及び推論段階でアプリケーションAPのコンポーネントASの構成が変更されることで、学習対象アプリケーション及び推定対象アプリケーションは互いに異なっていてもよい。或いは、学習対象アプリケーションと推定対象アプリケーションとは互いに別々のアプリケーション(例えば、互いに異なるサーバ装置で運用される別のアプリケーション)であってよい。この場合、学習対象アプリケーションのコンポーネン
ト構成と推定対象アプリケーションのコンポーネント構成は、互いに一致していてもよいし、或いは互いに異なっていてもよい。
ト構成と推定対象アプリケーションのコンポーネント構成は、互いに一致していてもよいし、或いは互いに異なっていてもよい。
また、本実施形態では、アプリケーションAP、推定モデル5の機械学習(訓練済みの推定モデル5の生成)、及び訓練済みの推定モデル5を使用したリソース配備の最適化の全ての処理をサーバ装置1が実行する。しかしながら、各処理は、必ずしも同一の装置で実行されなければならない訳ではない。各処理の少なくともいずれか又は少なくとも一部は、サーバ装置1以外のコンピュータで実行されてよい。一例として、アプリケーションAP、推定モデル5の機械学習、及び訓練済みの推定モデル5を使用したリソース配備の最適化の各処理は互いに異なる装置で実行されてよい。他の一例として、推定モデル5の機械学習及び訓練済みの推定モデル5を使用したリソース配備の最適化の処理は同一のサーバ装置で実行されてよく、アプリケーションAPは別のサーバ装置で実行されてよい。この場合、各サーバ装置は、1台以上のコンピュータにより構成されてよい。
また、本実施形態では、サーバ装置1は、複数のコンピュータで構成されてよい。この場合、アプリケーションAP、推定モデル5の機械学習、及び訓練済みの推定モデル5を使用したリソース配備の最適化の各処理は、少なくとも部分的に同一のコンピュータにより実行されてもよいし、或いは互いに異なるコンピュータで実行されてもよい。各処理を実行するコンピュータは適宜選択されてよい。
[2 構成例]
[ハードウェア構成例]
図2は、本実施形態に係るサーバ装置1のハードウェア構成の一例を模式的に示す。図2に示されるとおり、本実施形態に係るサーバ装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。
[ハードウェア構成例]
図2は、本実施形態に係るサーバ装置1のハードウェア構成の一例を模式的に示す。図2に示されるとおり、本実施形態に係るサーバ装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。
制御部11は、ハードウェアプロセッサであるCPU、RAM、ROM(Read Only Memory)、キャッシュメモリ等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。制御部11(CPU)は、プロセッサ・リソースの一例である。記憶部12は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部12は、メモリ・リソースの一例である。本実施形態では、記憶部12は、オペレーティングシステム80、プログラム81、学習結果データ125等の各種情報を記憶する。
オペレーティングシステム80は、サーバ装置1のハードウェアを制御するための基本的な機能を提供する。オペレーティングシステム80の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。プログラム81は、推定モデル5の機械学習の情報処理(後述の図6)及び訓練済みの推定モデル5を使用したリソース配備の最適化の情報処理(後述の図7)をサーバ装置1に実行させるためのプログラムである。プログラム81は、当該情報処理の一連の命令を含む。推定モデル5の機械学習の情報処理に関する命令部分及びリソース配備の最適化の情報処理に関する命令部分はそれぞれ別々のプログラムとして保持されてもよい。学習結果データ125は、機械学習により生成された訓練済みの推定モデル5に関する情報を示す。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。サーバ装置1は、通信インタフェース13を介して、他のコンピュータとの間でデータ通信を行ってよい。
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を利用することで、サーバ装置1を操作することができる。入力装置14及び出力装置15は、例えば、タッチパネルディスプレイ等により一体的に構成されてもよい。
ドライブ16は、記憶媒体91に記憶されたプログラム等の各種情報を読み込むための装置である。上記プログラム81は、記憶媒体91に記憶されていてもよい。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。サーバ装置1は、プログラム81を記憶媒体91から取得してよい。
ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。
なお、サーバ装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、GPU等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。サーバ装置1は、複数台のコンピュータにより構成されてよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、或いは一致していなくてもよい。サーバ装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用の情報処理装置等であってよい。
[ソフトウェア構成例]
図3は、本実施形態に係るサーバ装置1のソフトウェア構成の一例を模式的に示す。サーバ装置1の制御部11は、記憶部12に記憶されたプログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたプログラム81に含まれる命令をCPUにより実行する。これにより、図3に示されるとおり、本実施形態に係るサーバ装置1は、オペレーティングシステム80上でアプリケーションAPを実行すると共に、機械学習部61及び最適化実行部63をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、サーバ装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。なお、図3の例では、機械学習部61及び最適化実行部63は、アプリケーションAPに含まれる1つのコンポーネントASとして実装される。
図3は、本実施形態に係るサーバ装置1のソフトウェア構成の一例を模式的に示す。サーバ装置1の制御部11は、記憶部12に記憶されたプログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたプログラム81に含まれる命令をCPUにより実行する。これにより、図3に示されるとおり、本実施形態に係るサーバ装置1は、オペレーティングシステム80上でアプリケーションAPを実行すると共に、機械学習部61及び最適化実行部63をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、サーバ装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。なお、図3の例では、機械学習部61及び最適化実行部63は、アプリケーションAPに含まれる1つのコンポーネントASとして実装される。
<機械学習部>
機械学習部61は、推定モデル5の機械学習に関する情報処理を実行するように構成される。本実施形態では、機械学習部61は、設定受付部611、データ取得部612、学習処理部613、保存処理部614及び通信部615を備える。設定受付部611は、推定モデル5の機械学習の条件(例えば、推定モデル5の構成、パラメータの初期値、反復回数等)に関する設定を受け付けるように構成される。データ取得部612は、訓練データ31及び正解ラベル33の組み合わせによりそれぞれ構成される複数のデータセット3を取得するように構成される。学習処理部613は、取得された複数のデータセット3を使用して、推定モデル5の機械学習を実施するように構成される。保存処理部614は、
機械学習により生成された訓練済みの推定モデル5に関する情報を学習結果データ125として生成し、生成された学習結果データ125を任意の記憶領域に保存するように構成される。学習結果データ125は、訓練済みの推定モデル5を再生するための情報を含むように適宜構成される。通信部615は、マスタKM、他のコンポーネントAS等とデータの受け渡しを行うように構成される。
機械学習部61は、推定モデル5の機械学習に関する情報処理を実行するように構成される。本実施形態では、機械学習部61は、設定受付部611、データ取得部612、学習処理部613、保存処理部614及び通信部615を備える。設定受付部611は、推定モデル5の機械学習の条件(例えば、推定モデル5の構成、パラメータの初期値、反復回数等)に関する設定を受け付けるように構成される。データ取得部612は、訓練データ31及び正解ラベル33の組み合わせによりそれぞれ構成される複数のデータセット3を取得するように構成される。学習処理部613は、取得された複数のデータセット3を使用して、推定モデル5の機械学習を実施するように構成される。保存処理部614は、
機械学習により生成された訓練済みの推定モデル5に関する情報を学習結果データ125として生成し、生成された学習結果データ125を任意の記憶領域に保存するように構成される。学習結果データ125は、訓練済みの推定モデル5を再生するための情報を含むように適宜構成される。通信部615は、マスタKM、他のコンポーネントAS等とデータの受け渡しを行うように構成される。
(機械学習方法の一例)
図4は、機械学習部61による推定モデル5の機械学習の処理過程の一例を模式的に示す。推定モデル5は、推定処理を実行するための1つ以上の演算パラメータであって、機械学習により値が調整される1つ以上の演算パラメータを有する機械学習モデルにより構成される。サービス品質の推定値を算出する演算処理を実行可能であれば、推定モデル5に採用する機械学習モデルの種類、構成、及び構造は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。
図4は、機械学習部61による推定モデル5の機械学習の処理過程の一例を模式的に示す。推定モデル5は、推定処理を実行するための1つ以上の演算パラメータであって、機械学習により値が調整される1つ以上の演算パラメータを有する機械学習モデルにより構成される。サービス品質の推定値を算出する演算処理を実行可能であれば、推定モデル5に採用する機械学習モデルの種類、構成、及び構造は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。
一例として、推定モデル5は、ニューラルネットワークにより構成されてよい。この場合、各ノード(ニューロン)間の結合の重み、各ノードの閾値等が、演算パラメータの一例である。ニューラルネットワークの種類及び構造(例えば、各層の種類、層の数、各層のノードの数、ノードの接続関係等)は、実施の形態に応じて適宜決定されてよい。推定モデル5は、例えば、全結合型ニューラルネットワーク、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてよい。本実施形態では、サービスチェイン情報(315、45)は、各コンポーネントASの接続関係をグラフ形式で表現するように構成されてよい。これに応じて、推定モデル5は、入力されるデータのうち少なくともサービスチェイン情報(315、45)を処理する構成要素としてグラフニューラルネットワークを含むように構成されてよい。
機械学習に使用される各データセット3は、クラスタKによるアプリケーションAPの実行実績から収集されてよい。一例では、各データセット3は、データ取得部612により収集されてよい。他の一例では、各データセット3は、他のコンポーネント又はサーバ装置1以外の他のコンピュータにより収集されてよい。この場合、データ取得部612は、他のコンポーネント又は他のコンピュータにより収集された各データセット3を任意の方法で取得してよい。各データセット3は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで主導的に生成されてもよい。
各データセット3は、訓練データ31及び正解ラベル33の組み合わせにより構成される。本実施形態では、訓練データ31は、ワークロード情報311、リソース使用情報313、及びサービスチェイン情報315を含むように構成される。正解ラベル33は、関連付けられる訓練データ31の各情報(311、313、315)により示される状況におけるアプリケーションAPのサービス品質の真値を示すように構成される。正解ラベル33により示される真値は、アプリケーションAP全体のサービス品質に関するものであってよい。サービス品質は、遅延時間、実行時間、及び正常に処理された程度の少なくともいずれかに基づいて算定されてよい。真値は、各情報(311、313、315)に対応して、上記少なくともいずれかの指標に基づいてアプリケーションAPのサービス品質を測定することで得られてよい。
学習処理部613は、機械学習の処理として、各データセット3について、訓練データ31を与えることで推定モデル5から得られる出力(サービス品質の推定値)が正解ラベル33に適合するように推定モデル5を訓練する。すなわち、学習処理部613は、各データセット3の訓練データ31を入力データとして使用し、正解ラベル33を教師信号として使用して、推定モデル5の機械学習を実施する。推定モデル5を訓練することは、訓
練データ31に対して得られる出力(サービス品質の推定値)が正解ラベル33に適合するように推定モデル5の演算パラメータの値を調整(最適化)することにより構成される。演算パラメータの調整方法(最適化問題を解く方法)は、推定モデル5に採用した機械学習の種類、構成、構造等に応じて適宜決定されてよい。
練データ31に対して得られる出力(サービス品質の推定値)が正解ラベル33に適合するように推定モデル5の演算パラメータの値を調整(最適化)することにより構成される。演算パラメータの調整方法(最適化問題を解く方法)は、推定モデル5に採用した機械学習の種類、構成、構造等に応じて適宜決定されてよい。
調整方法の一例として、推定モデル5がニューラルネットワークにより構成される場合、学習処理部613は、各データセット3の訓練データ31を推定モデル5に入力し、推定モデル5の順伝播の演算処理を実行する。この演算処理の結果、学習処理部613は、訓練データ31に含まれる各情報(311、313、315)に基づいてアプリケーションAPのサービス品質を推定した結果(サービス品質の推定値)を推定モデル5から取得する。学習処理部613は、得られた推定値と対応する正解ラベル33により示される真値との間の誤差を算出し、算出された誤差の勾配を更に算出する。学習処理部613は、誤差逆伝播法により、算出された誤差の勾配を逆伝播することで、推定モデル5の演算パラメータの値の誤差を算出する。学習処理部613は、算出された誤差に基づいて、演算パラメータの値を更新する。
学習処理部613は、この一連の更新処理により、訓練データ31を与えることで得られる推定値と正解ラベル33により示される真値との間の誤差の和が小さくなるように、推定モデル5の演算パラメータの値を調整する。この演算パラメータの値の調整は、例えば、設定された反復回数の調整を実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで繰り返されてよい。また、例えば、損失関数、学習率等の機械学習の条件は、実施の形態に応じて適宜設定されてよい。この機械学習の処理により、訓練済みの推定モデル5を生成することができる。
保存処理部614は、上記機械学習により生成された訓練済みの推定モデル5を再生するための学習結果データ125を生成する。訓練済みの推定モデル5を再生可能であれば、学習結果データ125の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、学習結果データ125は、上記機械学習の調整により得られた推定モデル5の各演算パラメータの値を示す情報を含んでよい。場合によって、学習結果データ125は、推定モデル5の構造を示す情報を更に含んでもよい。構造は、例えば、入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。保存処理部614は、生成された学習結果データ125を所定の記憶領域に保存する。
<最適化実行部>
図3に戻り、最適化実行部63は、学習結果データ125を保持することで、訓練済みの推定モデル5を備える。最適化実行部63は、訓練済みの推定モデル5を使用したリソース配備の最適化に関する情報処理を実行するように構成される。本実施形態では、最適化実行部63は、設定受付部631、データ取得部632、推定部633、最適量計算部634、リソース調整部635、及び通信部636を備える。
図3に戻り、最適化実行部63は、学習結果データ125を保持することで、訓練済みの推定モデル5を備える。最適化実行部63は、訓練済みの推定モデル5を使用したリソース配備の最適化に関する情報処理を実行するように構成される。本実施形態では、最適化実行部63は、設定受付部631、データ取得部632、推定部633、最適量計算部634、リソース調整部635、及び通信部636を備える。
図5は、最適化実行部63によるアプリケーションAPの各コンポーネントASに使用されるリソース量の最適化の処理過程の一例を模式的に示す。設定受付部631は、最適化の条件(例えば、サービス品質の目標、使用する最適化手法等)に関する設定を受け付けるように構成される。データ取得部632は、対象データ4を取得するように構成される。本実施形態では、対象データ4は、ワークロード情報41、リソース使用情報43及びサービスチェイン情報45を含むように構成される。一例では、データ取得部632は、アプリケーションAPを運用するクラスタKから直接的に対象データ4を取得してよい。他の一例では、対象データ4は他のコンポーネント又は他のコンピュータにより生成されてよく、データ取得部632は、他のコンポーネント又は他のコンピュータから直接的
又は間接的に対象データ4を取得してよい。
又は間接的に対象データ4を取得してよい。
推定部633は、訓練済みの推定モデル5を使用することで、取得された対象データ4に基づき、アプリケーションAPのサービス品質の推定値を算出するように構成される。算出される推定値は、アプリケーションAP全体のサービス品質に関するものであってよい。最適量計算部634は、算出されたサービス品質の推定値が適正に目標を満たすか否かを判定するように構成される。加えて、最適量計算部634は、算出されたサービス品質の推定値が適正に目標を満たさない場合に、所定の最適化手法によって、訓練済みの推定モデル5により算出されるサービス品質の推定値に基づき目標に対してリソースの量を最適化するように構成される。リソース調整部635は、最適化の結果に従って、各コンポーネントASに使用されるリソースの量(例えば、ノードKNの数、コンテナKCの数)を調整するように構成される。通信部636は、マスタKM、他のコンポーネントAS等とデータの受け渡しを行うように構成される。
<その他>
本実施形態では、サーバ装置1の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。サーバ装置1のソフトウェア構成に関して、実施形態に応じて、適宜、モジュールの省略、置換及び追加が行われてもよい。
本実施形態では、サーバ装置1の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。サーバ装置1のソフトウェア構成に関して、実施形態に応じて、適宜、モジュールの省略、置換及び追加が行われてもよい。
本実施形態では、機械学習部61及び最適化実行部63がそれぞれ1つのコンポーネントASとして実装されている。しかしながら、各ソフトウェアモジュールの実装形式は、このような例に限定されなくてよい。機械学習部61及び最適化実行部63の少なくとも一方は、複数のコンポーネントASにより実装されてよい。機械学習部61及び最適化実行部63はそれぞれ、1つ以上のコンテナKC上で実行されてよい。機械学習部61及び最適化実行部63を構成するコンポーネントASのうち少なくとも一部は同一のコンテナKC上で実行されてもよいし、或いは各コンポーネントASは別々のコンテナKC上実行されてよい。機械学習部61及び最適化実行部63の少なくとも一方は、アプリケーションAPとは別個のアプリケーションプロセスとして実行されてよい。
[3 動作例]
[推定モデルの機械学習]
図6は、本実施形態に係るサーバ装置1(機械学習部61)による推定モデル5の機械学習の処理手順の一例を示すフローチャートである。以下の処理手順は、モデル生成の情報処理方法の一例である。ただし、以下のモデル生成の処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下のモデル生成の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
[推定モデルの機械学習]
図6は、本実施形態に係るサーバ装置1(機械学習部61)による推定モデル5の機械学習の処理手順の一例を示すフローチャートである。以下の処理手順は、モデル生成の情報処理方法の一例である。ただし、以下のモデル生成の処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下のモデル生成の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、設定受付部611として動作し、推定モデル5の機械学習の条件に関する設定を受け付ける。
ステップS101では、制御部11は、設定受付部611として動作し、推定モデル5の機械学習の条件に関する設定を受け付ける。
設定を受け付ける諸条件は、実施の形態に応じて適宜決定されてよい。一例として、制御部11は、機械学習における反復回数の設定を受け付けてもよい。この場合、反復回数は、オペレータの入力装置14を介した入力により指定されてよい。その他、制御部11は、推定モデル5を構成する機械学習モデルの初期設定を受け付けてもよい。機械学習モデルの構造及び演算パラメータの初期値は、テンプレートにより与えられてもよいし、或いはオペレータの入力により決定されてもよい。制御部11は、推定モデル5に与える入
力データ(ワークロード情報、リソース使用情報、サービスチェイン情報)を取得し、取得された入力データに基づいて、機械学習モデルのパラメータの数を決定してもよい。追加学習又は再学習を行う場合、制御部11は、過去の機械学習により得られた学習結果データに基づいて、推定モデル5の初期設定を行ってよい。
力データ(ワークロード情報、リソース使用情報、サービスチェイン情報)を取得し、取得された入力データに基づいて、機械学習モデルのパラメータの数を決定してもよい。追加学習又は再学習を行う場合、制御部11は、過去の機械学習により得られた学習結果データに基づいて、推定モデル5の初期設定を行ってよい。
設定の受付が完了すると、制御部11は、次のステップS102に処理を進める。なお、ステップS101の処理を実行するタイミングは、この例に限定されなくてよい。ステップS101の処理は、後述するステップS103の処理を実行するまでの任意のタイミングで実行されてよい。ステップS101の処理は、このフローチャートの処理手順とは独立に実行されてよい。また、ステップS101の処理は省略されてもよい。この場合、各条件は、任意の方法で予め決定されてよい。
(ステップS102)
ステップS102では、制御部11は、データ取得部612として動作し、複数のデータセット3を取得する。各データセット3は任意の経路で取得されてよい。一例では、制御部11は、クラスタKから直接的に各データセット3を取得してよい。他の一例では、制御部11は、例えば、ネットワーク、記憶媒体91、他のコンピュータ、外部記憶装置等を介して、各データセット3を取得してよい。制御部11は、複数の取得先から各データセット3を取得してよい。取得するデータセット3の件数は、特に限定されなくてよく、機械学習を実施可能なように適宜決定されてよい。複数のデータセット3を取得すると、制御部11は、次のステップS103に処理を進める。
ステップS102では、制御部11は、データ取得部612として動作し、複数のデータセット3を取得する。各データセット3は任意の経路で取得されてよい。一例では、制御部11は、クラスタKから直接的に各データセット3を取得してよい。他の一例では、制御部11は、例えば、ネットワーク、記憶媒体91、他のコンピュータ、外部記憶装置等を介して、各データセット3を取得してよい。制御部11は、複数の取得先から各データセット3を取得してよい。取得するデータセット3の件数は、特に限定されなくてよく、機械学習を実施可能なように適宜決定されてよい。複数のデータセット3を取得すると、制御部11は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部11は、学習処理部613として動作し、取得された複数のデータセット3を使用して、推定モデル5の機械学習を実施する。機械学習の処理として、制御部11は、各データセット3について、訓練データ31に対して得られる出力が正解ラベル33に適合するように推定モデル5の演算パラメータの値を調整する。
ステップS103では、制御部11は、学習処理部613として動作し、取得された複数のデータセット3を使用して、推定モデル5の機械学習を実施する。機械学習の処理として、制御部11は、各データセット3について、訓練データ31に対して得られる出力が正解ラベル33に適合するように推定モデル5の演算パラメータの値を調整する。
調整方法の一例として、制御部11は、各データセット3の訓練データ31を推定モデル5に入力し、推定モデル5の順伝播の演算処理を実行する。この演算処理の結果、制御部11は、訓練データ31に含まれる各情報(311、313、315)に基づいて算出されるアプリケーションAPのサービス品質の推定値を推定モデル5から取得する。制御部11は、得られた推定値と対応する正解ラベル33により示される真値との間の誤差を算出する。制御部11は、誤差逆伝播法により、算出される誤差の和が小さくなるように、推定モデル5の演算パラメータの値を調整する。この演算パラメータの値の調整は、所定の条件を満たすまで繰り返されてよい。一例として、ステップS101の処理により、反復回数を設定した場合、制御部11は、反復回数が設定回数に到達するまで、推定モデル5の演算パラメータの値の調整を繰り返してよい。この機械学習の処理を実行した結果として、訓練済みの推定モデル5を生成することができる。機械学習の処理が完了すると、制御部11は、次のステップS104に処理を進める。
(ステップS104)
ステップS104では、制御部11は、保存処理部614として動作し、機械学習により生成された訓練済みの推定モデル5に関する情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を記憶領域に保存する。
ステップS104では、制御部11は、保存処理部614として動作し、機械学習により生成された訓練済みの推定モデル5に関する情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を記憶領域に保存する。
記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等の記憶媒体91であってよく、制御部11は、ドライブ16を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached S
torage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、サーバ装置1に接続された外付けの記憶装置であってもよい。
torage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、サーバ装置1に接続された外付けの記憶装置であってもよい。
学習結果データ125の保存が完了すると、制御部11は、推定モデル5の機械学習に関する処理手順を終了する。
なお、生成された学習結果データ125は、任意のタイミングで通信部(615、636)を介して、機械学習部61から最適化実行部63に直接的又は間接的に提供されてよい。また、制御部11は、上記処理手順のうちの少なくともステップS102~ステップS104の処理を繰り返し実行することで、学習結果データ125を更新又は新たに作成してもよい。この繰り返しの際に、機械学習に使用する複数のデータセット3の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した学習結果データ125を機械学習部61から最適化実行部63に提供することで、最適化実行部63の保持する学習結果データ125を更新してもよい。
[リソース配備の最適化]
図7は、本実施形態に係るサーバ装置1(最適化実行部63)によるアプリケーションAPに使用するリソース量を最適化する処理手順の一例を示すフローチャートである。以下の処理手順は、最適化の情報処理方法の一例である。ただし、以下の最適化の処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の最適化の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
図7は、本実施形態に係るサーバ装置1(最適化実行部63)によるアプリケーションAPに使用するリソース量を最適化する処理手順の一例を示すフローチャートである。以下の処理手順は、最適化の情報処理方法の一例である。ただし、以下の最適化の処理手順は、一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の最適化の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS301)
ステップS301では、制御部11は、設定受付部631として動作し、最適化の条件に関する設定を受け付ける。
ステップS301では、制御部11は、設定受付部631として動作し、最適化の条件に関する設定を受け付ける。
設定を受け付ける諸条件は、実施の形態に応じて適宜決定されてよい。一例として、制御部11は、サービス品質の目標の設定を受け付けてよい。目標は、数値(目標値とも称する)により設定されてよい。一例として、目標値は、任意の期間に計測されるサービス品質の値に対応して設定されてよい。遅延時間及び実行時間の少なくとも一方によりサービス品質が算定される場合、目標値は、平均値、パーセンタイル値(例えば、90パーセンタイル値、95パーセンタイル値、99パーセンタイル値、99.9パーセンタイル値等)、中央値、最小値、最大値等の統計量により指定されてよい。目標値は、オペレータの入力により指定されてよい。
また、制御部11は、後述するステップS305の処理における所定の最適化手法の設定を受け付けてよい。所定の最適化手法は、任意の方法で決定されてよい。一例として、所定の最適化手法は、最急降下法及びベイズ最適化から選択されてよい。選択は、オペレータの入力装置14を介した操作により行われてよい。最急降下法によれば、短い時間でサービス品質の目標に対してリソース量を最適化することができる。そのため、ワークロードの変動が激しい時間帯においてリソース量を最適化するのに最急降下法を選択するのが好ましい。一方、ベイズ最適化によれば、最急降下法よりも最適化に時間がかかるが、サービス品質の目標に対してより最適なリソース量を算出することができる。そのため、ワークロードの変動が少ない又は周期的に変動する時間帯においてリソース量を最適化するのにベイズ最適化を選択するのが好ましい。このように、特徴の異なる複数の最適化手法の中から選択するようにすることで、後述するステップS305では、ワークロードの状態に適した最適化を遂行することができる。
設定の受付が完了すると、制御部11は、次のステップS302に処理を進める。なお、ステップS301の処理を実行するタイミングは、この例に限定されなくてよい。例えば、サービス品質の目標の設定は、後述するステップS304の処理を実行するまでの任意のタイミングで実行されてよい。最適化手法の設定は、後述するステップS305の処理を実行するまでの任意のタイミングで実行されてよい。ステップS301の処理は、このフローチャートの処理手順とは独立に実行されてよい。また、ステップS301の処理は省略されてもよい。この場合、各条件は、任意の方法で予め決定されてよい。
(ステップS302)
ステップS302では、制御部11は、データ取得部632として動作し、対象データ4を取得する。対象データ4は、任意の経路で取得されてよい。一例として、オンラインでリソース量の最適化を実施する場合、制御部11は、対象データ4を構成する各情報(41、43、45)をクラスタKから取得してよい。対象データ4を取得すると、制御部11は、次のステップS303に処理を進める。
ステップS302では、制御部11は、データ取得部632として動作し、対象データ4を取得する。対象データ4は、任意の経路で取得されてよい。一例として、オンラインでリソース量の最適化を実施する場合、制御部11は、対象データ4を構成する各情報(41、43、45)をクラスタKから取得してよい。対象データ4を取得すると、制御部11は、次のステップS303に処理を進める。
(ステップS303)
ステップS303では、制御部11は、推定部633として動作し、学習結果データ125を参照することで、訓練済みの推定モデル5の設定を行う。学習結果データ125は、ステップS303の処理を実行するまでの任意のタイミングで取得されてよい。そして、制御部11は、訓練済みの推定モデル5を使用して、取得された対象データ4に基づき、アプリケーションAPのサービス品質の推定値を算出する。訓練済みの推定モデル5の演算処理は、推定モデル5に採用する機械学習モデルに応じて適宜実行されてよい。一例として、推定モデル5がニューラルネットワークにより構成される場合、制御部11は、取得された対象データ4を訓練済みの推定モデル5に入力し、訓練済みの推定モデル5の順伝播の演算処理を実行する。この演算処理の結果、制御部11は、サービス品質を推定した結果(推定値)を訓練済みの推定モデル5から取得することができる。サービス品質の推定値を取得すると、制御部11は、次のステップS304に処理を進める。
ステップS303では、制御部11は、推定部633として動作し、学習結果データ125を参照することで、訓練済みの推定モデル5の設定を行う。学習結果データ125は、ステップS303の処理を実行するまでの任意のタイミングで取得されてよい。そして、制御部11は、訓練済みの推定モデル5を使用して、取得された対象データ4に基づき、アプリケーションAPのサービス品質の推定値を算出する。訓練済みの推定モデル5の演算処理は、推定モデル5に採用する機械学習モデルに応じて適宜実行されてよい。一例として、推定モデル5がニューラルネットワークにより構成される場合、制御部11は、取得された対象データ4を訓練済みの推定モデル5に入力し、訓練済みの推定モデル5の順伝播の演算処理を実行する。この演算処理の結果、制御部11は、サービス品質を推定した結果(推定値)を訓練済みの推定モデル5から取得することができる。サービス品質の推定値を取得すると、制御部11は、次のステップS304に処理を進める。
(ステップS304)
ステップS304では、制御部11は、最適量計算部634として動作し、算出されたサービス品質の推定値が設定された目標を適正に満たすか否かを判定する。
ステップS304では、制御部11は、最適量計算部634として動作し、算出されたサービス品質の推定値が設定された目標を適正に満たすか否かを判定する。
一例では、目標を適正に満たすことは、目標を適正な値で満たすことで構成されてよい。具体例として、遅延時間の目標値がサービス品質の目標として設定されており、ステップS303の処理によりサービス品質の推定値として遅延時間の推定値を算出した場合、制御部11は、算出された遅延時間の推定値と目標値とを比較してよい。そして、遅延時間の推定値が目標値未満であるとき、制御部11は、サービス品質の推定値が目標を満たすと判定し、遅延時間の推定値が目標値を超えているとき、サービス品質の推定値が目標を満たさないと判定してよい。遅延時間の推定値と目標値とが等しい場合、制御部11は、いずれに判定してもよい。
実行時間の目標値がサービス品質の目標として設定されており、ステップS303の処理により実行時間の推定値を算出した場合、制御部11は、算出された実行時間の推定値と目標値とを比較してよい。そして、実行時間の推定値が目標値未満であるとき、制御部11は、サービス品質の推定値が目標を満たすと判定し、実行時間の推定値が目標値を超えているとき、サービス品質の推定値が目標を満たさないと判定してよい。実行時間の推定値と目標値とが等しい場合、制御部11は、いずれに判定してもよい。
正常に処理された程度の目標値がサービス品質の目標として設定されており、ステップ
S303の処理によりアプリケーションAPが正常に処理された程度の推定値を算出した場合、制御部11は、算出された正常に処理された程度の推定値と目標値とを比較してよい。そして、正常に処理された程度の推定値が目標値を超えている(エラーの程度が目標値未満である)とき、制御部11は、サービス品質の推定値が目標を満たすと判定し、正常に処理された程度の推定値が目標値未満である(エラーの程度が目標値を超えている)とき、サービス品質の推定値が目標を満たさないと判定してよい。正常に処理された程度の推定値と目標値とが等しい場合、制御部11は、いずれに判定してもよい。
S303の処理によりアプリケーションAPが正常に処理された程度の推定値を算出した場合、制御部11は、算出された正常に処理された程度の推定値と目標値とを比較してよい。そして、正常に処理された程度の推定値が目標値を超えている(エラーの程度が目標値未満である)とき、制御部11は、サービス品質の推定値が目標を満たすと判定し、正常に処理された程度の推定値が目標値未満である(エラーの程度が目標値を超えている)とき、サービス品質の推定値が目標を満たさないと判定してよい。正常に処理された程度の推定値と目標値とが等しい場合、制御部11は、いずれに判定してもよい。
他の一例では、目標を満たすことは、目標を適正な範囲で満たすことにより構成されてよい。この場合、制御部11は、算出されたサービス品質の推定値が設定された目標の範囲に入るか否かに応じて、目標を適正に満たすか否かを判定してよい。すなわち、上記サービス品質の推定値が目標値を満たさない場合に加えて、制御部11は、サービス品質の目標に対してリソースが過剰に使用されている場合にも、目標を適正に満たさないと判定してもよい。なお、目標の範囲は、任意の方法で設定されてよい。例えば、目標の範囲として目標値の上限値及び下限値がオペレータの指定等により設定されてよい。その他、目標値並びに目標値に対する上限及び下限の少なくとも一方の範囲を規定する閾値がオペレータの指定等により設定されてよい。また、目標の範囲の上限値又は下限値と推定値とが等しい場合、制御部11は、いずれに判定してもよい。
算出されたサービス品質の推定値が目標を満たすと判定した場合、制御部11は、リソース量の最適化に関する処理手順を終了する。他方、算出されたサービス品質の推定値が目標を満たさないと判定した場合、制御部11は、次のステップS305に処理を進める。なお、平均値等の統計量により目標値が指定される場合、制御部11は、ステップS302及びステップS303の処理を繰り返し実行して、目標値の統計量に応じた推定値を算出してよい。
(ステップS305~ステップS307)
ステップS305では、制御部11は、最適量計算部634として動作し、所定の最適化手法によって、訓練済みの推定モデル5により算出されるサービス品質の推定値に基づき目標に対してリソースの量を最適化する。制御部11は、訓練済みの推定モデル5により算出されるサービス品質の推定値が適正に目標を満たすものとなるように、所定の最適化手法によって、目標に対してリソースの最適な量を計算する。一例では、適正に目標を満たす最適なリソース量は、目標を満たす最小のリソース量であってよい。
ステップS305では、制御部11は、最適量計算部634として動作し、所定の最適化手法によって、訓練済みの推定モデル5により算出されるサービス品質の推定値に基づき目標に対してリソースの量を最適化する。制御部11は、訓練済みの推定モデル5により算出されるサービス品質の推定値が適正に目標を満たすものとなるように、所定の最適化手法によって、目標に対してリソースの最適な量を計算する。一例では、適正に目標を満たす最適なリソース量は、目標を満たす最小のリソース量であってよい。
一例として、所定の最適化手法に最急降下法が選択されている場合、制御部11は、以下の式1及び式2に従って、目標に対してリソースの最適な量を計算(推定)してよい。
・・・(式1)
・・・(式2)
なお、rは、リソースの使用状況(使用量)を示し、wは、ワークロードの状態を示す。リソースの使用状況及びワークロードの状態はベクトルで表現されてよい。Target_Qosは、設定されたサービス品質の目標値を示す。L(w,r)は、訓練済みの推定モデル5により算出されるサービス品質の推定値を示す。ρは、ペナルティコストであり、適宜与えられてよい。
なお、rは、リソースの使用状況(使用量)を示し、wは、ワークロードの状態を示す。リソースの使用状況及びワークロードの状態はベクトルで表現されてよい。Target_Qosは、設定されたサービス品質の目標値を示す。L(w,r)は、訓練済みの推定モデル5により算出されるサービス品質の推定値を示す。ρは、ペナルティコストであり、適宜与えられてよい。
ステップS306では、制御部11は、最適量計算部634として動作し、所定の最適化手法により算出されたリソース量が最適であるか否か(すなわち、最適化手法により暫定的に得られるリソース量が最小のリソース量に到達したか否か)を判定する。算出されたリソース量が最適である場合、制御部11は、次のステップS307に処理を進める。一方、算出されたリソース量が最適でない場合、制御部11は、ステップS305に処理を戻し、所定の最適化手法によるリソース量の計算を再度実行する。なお、このステップS305の処理を繰り返し実行する際、制御部11は、最初の訓練済みの推定モデル5の演算により得られた推定値を繰り返し利用して、最適なリソース量の特定を行ってよい。或いは、制御部11は、ステップS305の処理により算出された暫定的なリソース量の情報を新たなリソース使用情報として使用して、訓練済みの推定モデル5の演算処理を再度実行することで、最適なリソース量の特定に利用するサービス品質の推定値を更新してもよい。この推定値の更新は、ステップS305の処理を任意回数繰り返す度(例えば、毎回)に行われてよい。
ステップS307では、制御部11は、リソース調整部635として動作し、アプリケーションAPを運用するコンピュータに対して最適化の結果を出力する。これにより、制御部11は、最適化の結果に従って、各コンポーネントASに使用されるリソースの量を調整(設定)する。一例として、サーバ装置1上でアプリケーションAPが運用される場合、制御部11は、計算されたリソースの最適な量で各コンポーネントASを実行するように、リソースの量を調整してよい。他の一例として、アプリケーションAPが他の装置で運用される場合、制御部11は、最適化の結果を他の装置に送信することで、リソース量の調整を当該他の装置に対して指示してもよい。
リソース量の調整は、実施の形態に応じて適宜実行されてよい。例えば、リソース量の調整は、各コンポーネントAS(ノードKN、コンテナKC)に対する、スケールアウト、スケールイン、スケールアップ及びスケールダウンの少なくともいずれかにより構成されてよい。一例として、アプリケーションAPに含まれる各コンポーネントASがコンテナKC上で実行される場合に、ステップS305~ステップS306の処理におけるリソース量を最適化することは、リソースの最適な量を計算すること、及び計算されたリソースの最適な量から各コンポーネントASを実行するコンテナKCの最適な数を算出することにより構成されてよい。これに応じて、ステップS307の処理におけるリソースの量を調整することは、各コンポーネントASを実行するコンテナKCの数が算出された最適な数になるように各コンポーネントASを実行するコンテナKCの数を調整することにより構成されてよい。この方法によれば、それぞれコンテナ化された複数のコンポーネントASにより構成されるアプリケーションAPに使用されるリソース量の調整を容易に行うことができる。
なお、ステップS305~ステップS306において、制御部11は、リソースの最適な量について複数の候補を算出してもよい。これに応じて、ステップS307において、制御部11は、算出された複数の候補の中から一つの候補を選択し、選択された最適化の候補に従って、各コンポーネントASに使用されるリソースの量を調整してもよい。選択は、オペレータの入力により行われてもよいし、或いは所定の基準(例えば、使用するリソース量の最も少ないものを選択する)に基づいて行われてもよい。
リソース量の調整が完了すると、制御部11は、リソース量の最適化に関する処理手順を終了する。なお、制御部11は、上記処理手順のうちの少なくともステップS302~ステップS307の処理を任意のタイミングで繰り返し実行してもよい。これにより、制御部11は、訓練済みの推定モデル5を使用して、アプリケーションAPに使用されるリソースの量を継続的に最適化してよい。
[特徴]
本実施形態では、上記ステップS102及びステップS103の処理により、ワークロード情報及びリソースについてのリソース使用情報からアプリケーションのサービス品質を推定する能力を獲得した訓練済みの推定モデル5を生成することができる。この訓練済みの推定モデル5によれば、ワークロードの状態及び各コンポーネントASへのリソースの配備の状況からアプリケーションAPのサービス品質を推定することができる。つまり、ワークロードの状態に応じて、各コンポーネントASへのリソースの配備とアプリケーションAPのサービス品質との間の対応関係を推測することができる。これを利用することにより、上記ステップS302~ステップS307の処理によれば、訓練済みの推定モデル5を使用して、マイクロサービスアーキテクチャで構築されたアプリケーションAPのサービス品質の目標に応じて、各コンポーネントASに使用するリソースの量を最適化することができる。その結果、アプリケーションAPのサービス品質の維持にかかるコストの低減を図ることができる。
本実施形態では、上記ステップS102及びステップS103の処理により、ワークロード情報及びリソースについてのリソース使用情報からアプリケーションのサービス品質を推定する能力を獲得した訓練済みの推定モデル5を生成することができる。この訓練済みの推定モデル5によれば、ワークロードの状態及び各コンポーネントASへのリソースの配備の状況からアプリケーションAPのサービス品質を推定することができる。つまり、ワークロードの状態に応じて、各コンポーネントASへのリソースの配備とアプリケーションAPのサービス品質との間の対応関係を推測することができる。これを利用することにより、上記ステップS302~ステップS307の処理によれば、訓練済みの推定モデル5を使用して、マイクロサービスアーキテクチャで構築されたアプリケーションAPのサービス品質の目標に応じて、各コンポーネントASに使用するリソースの量を最適化することができる。その結果、アプリケーションAPのサービス品質の維持にかかるコストの低減を図ることができる。
また、本実施形態では、推定モデル5に対する入力データにサービスチェイン情報が更に含まれている。これにより、アプリケーションAPのコンポーネント構成が変更されても、推定モデル5は、入力されるサービスチェイン情報に基づいてアプリケーションAPのコンポーネント構成を特定することができ、その結果、サービス品質の推定精度を維持することができる。よって、本実施形態によれば、アプリケーションAPのコンポーネント構成が変更されても、リソース量の最適化を高精度に遂行することができる。
[4 変形例]
以上、本開示の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本開示の例示に過ぎない。本開示の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。以下の変形例は適宜組み合わせ可能である。
以上、本開示の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本開示の例示に過ぎない。本開示の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。以下の変形例は適宜組み合わせ可能である。
上記実施形態において、ステップS102の処理により取得される各データセット3の訓練データ31からサービスチェイン情報315は省略されてもよい。これに応じて、ステップS302の処理により取得される対象データ4からサービスチェイン情報45が省略されてよい。
また、上記実施形態において、推定モデル5は、ワークロード情報、リソース使用情報及びサービスチェイン情報以外の他の情報の入力を更に受け付けるように構成されてよい。推定モデル5は、サービス品質の推定値以外の情報を更に出力するように構成されてよい。推定モデル5には、ニューラルネットワーク以外の機械学習モデルが採用されてよい
。
。
[5 実施例]
本開示の有効性を検証するために、以下の実施例及び比較例に係る情報処理装置を構成した。ただし、本開示は、以下の実施例に限定されるものではない。
本開示の有効性を検証するために、以下の実施例及び比較例に係る情報処理装置を構成した。ただし、本開示は、以下の実施例に限定されるものではない。
図8は、マイクロサービスアーキテクチャで構築されたアプリケーションの第1サンプルを示す。図9は、マイクロサービスアーキテクチャで構築されたアプリケーションの第2サンプルを示す。第1サンプルに対するワークロードは、500TPS(Transactions
Per Second)に設定し、サービス品質(遅延時間)の目標は、30ミリ秒に設定した。
一方、第2サンプルに対するワークロードは、500TPSに設定し、サービス品質(遅延時間)の目標は、150ミリ秒に設定した。
Per Second)に設定し、サービス品質(遅延時間)の目標は、30ミリ秒に設定した。
一方、第2サンプルに対するワークロードは、500TPSに設定し、サービス品質(遅延時間)の目標は、150ミリ秒に設定した。
実施例に係る情報処理装置では、上記実施形態と同様の方法により、訓練済みの推定モデルをアプリケーションのサンプル毎に生成した。推定モデルには、ニューラルネットワークを採用した。ワークロード情報をトランザクション量により構成し、リソース使用情報を各コンポーネントに対するプロセッサ(CPU)の使用量により構成した。サービスチェイン情報を、グラフ形式により各コンポーネントの接続関係を示すように構成した。機械学習に使用したデータセットの件数はそれぞれ、約50,000件であった。エポック数を70,000、バッチサイズを256、学習率を2.0×10-4にそれぞれ設定した。実施例に係る情報処理装置により、上記実施形態と同様の方法により、生成された訓練済みの推定モデルを使用して、各サンプルに使用されるリソース(CPUの割り当て)の量を最適化した。所定の最適化手法には、最急降下法を使用した。
一方、比較例に係る情報処理装置では、KubernetesのHorizontal Pod Autoscaler(非
特許文献1)により、各サンプルに使用されるリソース(CPUの割り当て)の量を調整した。
特許文献1)により、各サンプルに使用されるリソース(CPUの割り当て)の量を調整した。
上記表1は、実施例及び比較例により、各サンプルのアプリケーションに使用されるリソースの量を調整した結果を示す(単位は、ミリコア)。上記結果に示すとおり、実施例では、比較例に比べて、少ないリソース量(CPUの割り当て量)でサービス品質の目標を達成することができた。この結果から、本開示によれば、設定したサービス品質の目標に応じて、使用するリソース量の最適化が可能であることが分かった。
[6 補足]
本開示において説明した処理及び手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
本開示において説明した処理及び手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
また、1つの装置が行うものとして説明した処理が、複数の装置によって分担して実行されてもよい。或いは、異なる装置が行うものとして説明した処理が、1つの装置によって実行されても構わない。コンピュータシステムにおいて、各機能をどのようなハードウ
ェア構成(サーバ構成)によって実現するかは柔軟に変更可能である。
ェア構成(サーバ構成)によって実現するかは柔軟に変更可能である。
本開示は、上記の実施形態で説明した機能を実装したコンピュータプログラムをコンピュータに供給し、当該コンピュータが有する1つ以上のプロセッサがプログラムを読み出して実行することによっても実現可能である。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な非一時的なコンピュータ可読記憶媒体によってコンピュータに提供されてもよいし、ネットワークを介してコンピュータに提供されてもよい。非一時的なコンピュータ可読記憶媒体は、例えば、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクドライブ(HDD)等)、光ディスク(CD-ROM、DVDディスク、ブルーレイディスク等)など任意のタイプのディスク、読み込み専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体を含む。
1…サーバ装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
80…オペレーティングシステム、
81…プログラム、91…記憶媒体、
125…学習結果データ、
3…データセット、
31…訓練データ、
311…ワークロード情報、313…リソース使用情報、
315…サービスチェイン情報、
33…正解ラベル、
4…対象データ、
41…ワークロード情報、43…リソース使用情報、
45…サービスチェイン情報、
5…推定モデル、
61…機械学習部、
611…設定受付部、612…データ取得部、
613…学習処理部、614…保存処理部、
615…通信部、
63…最適化実行部、
631…設定受付部、632…データ取得部、
633…推定部、634…最適量計算部、
635…リソース調整部、636…通信部、
AP…アプリケーション、AS…コンポーネント、
K…クラスタ、KM…マスタ、KN…ノード、
KC…コンテナ、T…端末
11…制御部、12…記憶部、13…通信インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
80…オペレーティングシステム、
81…プログラム、91…記憶媒体、
125…学習結果データ、
3…データセット、
31…訓練データ、
311…ワークロード情報、313…リソース使用情報、
315…サービスチェイン情報、
33…正解ラベル、
4…対象データ、
41…ワークロード情報、43…リソース使用情報、
45…サービスチェイン情報、
5…推定モデル、
61…機械学習部、
611…設定受付部、612…データ取得部、
613…学習処理部、614…保存処理部、
615…通信部、
63…最適化実行部、
631…設定受付部、632…データ取得部、
633…推定部、634…最適量計算部、
635…リソース調整部、636…通信部、
AP…アプリケーション、AS…コンポーネント、
K…クラスタ、KM…マスタ、KN…ノード、
KC…コンテナ、T…端末
Claims (20)
- 訓練データ及び正解ラベルの組み合わせによりそれぞれ構成される複数のデータセットを取得することと、
取得された複数のデータセットを使用して、推定モデルの機械学習を実施することと、を実行するように構成された制御部を備える情報処理装置であって、
前記訓練データは、学習対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び前記アプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含み、
前記正解ラベルは、前記アプリケーションのサービス品質の真値を示すように構成され、
前記機械学習は、前記各データセットについて、前記推定モデルにより前記訓練データに基づき算出される前記サービス品質の推定値が前記正解ラベルにより示される真値に適合するように前記推定モデルを訓練することにより構成される、
情報処理装置。 - 前記訓練データは、前記アプリケーションに含まれる前記各コンポーネントの接続関係を示すサービスチェイン情報を更に含む、
請求項1に記載の情報処理装置。 - 前記サービスチェイン情報は、前記各コンポーネントの接続関係をグラフ形式で表現するように構成され、
前記推定モデルは、グラフニューラルネットワークを含むように構成される、
請求項2に記載の情報処理装置。 - 前記サービス品質は、前記アプリケーションの遅延時間、実行時間、及び正常に処理された程度の少なくともいずれかに基づいて算定される、
請求項1から3のいずれか1項に記載の情報処理装置。 - 前記ワークロード情報は、前記アプリケーションに対するトランザクション量、ユーザからのメッセージ量、及びデータの転送量の少なくともいずれかを含むように構成される、
請求項1から4のいずれか1項に記載の情報処理装置。 - 前記リソース使用情報は、前記アプリケーションに含まれる各コンポーネントに割り当てられたプロセッサの使用量、メモリの使用量、及びネットワーク帯域の使用量の少なくともいずれかを含むように構成される、
請求項1から5のいずれか1項に記載の情報処理装置。 - 推定対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び前記アプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含む対象データを取得することと、
訓練済みの推定モデルを使用することで、取得された前記対象データに基づき、前記アプリケーションのサービス品質の推定値を算出することと、
算出された前記サービス品質の推定値が適正に目標を満たさない場合に、所定の最適化手法により、前記訓練済みの推定モデルにより算出される前記サービス品質の推定値に基づき前記目標に対して前記リソースの量を最適化することと、
前記最適化の結果に従って、前記各コンポーネントに使用される前記リソースの量を調整することと、
を実行するように構成された制御部を備える、
情報処理装置。 - 前記対象データは、前記アプリケーションに含まれる前記各コンポーネントの接続関係を示すサービスチェイン情報を更に含む、
請求項7に記載の情報処理装置。 - 前記サービスチェイン情報は、前記各コンポーネントの接続関係をグラフ形式で表現するように構成され、
前記訓練済みの推定モデルは、グラフニューラルネットワークを含むように構成される、
請求項8に記載の情報処理装置。 - 前記サービス品質は、前記アプリケーションの遅延時間、実行時間、及び正常に処理された程度の少なくともいずれかに基づいて算定される、
請求項7から9のいずれか1項に記載の情報処理装置。 - 前記ワークロード情報は、前記アプリケーションに対するトランザクション量、ユーザからのメッセージ量、及びデータの転送量の少なくともいずれかを含むように構成される、
請求項7から10のいずれか1項に記載の情報処理装置。 - 前記リソース使用情報は、前記アプリケーションに含まれる各コンポーネントに割り当てられたプロセッサの使用量、メモリの使用量、及びネットワーク帯域の使用量の少なくともいずれかを含むように構成される、
請求項7から11のいずれか1項に記載の情報処理装置。 - 前記所定の最適化手法は、最急降下法及びベイズ最適化から選択される、
請求項7から12のいずれか1項に記載の情報処理装置。 - 前記アプリケーションに含まれる前記各コンポーネントはコンテナ上で実行され、
前記リソースの量を最適化することは、
前記リソースの最適な量を計算すること、及び
計算された前記リソースの最適な量から前記各コンポーネントを実行するコンテナの最適な数を算出すること、
により構成され、
前記リソースの量を調整することは、前記各コンポーネントを実行する前記コンテナの数が算出された前記最適な数になるように前記コンテナの数を調整することにより構成される、
請求項7から13のいずれか1項に記載の情報処理装置。 - コンピュータによって実行される情報処理方法であって、
推定対象の環境における、マイクロサービスアーキテクチャで構築されたアプリケーションに対するワークロード情報、及び前記アプリケーションに含まれる各コンポーネントに使用されるリソースについてのリソース使用情報を含む対象データを取得することと、
訓練済みの推定モデルを使用することで、取得された前記対象データに基づき、前記アプリケーションのサービス品質の推定値を算出することと、
算出された前記サービス品質の推定値が適正に目標を満たさない場合に、所定の最適化手法により、前記訓練済みの推定モデルにより算出される前記サービス品質の推定値に基づき前記目標に対して前記リソースの量を最適化することと、
前記最適化の結果に従って、前記各コンポーネントに使用される前記リソースの量を調
整することと、
を含む、
情報処理方法。 - 前記対象データは、前記アプリケーションに含まれる前記各コンポーネントの接続関係を示すサービスチェイン情報を更に含む、
請求項15に記載の情報処理方法。 - 前記サービスチェイン情報は、前記各コンポーネントの接続関係をグラフ形式で表現するように構成され、
前記訓練済みの推定モデルは、グラフニューラルネットワークを含むように構成される、
請求項16に記載の情報処理方法。 - 前記サービス品質は、前記アプリケーションの遅延時間、実行時間、及び正常に処理された程度の少なくともいずれかに基づいて算定される、
請求項15から17のいずれか1項に記載の情報処理方法。 - 前記所定の最適化手法は、最急降下法及びベイズ最適化から選択される、
請求項15から18のいずれか1項に記載の情報処理方法。 - 前記アプリケーションに含まれる前記各コンポーネントはコンテナ上で実行され、
前記リソースの量を最適化することは、
前記リソースの最適な量を計算すること、及び
計算された前記リソースの最適な量から前記各コンポーネントを実行するコンテナの最適な数を算出すること、
により構成され、
前記リソースの量を調整することは、前記各コンポーネントを実行する前記コンテナの数が算出された前記最適な数になるように前記コンテナの数を調整することにより構成される、
請求項15から19のいずれか1項に記載の情報処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021191864A JP2023078639A (ja) | 2021-11-26 | 2021-11-26 | 情報処理装置及び情報処理方法 |
US18/056,785 US11973695B2 (en) | 2021-11-26 | 2022-11-18 | Information processing apparatus and information processing method |
US18/454,477 US20230396564A1 (en) | 2021-11-26 | 2023-08-23 | Information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021191864A JP2023078639A (ja) | 2021-11-26 | 2021-11-26 | 情報処理装置及び情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023078639A true JP2023078639A (ja) | 2023-06-07 |
Family
ID=86499560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021191864A Pending JP2023078639A (ja) | 2021-11-26 | 2021-11-26 | 情報処理装置及び情報処理方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11973695B2 (ja) |
JP (1) | JP2023078639A (ja) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144718B2 (en) | 2017-02-28 | 2021-10-12 | International Business Machines Corporation | Adaptable processing components |
JP6849917B2 (ja) | 2017-06-30 | 2021-03-31 | 富士通株式会社 | 学習用データ生成プログラム、学習用データ生成装置及び学習用データ生成方法 |
US10761901B2 (en) * | 2018-06-28 | 2020-09-01 | International Business Machines Corporation | Dynamic runtime workload balancing in a distributed computing environment |
JP7036225B2 (ja) | 2018-10-15 | 2022-03-15 | 日本電気株式会社 | 推定装置、システム及び方法及びプログラム並びに学習装置及び方法及びプログラム |
US10691500B1 (en) * | 2018-12-07 | 2020-06-23 | Virtustream Ip Holding Company Llc | Modeling workloads using micro workloads representing normalized units of resource consumption metrics |
US11405280B2 (en) * | 2019-07-24 | 2022-08-02 | Cisco Technology, Inc. | AI-driven capacity forecasting and planning for microservices apps |
US11310126B2 (en) | 2019-08-05 | 2022-04-19 | International Business Machines Corporation | Automated operational data management dictated by quality of service criteria |
US11675631B2 (en) * | 2020-09-29 | 2023-06-13 | Kyndryl, Inc. | Balancing mainframe and distributed workloads based on performance and costs |
US20220038902A1 (en) * | 2020-11-13 | 2022-02-03 | Markus Dominik Mueck | Technologies for radio equipment cybersecurity and multiradio interface testing |
US20220188575A1 (en) | 2020-12-11 | 2022-06-16 | International Business Machines Corporation | Crowdsourcing to filter out unpopular potential candidate answers |
JP2022116884A (ja) | 2021-01-29 | 2022-08-10 | オムロン株式会社 | モデル生成装置、推定装置、モデル生成方法、及びモデル生成プログラム |
US20230110012A1 (en) * | 2021-10-07 | 2023-04-13 | Dell Products L.P. | Adaptive application resource usage tracking and parameter tuning |
-
2021
- 2021-11-26 JP JP2021191864A patent/JP2023078639A/ja active Pending
-
2022
- 2022-11-18 US US18/056,785 patent/US11973695B2/en active Active
-
2023
- 2023-08-23 US US18/454,477 patent/US20230396564A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230396564A1 (en) | 2023-12-07 |
US11973695B2 (en) | 2024-04-30 |
US20230171205A1 (en) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113950066B (zh) | 移动边缘环境下单服务器部分计算卸载方法、系统、设备 | |
CN110869909B (zh) | 应用机器学习算法来计算健康分数以进行工作负载调度的系统和方法 | |
Zhu et al. | BLOT: Bandit learning-based offloading of tasks in fog-enabled networks | |
Zhang et al. | A multi-agent reinforcement learning approach for efficient client selection in federated learning | |
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
Jayanetti et al. | Deep reinforcement learning for energy and time optimized scheduling of precedence-constrained tasks in edge–cloud computing environments | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN113778691B (zh) | 一种任务迁移决策的方法、装置及系统 | |
CN113469325A (zh) | 一种边缘聚合间隔自适应控制的分层联邦学习方法、计算机设备、存储介质 | |
CN113645637B (zh) | 超密集网络任务卸载方法、装置、计算机设备和存储介质 | |
CN112667400A (zh) | 边缘自治中心管控的边云资源调度方法、装置及系统 | |
Zhang et al. | An approach of multi-objective computing task offloading scheduling based NSGS for IOV in 5G | |
CN116541106B (zh) | 计算任务卸载方法、计算设备及存储介质 | |
Fu et al. | Traffic prediction-enabled energy-efficient dynamic computing resource allocation in cran based on deep learning | |
CN115580882A (zh) | 动态网络切片资源分配方法及装置、存储介质及电子设备 | |
CN114090108A (zh) | 算力任务执行方法、装置、电子设备及存储介质 | |
US11632713B2 (en) | Network capability exposure method and device thereof | |
CN117202264A (zh) | Mec环境中面向5g网络切片的计算卸载方法 | |
Chen et al. | DRJOA: intelligent resource management optimization through deep reinforcement learning approach in edge computing | |
CN113543160A (zh) | 5g切片资源配置方法、装置、计算设备及计算机存储介质 | |
JP2023078639A (ja) | 情報処理装置及び情報処理方法 | |
US11513866B1 (en) | Method and system for managing resource utilization based on reinforcement learning | |
Hu et al. | GitFL: Uncertainty-Aware Real-Time Asynchronous Federated Learning Using Version Control | |
Hazarika et al. | Hybrid Machine Learning Approach for Resource Allocation of Digital Twin in UAV-aided Internet-of-Vehicles Networks | |
Su et al. | Incentive-driven long-term optimization for hierarchical federated learning |