JP6778130B2 - 仮想計算機システムおよびそのリソース割当て方法 - Google Patents
仮想計算機システムおよびそのリソース割当て方法 Download PDFInfo
- Publication number
- JP6778130B2 JP6778130B2 JP2017033766A JP2017033766A JP6778130B2 JP 6778130 B2 JP6778130 B2 JP 6778130B2 JP 2017033766 A JP2017033766 A JP 2017033766A JP 2017033766 A JP2017033766 A JP 2017033766A JP 6778130 B2 JP6778130 B2 JP 6778130B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- physical
- cpu
- performance improvement
- improvement rate
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
特許文献1では、VMの仮想CPUと物理CPUの対応付けを制御して、仮想CPUへの対応付けがなくなった物理CPUをスリープ状態にして消費電力を低減している。
このようにすることで、仮想計算機システムの全体のスループットを向上することができる。
このようにすることで、簡易に性能評価を行い、仮想計算機システムの全体のスループットを向上することができる。
このようにすることで、簡易に性能評価を行い、仮想計算機システムの全体のスループットを向上することができる。
このようにすることで、短時間に物理CPUの割当て数を算出することができる。
このようにすることで、簡易に性能評価を行い、仮想計算機システムの全体のスループットを向上することができる。
図1Aと図1Bは、それぞれ異なるタイミングにおける、物理CPUとVMの仮想CPUとの対応関係と、ゲストOS(Operating System)/アプリケーションプログラム(以下、アプリと記す)と仮想CPUとの対応関係を示し、仮想計算機システムの概要を示す図である。
VM(VM0、VM1)には、それぞれ、4つの仮想CPU(vCPU0_1、vCPU0_2、vCPU0_3、vCPU0_4とvCPU1_1、vCPU1_2、vCPU1_3、vCPU1_4)が設けられている。
そして、VM(VM0、VM1)のそれぞれでは、ゲストOS1/アプリ1とゲストOS2/アプリ2が動作している。
物理CPU割当て制御部1は、アプリ1とアプリ2のそれぞれのプログラムの逐次処理と並列処理の実行時間(アプリ並列性情報)を取得し、VM動作の並列性を評価し、仮想化ソフトウェアに指示して、物理CPUのVM割当てを制御する。
これにより、VM(VM0)のゲストOS1/アプリ1は、物理CPU(CPU_1、CPU_2、CPU_3)で実行され、VM(VM1)のゲストOS2/アプリ2は、物理CPU(CPU_4)で実行されるように変更される。
物理CPU割当て制御部1は、アムダールの法則に基づいて、VMに割当てる物理CPU数を変えたときの性能向上率を、仮想計算機システム全体で評価して、物理CPUの割当てを制御する。
図2からも明らかなように、アプリの並列化可能な部分の実行時間の割合P(以下、並列率Pと記す)が小さい場合には、割当てる物理プロセッサの数を増やしても、性能向上率が大きくならない。逆に、割当てる物理プロセッサの数を減らしても、性能の低下率は小さいともいえる。
ステップS31で、物理CPU割当て制御部1は、各アプリのプログラムを実行している物理CPUの特定情報を取得する。
例えば、ゲストOSからアプリのプロセスID毎に実行する仮想CPUの特定情報を取得し、仮想化ソフトウェアから物理CPUと仮想CPUの対応関係を示す割当て情報を取得する。これにより、アプリのプロセスID毎に実行する物理CPUを特定することができる。
詳細は後述するが、VMの各アプリのOSやツールから取得することができる。
例えば、CPUピニングコマンドのCPUアフィニティーにより、VMに割当てる物理CPUを指定する。
図1Aまたは図1Bの構成を例に詳細に説明する。
そして、取得した情報に基づいて、アプリ1を処理している物理CPU(CPU_1とCPU_2)を求め、CPU割当て情報記憶部17に記憶する。
上記のように、CPU割当て情報収集部11は、ゲストOSとVMと仮想化ソフトウェアから、所定のアプリと処理している物理CPUの対応関係を求め、CPU割当て情報記憶部17に記憶する。
また、アプリ並列性情報取得部12は、アプリ2についても同様に、アプリ並列性情報を取得し、逐次処理/並列処理の実行時間情報記憶部18に記憶する。
上記のように、アプリ並列性情報取得部12は、実施形態の仮想計算機システムの全アプリについて、逐次処理と並列処理の実行時間を示すアプリ並列性情報を取得し、逐次処理/並列処理の実行時間情報記憶部18に記憶する。
また、並列実行時間割合算出部13は、アプリ2についても同様に、算出したアプリ2の並列率Pを性能向上率推定情報記憶部19に記憶する。
上記のように、並列実行時間割合算出部13は、逐次処理/並列処理の実行時間情報記憶部18を参照して、各アプリの並列率Pを算出し、性能向上率推定情報として性能向上率推定情報記憶部19に記憶する。
また、性能向上率推定部14は、同様に、アプリ2の並列率Pと式(1)から、物理CPU数が1〜4のそれぞれの場合の性能向上率を算出し、性能向上率推定情報記憶部19に記憶する。
上記のように、性能向上率推定部14は、アプリ毎に、並列率Pと式(1)から、物理CPU数が1〜4のそれぞれの場合の性能向上率を算出し、性能向上率推定情報記憶部19に記憶する。
評価方法の詳細は、後述するのでここでは説明を省略する。
CPU割当て判定部15は、最適と評価したアプリ1とアプリ2の物理CPUの数に基づいて、アプリ1を物理CPU(CPU_1とCPU_2とCPU_3)が処理するようにCPU割当て情報記憶部17を修正する。
CPU割当て判定部15は、また、アプリ2を物理CPU(CPU_4)が処理するようにCPU割当て情報記憶部17を修正する。
上記のように、CPU割当て判定部15は、全てアプリが最適化された数の物理CPUで処理されるように、CPU割当て情報記憶部17を修正する。
また、CPU割当て変更制御部16は、アプリ2を実行するVM(VM1)に、物理CPU(CPU_4)を割当てるように、仮想化ソフトウェアに指示する。
上記のように、CPU割当て変更制御部16は、CPU割当て情報記憶部17を参照して、アプリを実行するVMの物理CPUの割当てを仮想化ソフトウェアに指示する。
図5は、性能向上率推定情報記憶部19(図4参照)に記憶されている性能向上率推定部14(図4参照)で算出した性能向上率推定情報の一例を示す図である。
また、性能向上率推定情報には、一つの物理CPUの増加に対する性能向上率の増分を物理CPU数の増加毎に記録している(193、195、197)。
以下に、それぞれの評価方法を順に説明する。
ステップS61で、CPU割当て判定部15は、各アプリに割当てる物理CPU数を1に初期設定する。例えば、図5の性能向上率推定情報の例では、アプリ1とアプリ2とアプリ3のそれぞれの物理CPU数を1に初期設定する。
例えば、図5の性能向上率推定情報の例では、8つの物理CPUのうち、初期設定した残りの5つの物理CPUの追加を行うので、ステップS63とステップS64の処理を5回繰り返す。
例えば、初期設定(物理CPU数1)から物理CPU数2に増加する際のアプリの性能向上率の増分(193、195,197)は、それぞれ、0.111/0.333/0.667であるので、アプリ3が選択される。
例えば、初期設定(物理CPU数1)から物理CPU数2に増加する際には、アプリ3が選択されたので、アプリ3に割当てる物理CPU数を2にする。
以上の処理の繰り返しにより、CPU割当て判定部15は、システム性能が最大になるように、各アプリの物理CPU割当ての最適化を行う。
3つ目までの物理CPUの割当てにおいては、アプリ3の性能向上率の増分が最大となるため、物理CPUの増加分はアプリ3に割当てられる。しかし、4つ目の物理CPUの割当てでは、アプリの性能向上率の増分は、それぞれ、0.111/0.333/0.278となるため、アプリ2の性能向上率の増分が最大となり、4つ目の物理CPUはアプリ2に割当てられる。
図7の例においては、5つの物理CPUの割当て評価が行われ、アプリ1に1つ、アプリ2に2つ、アプリ3に5つの物理CPUが割当てられる。
ステップS81で、CPU割当て判定部15は、各アプリに割当てる物理CPU数を実装数に初期設定する。例えば、図5の性能向上率推定情報の例では、アプリ1とアプリ2とアプリ3のそれぞれの物理CPU数を8に初期設定する。
例えば、図5の性能向上率推定情報の例では、8つの物理CPUが実装されているので、アプリ1とアプリ2とアプリ3に割当てる物理CPU数の和が8になるまで、ステップS83とステップS84の処理を繰り返す。
例えば、初期設定(物理CPU数8)から物理CPUを一つ減らす際のアプリの性能向上率の差分は、0.005/0.028/0.152であるので、アプリ1が選択される。
例えば、初期設定(物理CPU数8)から物理CPUを一つ減らす際にはアプリ1が選択されたので、アプリ1に割当てる物理CPU数を7にする。
以上の処理の繰り返しにより、CPU割当て判定部15は、システム性能が最大になるように、各アプリの物理CPU割当ての最適化を行う。
5つ目までの物理CPUの減少においては、アプリ1の性能向上率の差分が最小となるため、アプリ1に割当てる物理CPUは、順に減少する。6つ目と7つ目の物理CPUの減少においては、アプリ2の性能向上率の差分が最小となり、アプリ2に割当てる物理CPUを減じる。
図9の例においては、16回の物理CPUの割当て削減が行われ、アプリ1に1つ、アプリ2に2つ、アプリ3に5つの物理CPUが割当てられる。
ステップS101で、CPU割当て判定部15は、初期設定として、各アプリに物理CPUを略均等数割当てる。例えば、図5の性能向上率推定情報の例では、8つの物理CPUがあるので、アプリ1に2つの物理CPUを、アプリ2とアプリ3にそれぞれ3つの物理CPUを割当てる。
つぎに、ステップS103で、CPU割当て判定部15は、性能向上率推定情報を参照して、物理CPUを1減少する際の性能向上率の差分が最小のアプリを選択する。
性能向上率の増分が差分以上であれば(S104のYes)、選択されたアプリの物理CPUの割当て数を1増1減する(S105)。つまり、ステップS102で選択されたアプリの物理CPUの割当て数を1増加し、ステップS103で選択されたアプリの物理CPUの割当て数を1減少する。
そして、ステップS102に戻り、物理CPUの割当て数の調整を継続する。
以上の処理により、CPU割当て判定部15は、システム性能が最大になるように、各アプリの物理CPU割当ての最適化を行う。
初期設定から物理CPU数を1増加する際のアプリの性能向上率の増分(193、195,197)は、それぞれ、0.043/0.100/0.357であるので、アプリ3が選択される(S102の処理)。初期設定から物理CPUを1つ減らす際のアプリの性能向上率の差分は、0.111/0.167/0.476であるので、アプリ1が選択される(S103の処理)。
アプリ3の性能向上率の増分はアプリ1の性能向上率の差分以上であるので(S104の処理)、各アプリの物理CPUの割当て数は、1/3/4に調整される(S105の処理)。
アプリ3の性能向上率の増分はアプリ1の性能向上率の差分以上であるので(S104の処理)、各アプリの物理CPUの割当て数は、1/2/5に調整される(S105の処理)。
アプリ3の性能向上率の増分はアプリ3の性能向上率の差分より小さいので(S104の処理)、物理CPUの割当て処理を終了する。
以上のより、図5の性能向上率推定情報の例において、アプリ1に1つ、アプリ2に2つ、アプリ3に5つの物理CPUが割当てられる。
CPU割当て判定部15は、図5の性能向上率推定情報を参照して、いずれかの評価方法により、アプリ毎の物理CPU割当ての処理を行えばよい。
例えば、実施形態の仮想計算機システムで、リクエスト・パケットを受信し、内部処理した結果をレスポンス・パケットとして返信する通信ソフトウェアを実行する場合を説明する。
この通信ソフトウェアでは、リクエスト・パケットの内容に応じて、内部処理群123の処理可能な並列数が変わる。
このために、並列化可能部分である内部処理群123の並列処理の実行時間と、並列化不可能部分である振り分け処理部121と集約処理部122の逐次処理の実行時間と、を求めて、並列率Pを算出する。
これにより、振り分け処理部121と集約処理部122の逐次処理部分、および、内部処理群123の並行処理部分、双方の実行時間の割合を得ることができる。
特に、メニーコア化したシステムにおいては、有用となる。
11 CPU割当て情報収集部
12 アプリ並列性情報取得部
13 並列実行時間割合算出部
14 性能向上率推定部
15 CPU割当て判定部
16 CPU割当て変更制御部
17 CPU割当て情報記憶部
18 逐次処理/並列処理の実行時間情報記憶部
19 性能向上率推定情報記憶部
Claims (5)
- 複数の仮想CPUが並列動作して処理されるプログラムを実行する仮想計算機システムであって、
前記仮想CPUに対応付ける物理CPUの割当て数を変える物理CPU割当て制御部を有し、
物理CPU割当て制御部は、
前記プログラムの逐次処理と並列処理の実行時間を示す並列性情報を取得する並列性情報取得部と、
前記プログラム毎に前記並列性情報に基づいて並列化可能な部分の実行時間の割合を示す並列率を算出する並列実行時間割合算出部と、
前記並列率と物理CPU数とから、アムダールの法則に基づいて物理CPU数を増加または減少した際の前記プログラム毎の性能向上率を算出する性能向上率推定部と、
前記プログラムの実行中に周期的に、前記プログラム毎の前記性能向上率の変化に基づいて、プログラム毎の物理CPU割当て数を増加または減少するCPU割当て判定部と、
を備え、
前記プログラムの逐次処理の実行時間と並列処理の実行時間から求まる並列性情報に基づいて、前記仮想CPUに対応付ける物理CPUの割当て数を変える
ことを特徴とする仮想計算機システム。 - 複数の仮想CPUが並列動作して処理される複数のプログラムを実行する仮想計算機システムのリソース割当て方法であって、
前記プログラムの逐次処理と並列処理の実行時間を示す並列性情報を前記プログラムの実行中に周期的に取得するステップと、
前記プログラム毎に前記並列性情報に基づいて並列化可能な部分の実行時間の割合を示す並列率を算出するステップと、
前記並列率と物理CPU数とから、アムダールの法則に基づいて物理CPU数を増加または減少した際の前記プログラム毎の性能向上率を算出するステップと、
前記プログラム毎の前記性能向上率の変化に基づいて、プログラム毎の物理CPU割当て数を増加または減少するステップと、
前記プログラムの実行中に周期的に、前記仮想CPUに対応付ける物理CPUの割当て数を変えるステップと、
を含むことを特徴とする仮想計算機システムのリソース割当て方法。 - 請求項2に記載の仮想計算機システムのリソース割当て方法において、
前記プログラム毎の前記性能向上率の変化に基づいて、プログラム毎の物理CPU割当て数を増加または減少するステップは、
各プログラムのそれぞれに物理CPUを1つ割当てるステップと、
各プログラム中から、物理CPUを1増加した際の性能向上率の増分が最大となるプログラムを選択するステップと、
前記選択されたプログラムの物理CPUの割当て数を1つ増加するステップと、
を含むことを特徴とする仮想計算機システムのリソース割当て方法。 - 請求項2に記載の仮想計算機システムのリソース割当て方法において、
前記プログラム毎の前記性能向上率の変化に基づいて、プログラム毎の物理CPU割当て数を増加または減少するステップは、
前記プログラム毎に全物理CPUを略均等数割当てるステップと、
各プログラム中から、物理CPUを1増加した際の性能向上率の増分が最大となるプログラムを選択するとともに、物理CPUを1減少した際の性能向上率の差分が最小となるプログラムを選択するステップと、
前記物理CPUを1増加した際の性能向上率の増分が、前記物理CPUを1減少した際の性能向上率の差分以上の場合に、前記物理CPUを1増加した際の性能向上率の増分が最大となるプログラムの物理CPUの割当て数を1つ増加し、物理CPUを1減少した際の性能向上率の差分が最小となるプログラムの物理CPUの割当て数を1つ減少するステップと、
を含むことを特徴とする仮想計算機システムのリソース割当て方法。 - 請求項2に記載の仮想計算機システムのリソース割当て方法において、
前記プログラム毎の前記性能向上率の変化に基づいて、プログラム毎の物理CPU割当て数を増加または減少するステップは、
各プログラムのそれぞれに物理CPUの実装数を割当てるステップと、
各プログラム中から、物理CPUを1減少した際の性能向上率の差分が最小となるプログラムを選択するステップと、
前記選択されたプログラムの物理CPUの割当て数を1つ減少するステップと、
を含むことを特徴とする仮想計算機システムのリソース割当て方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017033766A JP6778130B2 (ja) | 2017-02-24 | 2017-02-24 | 仮想計算機システムおよびそのリソース割当て方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017033766A JP6778130B2 (ja) | 2017-02-24 | 2017-02-24 | 仮想計算機システムおよびそのリソース割当て方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018139064A JP2018139064A (ja) | 2018-09-06 |
JP6778130B2 true JP6778130B2 (ja) | 2020-10-28 |
Family
ID=63451398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017033766A Active JP6778130B2 (ja) | 2017-02-24 | 2017-02-24 | 仮想計算機システムおよびそのリソース割当て方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6778130B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959020B (zh) * | 2018-05-08 | 2021-01-12 | 华为技术有限公司 | 一种计算机cpu利用率的计算方法和装置 |
US11620510B2 (en) * | 2019-01-23 | 2023-04-04 | Samsung Electronics Co., Ltd. | Platform for concurrent execution of GPU operations |
CN114281545B (zh) * | 2021-12-20 | 2022-07-12 | 中南大学 | 基于cpu资源与图像模型时延关系的资源分配方法 |
CN117632521B (zh) * | 2024-01-26 | 2024-05-03 | 中电云计算技术有限公司 | 后台任务的cpu利用率控制方法、装置、设备及存储介质 |
CN117687799A (zh) * | 2024-02-02 | 2024-03-12 | 中国科学院空天信息创新研究院 | 一种面向遥感解译应用的分布流式加速方法及计算终端 |
-
2017
- 2017-02-24 JP JP2017033766A patent/JP6778130B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018139064A (ja) | 2018-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6778130B2 (ja) | 仮想計算機システムおよびそのリソース割当て方法 | |
CN105988872B (zh) | 一种cpu资源分配的方法、装置及电子设备 | |
Zhang et al. | Integrating resource consumption and allocation for infrastructure resources on-demand | |
Guo et al. | Moving hadoop into the cloud with flexible slot management and speculative execution | |
JP7081514B2 (ja) | オートスケール型性能保証システム及びオートスケール型性能保証方法 | |
US20160196157A1 (en) | Information processing system, management device, and method of controlling information processing system | |
Guo et al. | Flexslot: Moving hadoop into the cloud with flexible slot management | |
JP6428476B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP2016042284A (ja) | 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム | |
WO2008155124A2 (en) | Load balancing | |
WO2016092856A1 (ja) | 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体 | |
Creech et al. | Efficient multiprogramming for multicores with scaf | |
Sena et al. | Autonomic malleability in iterative mpi applications | |
Sfakianakis et al. | Skynet: Performance-driven resource management for dynamic workloads | |
US20120240111A1 (en) | Storage medium storing program for controlling virtual machine, computing machine, and method for controlling virtual machine | |
US10628223B2 (en) | Optimized allocation of tasks in heterogeneous computing systems | |
US10846138B2 (en) | Allocating resources of a memory fabric | |
JP2012181578A (ja) | 更新制御装置及びプログラム | |
CN104008001B (zh) | 用于大数据支撑的虚拟机动态迁移方法 | |
Coutinho et al. | Harness project: Managing heterogeneous computing resources for a cloud platform | |
Cores et al. | An application-level solution for the dynamic reconfiguration of mpi applications | |
Gouasmi et al. | Cost-efficient distributed MapReduce job scheduling across cloud federation | |
Cheng et al. | A user-level numa-aware scheduler for optimizing virtual machine performance | |
Simão et al. | VM economics for Java cloud computing: An adaptive and resource-aware java runtime with quality-of-execution | |
Zhang et al. | A scheduling method for multiple virtual machines migration in cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200424 |
|
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: 20201006 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201009 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6778130 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |