JP5703799B2 - Computer, control method and program - Google Patents
Computer, control method and program Download PDFInfo
- Publication number
- JP5703799B2 JP5703799B2 JP2011022149A JP2011022149A JP5703799B2 JP 5703799 B2 JP5703799 B2 JP 5703799B2 JP 2011022149 A JP2011022149 A JP 2011022149A JP 2011022149 A JP2011022149 A JP 2011022149A JP 5703799 B2 JP5703799 B2 JP 5703799B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- cpu
- guest
- physical processor
- frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Power Sources (AREA)
Description
この発明は、計算機、制御方法及びプログラムに関する。 The present invention relates to a computer, a control method, and a program.
従来、計算機において、一つの物理的なCPU(Central Processing Unit、中央処理装置)上で複数のOS(Operating System、オペレーティングシステム)を動作させて複数の仮想マシンを実行する仮想化システムがある。仮想化システムにおいて、各仮想マシンへ仮想バッテリを提供し、仮想マシンが駆動中であればCPU使用時間を放電量に換算し、仮想マシンが停止中であれば停止時間を充電量に換算して、仮想バッテリの残量を制御する技術がある。また、物理的なCPUに割り当てられている仮想マシンを削除した結果、仮想マシンの割り当てがなくなった物理的なCPUをスリープ状態に移行させることによって、消費電力の低減を図る技術がある。また、データ処理システム内に生成された区画に、物理リソースのセットのうちの少なくともいくつかの物理リソースを割り当て、割り当てられなかった物理リソースの電力消費を低減する技術がある。また、物理リソースに供給するクロック周波数を低くすることにより、電力消費量を低減する技術がある。 2. Description of the Related Art Conventionally, in a computer, there is a virtualization system that executes a plurality of virtual machines by operating a plurality of OSs (Operating Systems, operating systems) on a single physical CPU (Central Processing Unit). In the virtualization system, a virtual battery is provided to each virtual machine, and if the virtual machine is running, the CPU usage time is converted into a discharge amount, and if the virtual machine is stopped, the stop time is converted into a charge amount. There is a technique for controlling the remaining amount of the virtual battery. In addition, there is a technique for reducing power consumption by shifting a physical CPU, which has no virtual machine assigned as a result of deleting a virtual machine assigned to a physical CPU, to a sleep state. In addition, there is a technique for allocating at least some physical resources of a set of physical resources to a partition generated in the data processing system and reducing power consumption of physical resources that have not been allocated. In addition, there is a technique for reducing power consumption by lowering a clock frequency supplied to a physical resource.
しかしながら、従来の技術では、物理的なCPUの負荷の状態にかかわらず、各仮想マシンは、予め設定されているクロック周波数で動作する。そのため、物理的なCPUが負荷の低い状態にあるため、各仮想マシンを低速で実行することができる状態であるにもかかわらず、仮想マシンに高いクロック周波数が設定されている場合には、物理的なCPUが高いクロック周波数で動作することがある。また、物理的なCPUの負荷に応じて物理的なCPUのクロック周波数の上げ下げを行う場合、クロック周波数が低くてもかまわない仮想マシンが物理的なCPUに割り当てられているときでも、物理的なCPUの負荷が高い状態のときには、物理的なCPUが高いクロック周波数で動作することがある。このように、物理的なCPUが低いクロック周波数で動作することができる状況のときでも、それよりも高いクロック周波数で物理的なCPUが動作することがあるため、無駄な電力を消費してしまうという問題点がある。 However, in the conventional technology, each virtual machine operates at a preset clock frequency regardless of the physical load state of the CPU. For this reason, the physical CPU is in a low-load state, so if each virtual machine can be executed at a low speed but a high clock frequency is set for the virtual machine, A typical CPU may operate at a high clock frequency. Also, when the clock frequency of the physical CPU is increased or decreased according to the load of the physical CPU, even when a virtual machine that may have a low clock frequency is assigned to the physical CPU, When the CPU load is high, the physical CPU may operate at a high clock frequency. Thus, even in a situation where the physical CPU can operate at a low clock frequency, the physical CPU may operate at a higher clock frequency, and thus wasteful power is consumed. There is a problem.
消費電力を削減することができる計算機、制御方法及びプログラムを提供することを目的とする。 An object of the present invention is to provide a computer, a control method, and a program that can reduce power consumption.
計算機は、1個以上の物理的なプロセッサ、管理表、決定部及び変更部を備えている。管理表は、複数の仮想マシンごとに、クロック周波数を制御する制御情報を管理する。仮想マシンは、物理的なプロセッサで実行されることによって実現される。制御情報は、仮想マシンの種別に応じて設定されている。決定部は、仮想マシンごとに、管理表の制御情報に基づいてしきい値を求める。決定部は、仮想マシンごとに、しきい値と物理的なプロセッサの利用率とに基づいてクロック周波数を決定する。変更部は、決定部により決定されたクロック周波数に基づいて物理的なプロセッサのクロック周波数を変更する。 The computer includes one or more physical processors, a management table, a determination unit, and a change unit. The management table manages control information for controlling the clock frequency for each of a plurality of virtual machines. The virtual machine is realized by being executed by a physical processor. The control information is set according to the type of virtual machine. The determination unit obtains a threshold value for each virtual machine based on the control information in the management table. The determination unit determines a clock frequency for each virtual machine based on a threshold value and a physical processor utilization rate. The changing unit changes the clock frequency of the physical processor based on the clock frequency determined by the determining unit.
この計算機、制御方法及びプログラムによれば、消費電力を削減することができる。 According to this computer, control method, and program, power consumption can be reduced.
以下に添付図面を参照して、この計算機、制御方法及びプログラムの好適な実施の形態を詳細に説明する。計算機、制御方法及びプログラムは、仮想マシンごとに、仮想マシンの種別に応じた制御情報に基づいてしきい値を求め、しきい値とプロセッサの利用率(負荷)とに基づいてクロック周波数を決定し、プロセッサのクロック周波数を決定したクロック周波数に変更するものである。以下の各実施例の説明においては、同様の構成要素には同一の符号を付して、重複する説明を省略する。 Exemplary embodiments of a computer, a control method, and a program will be described below in detail with reference to the accompanying drawings. For each virtual machine, the computer, the control method, and the program obtain a threshold value based on control information corresponding to the type of virtual machine, and determine the clock frequency based on the threshold value and the processor utilization rate (load). Then, the clock frequency of the processor is changed to the determined clock frequency. In the following description of each embodiment, the same components are denoted by the same reference numerals, and redundant descriptions are omitted.
(実施例1)
図1は、実施例1にかかる計算機を示すブロック図である。図1に示すように、計算機は、1個以上の物理的なプロセッサ3、管理表4、決定部5及び変更部6を備えている。
(Example 1)
FIG. 1 is a block diagram of the computer according to the first embodiment. As shown in FIG. 1, the computer includes one or more physical processors 3, a management table 4, a
管理表4は、複数の仮想マシン1,2ごとに、クロック周波数を制御する制御情報を管理する。仮想マシン1,2は、物理的なプロセッサ3で実行されることによって実現される。制御情報は、仮想マシン1,2の種別に応じて設定されている。決定部5は、仮想マシン1,2ごとに、管理表4の制御情報に基づいてしきい値を求める。決定部5は、仮想マシン1,2ごとに、しきい値と物理的なプロセッサ3の利用率とに基づいてクロック周波数を決定する。変更部6は、決定部5により決定されたクロック周波数に基づいて物理的なプロセッサ3のクロック周波数を変更する。
The management table 4 manages control information for controlling the clock frequency for each of the plurality of
実施例1によれば、仮想マシン1,2の種別に応じて仮想マシン1,2のクロック周波数が決まり、それに応じて物理的なプロセッサ3のクロック周波数が変更される。例えば、物理的なプロセッサ3の利用率に連動してクロック周波数が変動する仮想マシン1,2の場合には、物理的なプロセッサ3の利用率に連動したクロック周波数で物理的なプロセッサ3が動作する。物理的なプロセッサ3の利用率に連動し、かつ重み付けされてクロック周波数が変動する仮想マシン1,2の場合には、物理的なプロセッサ3の利用率に連動し、かつ重み付けされたクロック周波数で物理的なプロセッサ3が動作する。一定のクロック周波数で動作する仮想マシン1,2の場合には、一定のクロック周波数で物理的なプロセッサ3が動作する。つまり、物理的なプロセッサ3が低いクロック周波数で動作することができる状況のときには、物理的なプロセッサ3が低いクロック周波数で動作するので、計算機の消費電力を削減することができる。
According to the first embodiment, the clock frequency of the
(実施例2)
・ハードウェア構成の説明
図2は、実施例2にかかる計算機のハードウェア構成を示すブロック図である。図2に示すように、計算機は、物理的なプロセッサとして例えばCPU11、表示部12、キー13、メインメモリ14及びNAND(Not AND)メモリ15を備えている。CPU11、表示部12、キー13、メインメモリ14及びNANDメモリ15は、バス16に接続されている。
(Example 2)
FIG. 2 is a block diagram of a hardware configuration of a computer according to the second embodiment. As shown in FIG. 2, the computer includes, for example, a
CPU11は、計算機全体の制御を司る。CPU11は、後述するプログラムを実行し、後述する種々の仮想マシン(VM:Virtual Machine)や仮想マシンモニタを実現する。CPU11は、クロック周波数(CPU周波数)や駆動電圧を動的に変更することができるものである。表示部12は、例えば液晶パネルを備えている。キー13は、例えば数字や文字を入力するためのキーやボタンを備えている。キー13は、表示部12と一体化されたタッチパネルを備えており、表示部12に表示されたキーの画像に触れることにより数字や文字を入力することができるようになっていてもよい。
The
メインメモリ14は、CPU11の作業領域として用いられる。メインメモリ14には、例えばOSやアプリケーションのプログラムが展開されてもよい。CPU11は、メインメモリ14に展開されたOSやアプリケーションのプログラムを実行してもよい。メインメモリ14は、例えばRAM(Random Access Memory)を備えている。
The
NANDメモリ15は、例えばOSやアプリケーションのプログラムを格納している。OSやアプリケーションのプログラムは、NANDメモリ15から読み出されてメインメモリ14に展開されてもよい。NANDメモリ15は、不揮発性のメモリとして、例えばNAND型のフラッシュメモリを備えていてもよい。計算機は、NANDメモリ15の代わりに、他の不揮発性メモリを備えていてもよい。
The
なお、計算機が携帯電話機などの無線通信端末である場合には、計算機は無線通信部を備えている。また、計算機は、画像処理や音声処理を行うDSP(Digital Signal Processor)や、外部メモリとのインタフェースなどを備えていてもよい。 When the computer is a wireless communication terminal such as a mobile phone, the computer includes a wireless communication unit. The computer may also include a DSP (Digital Signal Processor) that performs image processing and sound processing, an interface with an external memory, and the like.
・機能的な構成の説明
図3は、実施例2にかかる計算機の機能的な構成を示すブロック図である。図3に示すように、計算機は、複数の仮想マシン21〜25及び仮想マシンモニタ26を備えている。仮想マシン21〜25及び仮想マシンモニタ26は、CPU11が仮想マシン及び仮想マシンモニタを実現するプログラムを実行することにより実現されてもよい。例えば各仮想マシン21〜25では、独立してOSが実行されてもよい。以下の説明では、仮想マシン21〜25のID(Identifier、識別子)を例えばA、B、C、D及びEとする。
FIG. 3 is a block diagram of a functional configuration of the computer according to the second embodiment. As shown in FIG. 3, the computer includes a plurality of
仮想マシン21,22は、ゲスト仮想マシン(以下、ゲストVMと表記する)である。ゲスト仮想マシン21及びゲスト仮想マシン22を、それぞれ、ゲストVM−A21及びゲストVM−B22と表記することがある。ゲストVM−A21及びゲストVM−B22は、ユーザーが使用するアプリケーションを動作させる仮想マシンである。ゲストVMは、使用形態に応じて、一つだけ起動されてもよいし、複数起動されてもよい。
The
ゲストVMは、例えばフロントエンドドライバ27,28を備えている。フロントエンドドライバ27,28は、ゲストVMがデバイスを操作する際に利用されるモジュールである。フロントエンドドライバ27,28は、後述するドライバ仮想マシンと連携して、デバイスを操作する処理を行う。
The guest VM includes front-
仮想マシン23,24は、ドライバ仮想マシン(以下、ドライバVMと表記する)である。ドライバ仮想マシン23及びドライバ仮想マシン24を、それぞれ、ドライバVM−C23及びドライバVM−D24と表記することがある。ドライバVM−C23及びドライバVM−D24は、デバイスを制御するデバイスドライバを動作させる仮想マシンである。デバイス種別ごとにドライバVMが起動されることがあるので、複数のドライバVMが起動されることがある。
The
ドライバVMは、例えばバックエンドドライバ29,30を備えている。バックエンドドライバ29,30は、ゲストVMのフロントエンドドライバ27,28からの要求を受けて、デバイスの操作を行う。図示例では、例えばドライバVM−C23のバックエンドドライバ29は、キー13の操作を行う。例えばドライバVM−D24のバックエンドドライバ30は、NANDメモリ15の操作を行う。
The driver VM includes back-
仮想マシン25は、サービス仮想マシン(以下、サービスVMと表記する)である。サービス仮想マシン25をサービスVM−E25と表記することがある。サービスVM−E25は、ユーザーにより直接操作されるわけではなく、バックグラウンドで動作する。サービスVM−E25は、例えばウイルスチェックなどシステムに必要な補助的なサービスを実施する。
The
仮想マシンモニタ26は、一つのCPU11を複数の仮想マシンとして利用する制御を行う。それによって、一つのCPU11を複数の仮想マシンとして利用することができる。仮想マシンモニタ26は、決定部として例えばゲスト電力制御モジュール31を備えている。ゲスト電力制御モジュール31は、例えば管理表としてゲスト電力制御管理表32を備えている。
The virtual machine monitor 26 performs control to use one
ゲスト電力制御モジュール31は、一定間隔またはゲストVMの切り替え時に動作して、ゲスト電力制御管理表32を参照し、更新の必要があるときにはゲスト電力制御管理表32を更新する。ゲスト電力制御モジュール31は、各仮想マシンのCPU周波数を変更する必要があるか否かを判断し、変更の必要がある場合には後述するCPU周波数切り替え処理を行う。
The guest
ゲスト電力制御管理表32は、仮想マシンごとに、仮想マシンの種別や動作状態に応じて電力制御を行うのに必要な情報を保持する。ゲスト電力制御管理表32は、例えばメインメモリ14やNANDメモリ15に記憶される。仮想マシンの種別には、例えば上述したゲストVMやドライバVMやサービスVMなどがある。仮想マシンの動作状態には、例えばフォアグラウンドで動作している状態とバックグラウンドで動作している状態がある。
The guest power control management table 32 holds information necessary for performing power control for each virtual machine according to the type and operating state of the virtual machine. The guest power control management table 32 is stored, for example, in the
また、ゲスト電力制御管理表32の一部として、あるいはゲスト電力制御管理表32とは別に、後述するMaxデフォルト値及びMinデフォルト値、並びにフロント係数のデフォルト値が、例えばメインメモリ14やNANDメモリ15に記憶されていてもよい。
Further, as a part of the guest power control management table 32 or separately from the guest power control management table 32, the Max default value and the Min default value, which will be described later, and the default value of the front coefficient are, for example, the
仮想マシンモニタ26は、画面切り替え制御モジュール33、CPUスケジューラ34、及び変更部として例えばCPU周波数変更処理モジュール35を備えている。画面切り替え制御モジュール33は、ユーザーが、計算機の図示しない画面切り替えキーを押下するなどの画面の切り替え操作を行ったときに呼び出される。画面切り替え制御モジュール33は、新規にフロント画面で操作されるゲストVM、すなわちフォアグラウンドで動作するゲストVMを決定し、フロント画面で操作されるゲストVMを切り替える。
The virtual machine monitor 26 includes a screen
CPUスケジューラ34は、CPU11に仮想マシンを割り当てる制御を行う。割り当て方の一例として、例えばCREDITやSEDF(Simple Earliest Deadline First)やBVT(Borrowed Virtual Time)などのポリシーがある。また、複数のポリシーの中から適宜選択して割り当てるようにしてもよい。CPUスケジューラ34は、CPU11で動作させる仮想マシンの切り替えに合わせてゲスト電力制御モジュール31のCPU周波数切り替え処理を呼び出す。CPU周波数変更処理モジュール35は、CPU11のCPU周波数を変更する処理を実行する。
The
・ゲスト電力制御管理表の一例
図4は、実施例2にかかる計算機の管理表の一例を示す図表である。図4に示すように、ゲスト電力制御管理表32は、例えばVM_IDフィールド、VMタイプ係数フィールド、フロント係数フィールド及びCPU周波数フィールドを有する。VM_IDフィールドには、仮想マシンのIDが格納される。VMタイプ係数フィールドには、仮想マシンの種別に関する制御情報としてVMタイプ係数の値が格納される。仮想マシンの種別に関する制御情報は、仮想マシンの種別に応じて予め設定されていてもよい。
Example of Guest Power Control Management Table FIG. 4 is a table illustrating an example of a computer management table according to the second embodiment. As shown in FIG. 4, the guest power control management table 32 has, for example, a VM_ID field, a VM type coefficient field, a front coefficient field, and a CPU frequency field. The VM_ID field stores the virtual machine ID. In the VM type coefficient field, the value of the VM type coefficient is stored as control information related to the type of virtual machine. Control information related to the type of virtual machine may be set in advance according to the type of virtual machine.
フロント係数フィールドには、仮想マシンの動作状態に関する制御情報としてフロント係数の値が格納される。仮想マシンの動作状態に関する制御情報は、仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、によって動的に変化してもよい。CPU周波数フィールドには、仮想マシンが動作する際にCPU11に設定されるCPU周波数が格納される。
In the front coefficient field, the value of the front coefficient is stored as control information related to the operating state of the virtual machine. The control information related to the operation state of the virtual machine may change dynamically depending on whether the virtual machine is operating in the foreground or the background. The CPU frequency field stores the CPU frequency set in the
・仮想マシンのCPU周波数の決定方法の一例
VMタイプ係数の値及びフロント係数の値は、例えば次の(1)式及び(2)式において用いられる。(1)式及び(2)式において、しきい値Max及びしきい値Minは、それぞれ、CPU11の利用率と比較されるしきい値の最大値及び最小値である。ゲスト電力制御モジュール31は、CPU11の利用率がしきい値Maxよりも大きい場合には仮想マシンのCPU周波数を高くし、CPU11の利用率がしきい値Minよりも小さい場合には仮想マシンのCPU周波数を低くするように、制御する。Maxデフォルト値及びMinデフォルト値は、それぞれ、しきい値の最大値及び最小値のデフォルト値であり、予め設定されていてもよい。
An example of a method for determining the CPU frequency of the virtual machine The value of the VM type coefficient and the value of the front coefficient are used in, for example, the following expressions (1) and (2). In the expressions (1) and (2), the threshold value Max and the threshold value Min are the maximum value and the minimum value of the threshold value to be compared with the usage rate of the
(1)式及び(2)式によれば、VMタイプ係数の値が大きいと、しきい値Max及びしきい値Minがともに大きくなるので、仮想マシンのCPU周波数は、CPU11の利用率が大きくなっても高くなりにくく、かつCPU11の利用率が小さくなると低くなりやすい。つまり、VMタイプ係数の値が大きい仮想マシンは、できるだけ低いCPU周波数で動作するように制御される。
According to the expressions (1) and (2), if the value of the VM type coefficient is large, both the threshold value Max and the threshold value Min are large. Therefore, the CPU frequency of the virtual machine has a large utilization rate of the
それに対して、VMタイプ係数の値が小さいと、しきい値Max及びしきい値Minがともに小さくなるので、仮想マシンのCPU周波数は、CPU11の利用率が大きくなると高くなりやすく、かつCPU11の利用率が小さくなっても低くなりにくい。つまり、VMタイプ係数の値が小さい仮想マシンは、できるだけ高いCPU周波数で動作するように制御される。
On the other hand, if the value of the VM type coefficient is small, both the threshold value Max and the threshold value Min are small. Therefore, the CPU frequency of the virtual machine is likely to increase as the usage rate of the
例えば図4に示す例では、VMタイプ係数の標準値は例えば1である。仮想マシンのIDがA及びBであるゲストVMのVMタイプ係数は標準値に設定されている。ゲストVMは、CPU11の利用率に連動してCPU周波数が変動する仮想マシンである。
For example, in the example illustrated in FIG. 4, the standard value of the VM type coefficient is, for example, 1. The VM type coefficients of guest VMs whose virtual machine IDs are A and B are set to standard values. The guest VM is a virtual machine whose CPU frequency varies in conjunction with the usage rate of the
仮想マシンのIDがC及びDであるドライバVMのVMタイプ係数は標準値や標準値と異なる値、例えば1や1.2に設定されている。ドライバVMは、CPU11の利用率に連動し、かつ重み付けされてCPU周波数が変動する仮想マシンである。例えば、ドライバVM−CのVMタイプ係数の値は1であり、ドライバVM−DのVMタイプ係数の値は1.2であるので、ドライバVM−CはドライバVM−Dよりも高いCPU周波数で動作しやすいように設定されていることになる。
The VM type coefficient of the driver VM whose virtual machine IDs are C and D is set to a standard value or a value different from the standard value, for example, 1 or 1.2. The driver VM is a virtual machine that is linked to the usage rate of the
仮想マシンのIDがEであるサービスVMのVMタイプ係数の値は例えば0に設定されている。VMタイプ係数の値が例えば0に設定されている仮想マシンは、CPU11の利用率に連動しないで、一定のCPU周波数で動作する仮想マシンである。
The value of the VM type coefficient of the service VM whose virtual machine ID is E is set to 0, for example. A virtual machine in which the value of the VM type coefficient is set to 0, for example, is a virtual machine that operates at a constant CPU frequency without being linked to the usage rate of the
また、フロント係数の値についても同様であり、フロント係数の値が大きい仮想マシンは、できるだけ低いCPU周波数で動作するように制御される。フロント係数の値が小さい仮想マシンは、できるだけ高いCPU周波数で動作するように制御される。 The same applies to the value of the front coefficient, and a virtual machine having a large front coefficient value is controlled to operate at the lowest possible CPU frequency. A virtual machine having a small front coefficient value is controlled to operate at a CPU frequency as high as possible.
例えば図4に示す例では、フロント係数のデフォルト値は例えば0.9である。仮想マシンのIDがAであるゲストVMのフロント係数はデフォルト値に設定されている。仮想マシンのIDがBであるゲストVMのフロント係数はデフォルト値よりも大きい値、例えば1に設定されている。従って、ゲストVM−AはゲストVM−Bよりも高いCPU周波数で動作しやすいように設定されていることになり、ゲストVM−Aがフォアグラウンドで動作し、ゲストVM−Bがバックグラウンドで動作していることになる。 For example, in the example shown in FIG. 4, the default value of the front coefficient is, for example, 0.9. The front coefficient of the guest VM whose virtual machine ID is A is set to a default value. The front coefficient of the guest VM whose virtual machine ID is B is set to a value larger than the default value, for example, 1. Therefore, the guest VM-A is set to operate at a higher CPU frequency than the guest VM-B, the guest VM-A operates in the foreground, and the guest VM-B operates in the background. Will be.
・制御方法の説明
[CPU周波数定期更新処理]
図5は、実施例2にかかる制御方法におけるCPU周波数定期更新処理を示すフローチャートである。CPU周波数定期更新処理は、ゲスト電力制御モジュール31により一定間隔で定期的に実施される。
・ Explanation of control method [CPU frequency periodic update processing]
FIG. 5 is a flowchart of the CPU frequency periodic update process in the control method according to the second embodiment. The CPU frequency periodic update process is periodically performed by the guest
図5に示すように、CPU周波数定期更新処理は、例えば計算機に内蔵されたタイマーの割り込みにより一定間隔おきに起動される。CPU周波数定期更新処理が開始されると、ゲスト電力制御モジュール31は、まず、例えばCPUスケジューラ34のCPU負荷計測モジュール(図3において図示省略)を呼び出し、直近の計算機全体でのCPU11の利用率を算出する(ステップS1)。
As shown in FIG. 5, the CPU frequency periodic update process is started at regular intervals, for example, by interruption of a timer built in the computer. When the CPU frequency periodic update process is started, the guest
次いで、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、一番目の仮想マシンのVMタイプ係数の値が0であるか否かを判断する(ステップS2)。なお、ステップS2をステップS1の前に行ってもよい。VMタイプ係数の値が0でない場合(ステップS2:No)、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、例えば上述した(1)式及び(2)式に基づいて、しきい値Max及びしきい値Minを計算する(ステップS3)。なお、ステップS1の前にステップS2及びステップS3を行ってもよい。
Next, the guest
次いで、ゲスト電力制御モジュール31は、ステップS1で算出したCPU11の利用率がしきい値Maxよりも大きいか否か、またはしきい値Minよりも小さいか否か、を判断する(ステップS4)。しきい値Maxよりも大きいか、またはしきい値Minよりも小さい場合(ステップS4:Yes)、ゲスト電力制御モジュール31は、当該仮想マシンのCPU周波数を決定する。そして、ゲスト電力制御モジュール31は、決定したCPU周波数が現在の設定値と異なる場合には、ゲスト電力制御管理表32のCPU周波数フィールドの、当該仮想マシンに対応する格納値を更新する(ステップS5)。
Next, the guest
ステップS5では、例えば、CPU11の利用率がしきい値Maxよりも大きい場合には、当該仮想マシンのCPU周波数を現在の設定値よりも高くしてもよい。CPU周波数を現在の設定値よりも高くする場合には、例えば複数段階に設定可能なCPU周波数の最も高い周波数が設定されてもよい。例えばCPU周波数が600MHz、500MHz、250MHz及び125MHzの4段階に設定可能である場合、最も高い600MHzが設定されてもよい。
In step S5, for example, when the usage rate of the
また、例えば、CPU11の利用率がしきい値Minよりも小さい場合には、当該仮想マシンのCPU周波数を現在の設定値よりも低くしてもよい。CPU周波数を現在の設定値よりも低くする場合には、例えば複数段階に設定可能なCPU周波数の一段低い周波数が設定されてもよい。例えばCPU周波数が600MHz、500MHz、250MHz及び125MHzの4段階に設定可能であり、現在の設定値が500MHzである場合、一段低い250MHzが設定されてもよい。
For example, when the usage rate of the
次いで、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32のCPU周波数フィールドの格納値が更新された仮想マシンが現在、CPU11で動作中である場合には、CPU周波数変更処理モジュール35を呼び出す。呼び出されたCPU周波数変更処理モジュール35は、CPU11のCPU周波数の設定を、ステップS5で決定された周波数に更新する(ステップS6)。
Next, the guest
そして、ステップS7へ進む。一方、仮想マシンのVMタイプ係数の値が0である場合(ステップS2:Yes)、またはCPU11の利用率がしきい値Min以上で、かつしきい値Max以下である場合(ステップS4:No)も、ステップS7へ進む。
Then, the process proceeds to step S7. On the other hand, when the value of the VM type coefficient of the virtual machine is 0 (step S2: Yes), or when the usage rate of the
ゲスト電力制御モジュール31は、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて上述した一連の更新処理が終了したか否かを判断する(ステップS7)。終了していれば(ステップS7:Yes)、一連のCPU周波数定期更新処理が終了となる。終了していなければ(ステップS7:No)、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、次の仮想マシンについてステップS2〜ステップS7の処理を行う。ゲスト電力制御モジュール31は、以上の一連の処理を、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて終了するまで、繰り返す。
The guest
[仮想マシン割り当て処理]
図6は、実施例2にかかる制御方法における仮想マシン割り当て処理を示すフローチャートである。仮想マシン割り当て処理は、CPUスケジューラ34により実施される。
[Virtual machine assignment processing]
FIG. 6 is a flowchart of the virtual machine assignment process in the control method according to the second embodiment. The virtual machine assignment process is performed by the
図6に示すように、仮想マシン割り当て処理は、例えば計算機に内蔵されたタイマーの割り込みにより起動される。CPU11にある仮想マシンが割り当てられて動作しているときに仮想マシン割り当て処理が開始されると、CPUスケジューラ34は、それまでCPU11で動作していた仮想マシンの状態をメインメモリ14やNANDメモリ15に保存する(ステップS11)。CPU11で動作していた仮想マシンの状態は、CPU11のレジスタから得られる。
As shown in FIG. 6, the virtual machine allocation process is started by interruption of a timer built in the computer, for example. When the virtual machine assignment process is started while the virtual machine in the
次いで、CPUスケジューラ34は、ポリシーに従って、次に動作させる仮想マシンを選択し、選択した仮想マシンの動作時間を決定する(ステップS12)。次いで、CPUスケジューラ34は、ステップS12で選択した仮想マシンの動作が開始された後の次のタイマーの割り込みタイミング、すなわちCPUスケジューラ34の起動タイミングを設定する(ステップS13)。
Next, the
次いで、CPUスケジューラ34は、CPU11のCPU周波数を切り替える処理を行う(ステップS14)。CPU11のCPU周波数を切り替える処理(CPU周波数切り替え処理)については後述する。次いで、CPUスケジューラ34は、ステップS12で選択した仮想マシンの状態を、以前に保存したメモリ領域から読み出し、CPU11のレジスタに仮想マシンの状態を設定して復元する(ステップS15)。これによって、CPUスケジューラ34によって新たにスケジューリングされた仮想マシンの実行が開始される。そして、CPUスケジューラ34は、仮想マシン割り当て処理を終了する。
Next, the
[仮想マシン切り替え時のCPU周波数切り替え処理]
図7は、実施例2にかかる制御方法におけるCPU周波数切り替え処理を示すフローチャートである。仮想マシン切り替え時のCPU周波数切り替え処理は、上述した仮想マシンの切り替え時にCPUスケジューラ34から呼び出される。
[CPU frequency switching processing when switching virtual machines]
FIG. 7 is a flowchart of the CPU frequency switching process in the control method according to the second embodiment. The CPU frequency switching process at the time of virtual machine switching is called from the
図7に示すように、CPU周波数切り替え処理では、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32から、切り替え前の仮想マシンのCPU周波数、及び切り替え後の仮想マシンのCPU周波数を参照する(ステップS21)。切り替え前の仮想マシンは、現在CPU11で動作中の仮想マシンである。切り替え後の仮想マシンは、次に動作する仮想マシンである。
As shown in FIG. 7, in the CPU frequency switching process, the guest
次いで、ゲスト電力制御モジュール31は、切り替え前の仮想マシンのCPU周波数と、切り替え後の仮想マシンのCPU周波数とが異なるか否かを判断する(ステップS22)。異なる場合(ステップS22:Yes)、ゲスト電力制御モジュール31は、CPU周波数変更処理モジュール35を呼び出す。呼び出されたCPU周波数変更処理モジュール35は、CPU11のCPU周波数の設定を、次に動作する仮想マシンのCPU周波数に更新する(ステップS23)。そして、CPUスケジューラ34による仮想マシン割り当て処理に戻る。
Next, the guest
一方、切り替え前の仮想マシンのCPU周波数と、切り替え後の仮想マシンのCPU周波数とが同じである場合も(ステップS22:No)、CPUスケジューラ34による仮想マシン割り当て処理に戻る。
On the other hand, when the CPU frequency of the virtual machine before switching and the CPU frequency of the virtual machine after switching are the same (step S22: No), the
[フロント係数設定変更処理]
図8は、実施例2にかかる制御方法におけるフロント係数設定変更処理を示すフローチャートである。ユーザーによる画面の切り替え操作によって画面切り替え制御モジュール33が呼び出されると、画面切り替え制御モジュール33によってフロント係数設定変更処理が呼び出される。
[Front coefficient setting change processing]
FIG. 8 is a flowchart of the front coefficient setting changing process in the control method according to the second embodiment. When the screen
図8に示すように、フロント係数設定変更処理が開始されると、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、一番目の仮想マシンがフォアグラウンドで動作しているか否かを判断する(ステップS31)。フォアグラウンドで動作している場合(ステップS31:Yes)、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32のフロント係数フィールドの、当該仮想マシンに対応する格納値をデフォルト値に設定する(ステップS32)。
As shown in FIG. 8, when the front coefficient setting change process is started, the guest
そして、ステップS34へ進む。一方、仮想マシンがフォアグラウンドで動作していない場合(ステップS31:No)、ゲスト電力制御管理表32のフロント係数フィールドの、当該仮想マシンに対応する格納値をデフォルト値よりも大きい値に設定する(ステップS33)。そして、ステップS34へ進む。 Then, the process proceeds to step S34. On the other hand, when the virtual machine is not operating in the foreground (step S31: No), the stored value corresponding to the virtual machine in the front coefficient field of the guest power control management table 32 is set to a value larger than the default value ( Step S33). Then, the process proceeds to step S34.
ゲスト電力制御モジュール31は、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて上述した一連の変更処理が終了したか否かを判断する(ステップS34)。終了していれば(ステップS34:Yes)、一連のフロント係数設定変更処理が終了となる。終了していなければ(ステップS34:No)、ゲスト電力制御モジュール31は、ゲスト電力制御管理表32を参照し、次の仮想マシンについてステップS31〜ステップS34の処理を行う。ゲスト電力制御モジュール31は、以上の一連の処理を、ゲスト電力制御管理表32にエントリのある全ての仮想マシンについて終了するまで、繰り返す。
The guest
・動作の具体例
以下の各具体例では、図3に示す構成を例にして説明する。例えば、設定可能なCPU周波数を600MHz、500MHz、250MHz及び125MHzとして説明する。例えば、Maxデフォルト値を80%とし、Minデフォルト値を75%として説明する。また、CPU周波数を現在の設定値よりも高くする場合には、設定可能なCPU周波数の最も高い周波数が設定され、CPU周波数を現在の設定値よりも低くする場合には、設定可能なCPU周波数の一段低い周波数が設定されるとして説明する。なお、設定可能なCPU周波数、Maxデフォルト値及びMinデフォルト値は、これに限らないし、CPU周波数の設定値を変更する場合もこの例に限らない。
Specific Examples of Operation In the following specific examples, the configuration shown in FIG. 3 will be described as an example. For example, description will be made assuming that the CPU frequency that can be set is 600 MHz, 500 MHz, 250 MHz, and 125 MHz. For example, it is assumed that the Max default value is 80% and the Min default value is 75%. Further, when the CPU frequency is set higher than the current set value, the highest settable CPU frequency is set. When the CPU frequency is set lower than the current set value, the settable CPU frequency is set. A description will be given assuming that a lower frequency is set. The CPU frequency, the Max default value, and the Min default value that can be set are not limited to this, and the case where the CPU frequency setting value is changed is not limited to this example.
[具体例1.CPUの利用率が下降していく例]
図9は、CPUの利用率が下降していく例における各種情報の一例を示す図表である。図9に示す図表において、各仮想マシンのしきい値Max及びしきい値Minは、上述した(1)式及び(2)式から算出したものである(図11、図13及び図15においても同じ)。具体例1では、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24のCPU周波数が600MHzであり、サービスVM−E25のCPU周波数が250MHzである状態から説明する。
[Specific Example 1. Example of CPU usage rate going down]
FIG. 9 is a chart showing an example of various types of information in an example where the CPU usage rate decreases. In the chart shown in FIG. 9, the threshold value Max and the threshold value Min of each virtual machine are calculated from the above-described equations (1) and (2) (also in FIGS. 11, 13, and 15). the same). In specific example 1, the guest VM-A21, the guest VM-B22, the driver VM-C23, and the driver VM-D24 have a CPU frequency of 600 MHz, and the service VM-E25 has a CPU frequency of 250 MHz.
図10は、CPUの利用率が下降していく例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が100%である場合、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24については、CPU利用率がしきい値Maxを超えているので、最も高い周波数である600MHzが設定される。サービスVM−E25は、しきい値Max及びしきい値Minがともに0である。しきい値Max及びしきい値Minがともに0である仮想マシンのCPU周波数は、CPU利用率に関係なく、一定のままである。従って、サービスVM−E25のCPU周波数は、250MHzのままである。
FIG. 10 is a schematic diagram illustrating an example of the CPU frequency in an example in which the CPU usage rate decreases. When the most recent CPU utilization is 100%, the guest VM-A21, guest VM-B22, driver VM-C23 and driver VM-D24 are the highest because the CPU utilization exceeds the threshold Max. A frequency of 600 MHz is set. In the service VM-
直近のCPU利用率が85%になると、ドライバVM−D24については、CPU利用率がしきい値Minよりも小さいので、一段低い周波数である500MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ドライバVM−D24に対応する格納値が500MHzとなる。
When the latest CPU usage rate becomes 85%, the CPU usage rate is smaller than the threshold value Min for the driver VM-D24, so 500 MHz which is a lower frequency is set. The CPU frequency of other virtual machines does not change. In this case, the stored value corresponding to the driver VM-
直近のCPU利用率が70%になると、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24については、CPU利用率がしきい値Minよりも小さいので、それぞれ、一段低い周波数である500MHz、500MHz及び250MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24に対応する格納値は、それぞれ500MHz、500MHz及び250MHzとなる。
When the most recent CPU usage rate becomes 70%, the guest VM-B22, the driver VM-C23 and the driver VM-D24 have a CPU usage rate smaller than the threshold value Min, so that the respective lower frequencies are 500 MHz, 500 MHz and 250 MHz are set. The CPU frequency of other virtual machines does not change. In this case, the stored values corresponding to the guest VM-
直近のCPU利用率が65%になると、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24については、CPU利用率がしきい値Minよりも小さいので、それぞれ、一段低い周波数である500MHz、250MHz、250MHz及び125MHzが設定される。サービスVM−E25のCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24に対応する格納値は、それぞれ500MHz、250MHz、250MHz及び125MHzとなる。
When the most recent CPU usage rate is 65%, the guest VM-A21, guest VM-B22, driver VM-C23, and driver VM-D24 have a lower CPU usage rate than the threshold value Min, and therefore are one step lower. The
このように、CPUの利用率が下降していく場合、バックグラウンドで動作しているゲストVM−BのCPU周波数が、フォアグラウンドで動作しているゲストVM−AのCPU周波数よりも優先的に低くなっていく。また、同じドライバVMでも、VMタイプ係数の値が大きい仮想マシンのCPU周波数が、優先的に低くなっていく。 As described above, when the CPU usage rate decreases, the CPU frequency of the guest VM-B operating in the background is preferentially lower than the CPU frequency of the guest VM-A operating in the foreground. It will become. Further, even for the same driver VM, the CPU frequency of a virtual machine having a large VM type coefficient value is preferentially lowered.
[具体例2.CPUの利用率が上昇していく例]
図11は、CPUの利用率が上昇していく例における各種情報の一例を示す図表である。具体例2では、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24のCPU周波数が125MHzであり、サービスVM−E25のCPU周波数が250MHzである状態から説明する。
[Specific Example 2. Example of increasing CPU usage rate]
FIG. 11 is a chart showing an example of various information in an example in which the usage rate of the CPU increases. In specific example 2, the guest VM-A21, the guest VM-B22, the driver VM-C23, and the driver VM-D24 have a CPU frequency of 125 MHz, and the service VM-E25 has a CPU frequency of 250 MHz.
図12は、CPUの利用率が上昇していく例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が65%である場合、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24については、CPU利用率がしきい値Minよりも小さいので、一段低い周波数が設定される。ここでは、現在の設定値が最も低い125MHzであるので、125MHzが設定される。サービスVM−E25のCPU周波数は、250MHzのままである。 FIG. 12 is a schematic diagram illustrating an example of a CPU frequency in an example in which the CPU usage rate increases. When the latest CPU usage rate is 65%, the guest VM-A21, guest VM-B22, driver VM-C23, and driver VM-D24 have a CPU usage rate smaller than the threshold value Min, so that the frequency is one step lower. Is set. Here, since the current setting value is the lowest 125 MHz, 125 MHz is set. The CPU frequency of the service VM-E25 remains 250 MHz.
直近のCPU利用率が75%になると、ゲストVM−A21については、CPU利用率がしきい値Maxを超えているので、最も高い周波数である600MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−A21に対応する格納値が600MHzとなる。
When the most recent CPU usage rate is 75%, the guest VM-
直近のCPU利用率が85%になると、ゲストVM−A21、ゲストVM−B22及びドライバVM−C23については、CPU利用率がしきい値Maxを超えているので、最も高い周波数である600MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−A21、ゲストVM−B22及びドライバVM−C23に対応する格納値が600MHzとなる。直近のCPU利用率が95%になった場合も同様である。
When the most recent CPU usage rate is 85%, the guest VM-A21, guest VM-B22, and driver VM-C23 have a CPU usage rate that exceeds the threshold Max, so the highest frequency of 600 MHz is set. Is done. The CPU frequency of other virtual machines does not change. In this case, the stored value corresponding to the guest VM-
このように、CPUの利用率が上昇していく場合、フォアグラウンドで動作しているゲストVM−A21のCPU周波数が、バックグラウンドで動作しているゲストVM−B22のCPU周波数よりも優先的に高くなっていく。また、同じドライバVMでも、VMタイプ係数の値が小さい仮想マシンのCPU周波数が、優先的に高くなっていく。
As described above, when the CPU utilization rate increases, the CPU frequency of the guest VM-
[具体例3.フォアグラウンドで動作する仮想マシンを切り替える例]
図13は、フォアグラウンドで動作する仮想マシンを切り替える例における各種情報の一例を示す図表である。具体例3では、具体例2の図11と同様に、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24のCPU周波数が125MHzであり、サービスVM−E25のCPU周波数が250MHzである状態から説明する。図13に示す各種情報は、フォアグラウンドで動作する仮想マシンを切り替えた後の情報である。
[Specific Example 3. Example of switching virtual machines running in the foreground]
FIG. 13 is a chart showing an example of various information in an example of switching virtual machines operating in the foreground. In specific example 3, as in FIG. 11 of specific example 2, the CPU frequency of guest VM-A21, guest VM-B22, driver VM-C23 and driver VM-D24 is 125 MHz, and the CPU frequency of service VM-E25 is A description will be given from the state of 250 MHz. The various types of information shown in FIG. 13 are information after switching virtual machines that operate in the foreground.
図14は、フォアグラウンドで動作する仮想マシンを切り替える例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が65%である場合、具体例2と同様に、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24については、125MHzのCPU周波数が設定される。サービスVM−E25のCPU周波数は、250MHzのままである。
FIG. 14 is a schematic diagram illustrating an example of a CPU frequency in an example of switching a virtual machine operating in the foreground. When the latest CPU usage rate is 65%, the CPU frequency of 125 MHz is set for the guest VM-
直近のCPU利用率が75%になると、具体例2と同様に、ゲストVM−A21のCPU周波数は、600MHzに設定される。他の仮想マシンのCPU周波数は、変化しない。
When the most recent CPU usage rate becomes 75%, the CPU frequency of the guest VM-
CPU利用率が75%のままであるが、フォアグラウンドで動作する仮想マシンがゲストVM−A21からゲストVM−B22に切り替わると、ゲストVM−A21はバックグラウンドでの動作に切り替わる。それによって、図13に示すように、ゲストVM−A21のフロント係数が1に更新され、ゲストVM−B22のフロント係数が0.9に更新される。そして、ゲストVM−A21のしきい値Max及びしきい値Minは、それぞれ80%及び75%に更新される。また、ゲストVM−B22のしきい値Max及びしきい値Minは、それぞれ72%及び68%に更新される。
Although the CPU usage rate remains 75%, when the virtual machine operating in the foreground is switched from the guest VM-
従って、ゲストVM−B22については、CPU利用率がしきい値Maxを超えることになるので、最も高い周波数である600MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、図13に示すように、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−B22に対応する格納値が600MHzとなる。
Therefore, for the guest VM-B22, since the CPU utilization rate exceeds the threshold value Max, 600 MHz, which is the highest frequency, is set. The CPU frequency of other virtual machines does not change. In this case, as shown in FIG. 13, the stored value corresponding to the guest VM-
直近のCPU利用率が70%になると、ゲストVM−A21、ドライバVM−C23及びドライバVM−D24については、CPU利用率がしきい値Minよりも小さくなるので、一段低い周波数が設定される。ゲストVM−A21のCPU周波数は、500MHzに設定される。ドライバVM−C23及びドライバVM−D24については、現在の設定値が最も低い125MHzであるので、125MHzが設定される(図14には現れていない)。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−A21に対応する格納値が500MHzとなる。
When the most recent CPU usage rate becomes 70%, the CPU usage rate becomes smaller than the threshold value Min for the guest VM-
このように、CPU利用率が上昇していくと、フォアグラウンドで動作しているゲストVM−A21のCPU周波数が、バックグラウンドで動作しているゲストVM−B22のCPU周波数よりも優先的に高くなっていく。そして、フォアグラウンドで動作する仮想マシンが切り替わると、新たにフォアグラウンドで動作することになったゲストVM−B22のCPU周波数が、新たにバックグラウンドで動作することになったゲストVM−A21のCPU周波数よりも優先的に高くなっていく。また、CPU利用率が下降してきたとき、バックグラウンドで動作するゲストVM−A21のCPU周波数が、フォアグラウンドで動作しているゲストVM−B22のCPU周波数よりも優先的に低くなっていく。
As described above, as the CPU usage rate increases, the CPU frequency of the guest VM-
[具体例4.新たに仮想マシンが起動する例]
図15は、新たに仮想マシンが起動する例における各種情報の一例を示す図表である。具体例4では、具体例1の図9と同様に、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24のCPU周波数が600MHzであり、サービスVM−E25のCPU周波数が250MHzである状態から説明する。図15に示す各種情報は、新たにVM_IDがFである仮想マシン(ゲストVM−Fとする)が起動した後の情報である。
[Specific Example 4. Example of newly starting virtual machine]
FIG. 15 is a chart illustrating an example of various information in an example in which a virtual machine is newly activated. In specific example 4, as in FIG. 9 of specific example 1, the CPU frequency of guest VM-A21, guest VM-B22, driver VM-C23 and driver VM-D24 is 600 MHz, and the CPU frequency of service VM-E25 is A description will be given from the state of 250 MHz. The various types of information illustrated in FIG. 15 are information after a virtual machine with a new VM_ID F (referred to as a guest VM-F) is started.
図16は、新たに仮想マシンが起動する例におけるCPU周波数の一例を示す模式図である。直近のCPU利用率が100%である場合、具体例1と同様に、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23及びドライバVM−D24については、600MHzのCPU周波数が設定される。サービスVM−E25のCPU周波数は、250MHzのままである。
FIG. 16 is a schematic diagram illustrating an example of a CPU frequency in an example in which a virtual machine is newly started. When the latest CPU usage rate is 100%, a CPU frequency of 600 MHz is set for the guest VM-
直近のCPU利用率が85%になると、具体例1と同様に、ドライバVM−D24のCPU周波数が500MHzに設定される。他の仮想マシンのCPU周波数は、変化しない。
When the latest CPU usage rate becomes 85%, the CPU frequency of the driver VM-
ここで、CPU利用率が85%のままであるが、新たにゲストVM−Fが起動されたとする。ゲストVM−Fがバックグラウンドで動作すると、図15に示すように、CPU利用率がゲストVM−Fのしきい値Max(80%)を超えているので、ゲストVM−FのCPU周波数は、最も高い周波数である600MHzに設定される。 Here, it is assumed that the CPU utilization rate remains 85%, but the guest VM-F is newly activated. When the guest VM-F operates in the background, as shown in FIG. 15, since the CPU utilization rate exceeds the threshold value Max (80%) of the guest VM-F, the CPU frequency of the guest VM-F is The highest frequency is set to 600 MHz.
直近のCPU利用率が70%になると、ゲストVM−B22、ドライバVM−C23、ドライバVM−D24及びゲストVM−Fについては、CPU利用率がしきい値Minよりも小さいので、それぞれ、一段低い周波数である500MHz、500MHz、250MHz及び500MHzが設定される。他の仮想マシンのCPU周波数は、変化しない。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−B22、ドライバVM−C23、ドライバVM−D24及びゲストVM−Fに対応する格納値は、それぞれ500MHz、500MHz、250MHz及び500MHzとなる。
When the most recent CPU usage rate is 70%, the guest VM-B22, the driver VM-C23, the driver VM-D24, and the guest VM-F have a lower CPU usage rate than the threshold value Min, and thus are one step lower. The
直近のCPU利用率が65%になると、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23、ドライバVM−D24及びゲストVM−Fについては、CPU利用率がしきい値Minよりも小さくなるので、一段低い周波数が設定される。ゲストVM−A21のCPU周波数は、500MHzに設定される。ゲストVM−B22、ドライバVM−C23及びゲストVM−FのCPU周波数は、250MHzに設定される。ドライバVM−D24のCPU周波数は、125MHzに設定される。サービスVM−E25のCPU周波数は、250MHzのままである。この場合、ゲスト電力制御管理表32のCPU周波数フィールドの、ゲストVM−A21、ゲストVM−B22、ドライバVM−C23、ドライバVM−D24及びゲストVM−Fに対応する格納値は、それぞれ500MHz、250MHz、250MHz、125MHz及び250MHzとなる。
When the most recent CPU usage rate is 65%, the CPU usage rate is smaller than the threshold value Min for the guest VM-A21, guest VM-B22, driver VM-C23, driver VM-D24, and guest VM-F. Therefore, a lower frequency is set. The CPU frequency of the guest VM-
このように、新たに仮想マシンが起動しても、既に起動している仮想マシンと同様にCPU周波数が制御される。 In this way, even if a new virtual machine is activated, the CPU frequency is controlled in the same manner as the already activated virtual machine.
実施例2によれば、実施例1と同様の効果が得られる。 According to the second embodiment, the same effect as the first embodiment can be obtained.
上述した実施例1、2に関し、さらに以下の付記を開示する。 The following additional notes are disclosed with respect to the first and second embodiments.
(付記1)1個以上の物理的なプロセッサと、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報を管理する管理表と、前記仮想マシンごとに、前記管理表の制御情報に基づいてしきい値を求め、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する決定部と、前記決定部により決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更する変更部と、を備えることを特徴とする計算機。 (Supplementary Note 1) For one or more physical processors and a plurality of virtual machines realized by being executed by the physical processors, a clock frequency set according to the type of the virtual machine is set. A management table for managing control information to be controlled; and for each virtual machine, a threshold value is obtained based on the control information in the management table, and a clock is obtained based on the threshold value and the utilization rate of the physical processor. A computer comprising: a determining unit that determines a frequency; and a changing unit that changes a clock frequency of the physical processor based on the clock frequency determined by the determining unit.
(付記2)前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする付記1に記載の計算機。 (Supplementary note 2) The control information includes, for each virtual machine, information set according to whether the virtual machine is operating in the foreground or the background. The calculator described in.
(付記3)前記決定部は、前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする付記1または2に記載の計算機。
(Additional remark 3) The said determination part calculates | requires the maximum value and minimum value of the said threshold value for every said virtual machine, and when the utilization factor of the said physical processor is larger than the maximum value of the said threshold value 3. The computer according to
(付記4)前記決定部は、前記仮想マシンごとに、決定したクロック周波数に基づいて前記管理表を更新することを特徴とする付記1〜3のいずれか一つに記載の計算機。 (Additional remark 4) The said determination part updates the said management table based on the determined clock frequency for every said virtual machine, The computer as described in any one of Additional remark 1-3 characterized by the above-mentioned.
(付記5)前記仮想マシンの種別の一つは、前記物理的なプロセッサの利用率に連動してクロック周波数が変動する仮想マシンであることを特徴とする付記1〜4のいずれか一つに記載の計算機。
(Supplementary Note 5) One of the types of the virtual machines is any one of
(付記6)前記仮想マシンの種別の一つは、前記物理的なプロセッサの利用率に連動し、かつ重み付けされてクロック周波数が変動する仮想マシンであることを特徴とする付記1〜5のいずれか一つに記載の計算機。 (Additional remark 6) One of the types of the said virtual machines is a virtual machine which is linked with the utilization rate of the said physical processor, and is weighted and the clock frequency fluctuates, Any of additional remarks 1-5 A calculator according to one of the above.
(付記7)前記仮想マシンの種別の一つは、一定のクロック周波数で動作する仮想マシンであることを特徴とする付記1〜6のいずれか一つに記載の計算機。 (Additional remark 7) One of the said virtual machine types is a virtual machine which operate | moves with a fixed clock frequency, The computer as described in any one of additional marks 1-6 characterized by the above-mentioned.
(付記8)物理的なプロセッサの利用率を求め、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報に基づいてしきい値を求め、前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定することを特徴とする制御方法。 (Supplementary Note 8) Obtaining the utilization rate of a physical processor, and for each of a plurality of virtual machines realized by being executed by the physical processor, a clock frequency set according to the type of the virtual machine A control method comprising: obtaining a threshold value based on control information to be controlled, and determining a clock frequency based on the threshold value and a utilization rate of the physical processor for each virtual machine.
(付記9)前記決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更することを特徴とする付記8に記載の制御方法。 (Supplementary note 9) The control method according to supplementary note 8, wherein the clock frequency of the physical processor is changed based on the determined clock frequency.
(付記10)前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする付記8または9に記載の制御方法。 (Additional remark 10) The said control information contains the information set according to whether the said virtual machine is operate | moving in a foreground, or is operating in the background for every said virtual machine Or the control method of 9.
(付記11)前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする付記8〜10のいずれか一つに記載の制御方法。 (Supplementary Note 11) For each of the virtual machines, obtain the maximum value and the minimum value of the threshold value, and increase the clock frequency when the utilization rate of the physical processor is larger than the maximum value of the threshold value, The control method according to any one of appendices 8 to 10, wherein when the utilization rate of the physical processor is smaller than the minimum value of the threshold value, the clock frequency is determined to be lowered.
(付記12)物理的なプロセッサの利用率を求め、前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報をメモリから読み出して前記制御情報に基づいてしきい値を求め、前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率とに基づいてクロック周波数を決定する、処理をコンピュータに実行させるプログラム。 (Additional remark 12) Obtaining the utilization rate of the physical processor, for each of a plurality of virtual machines realized by being executed by the physical processor, the clock frequency set according to the type of the virtual machine, Read control information to be controlled from a memory, obtain a threshold value based on the control information, and determine a clock frequency based on the threshold value and the utilization rate of the physical processor for each virtual machine. A program that causes a computer to execute processing.
(付記13)前記決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更することを特徴とする付記12に記載のプログラム。
(Supplementary note 13) The program according to
(付記14)前記制御情報は、前記仮想マシンごとに、前記仮想マシンがフォアグラウンドで動作しているか、バックグラウンドで動作しているか、に応じて設定される情報を含むことを特徴とする付記12または13に記載のプログラム。 (Supplementary note 14) The control information includes, for each virtual machine, information set according to whether the virtual machine is operating in the foreground or the background. Or the program of 13.
(付記15)前記仮想マシンごとに、前記しきい値の最大値と最小値とを求め、前記物理的なプロセッサの利用率が前記しきい値の最大値よりも大きい場合にクロック周波数を上げ、前記物理的なプロセッサの利用率が前記しきい値の最小値よりも小さい場合にクロック周波数を下げるように決定することを特徴とする付記12〜14のいずれか一つに記載のプログラム。
(Supplementary note 15) For each of the virtual machines, the maximum value and the minimum value of the threshold value are obtained, and when the utilization rate of the physical processor is larger than the maximum value of the threshold value, the clock frequency is increased, 15. The program according to any one of
1,2,21〜25 仮想マシン
3,11 プロセッサ
4,32 管理表
5,31 決定部
6,35 変更部
1, 2, 21-25
Claims (5)
前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報を管理する管理表と、
前記仮想マシンごとに、前記管理表の制御情報に基づいて前記仮想マシンに要求される処理能力を提供可能な前記物理的なプロセッサの利用率を示すしきい値を求め、前記しきい値と前記物理的なプロセッサの利用率との比較結果に基づいてクロック周波数を決定する決定部と、
前記決定部により決定されたクロック周波数に基づいて前記物理的なプロセッサのクロック周波数を変更する変更部と、
を備えることを特徴とする計算機。 One or more physical processors;
A management table for managing control information for controlling the clock frequency, which is set according to the type of the virtual machine, for each of the plurality of virtual machines realized by being executed by the physical processor;
For each of the virtual machines, a threshold indicating a utilization rate of the physical processor capable of providing the processing capability required for the virtual machine based on the control information of the management table is obtained, and the threshold and the threshold A determination unit that determines a clock frequency based on a comparison result with a utilization rate of a physical processor;
A changing unit that changes the clock frequency of the physical processor based on the clock frequency determined by the determining unit;
A computer comprising:
前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報に基づいて前記仮想マシンに要求される処理能力を提供可能な前記物理的なプロセッサの利用率を示すしきい値を求め、
前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率との比較結果に基づいてクロック周波数を決定することを特徴とする制御方法。 Find the physical processor utilization,
Requested by the virtual machine based on control information for controlling a clock frequency, which is set according to the type of the virtual machine for each of a plurality of virtual machines realized by being executed by the physical processor Determining a threshold value indicating a utilization rate of the physical processor capable of providing processing power ;
A control method, comprising: determining a clock frequency for each virtual machine based on a comparison result between the threshold and a utilization rate of the physical processor.
前記物理的なプロセッサで実行されることによって実現される複数の仮想マシンごとに、前記仮想マシンの種別に応じて設定される、クロック周波数を制御する制御情報をメモリから読み出して前記制御情報に基づいて前記仮想マシンに要求される処理能力を提供可能な前記物理的なプロセッサの利用率を示すしきい値を求め、
前記仮想マシンごとに、前記しきい値と前記物理的なプロセッサの利用率との比較結果に基づいてクロック周波数を決定する、
処理をコンピュータに実行させるプログラム。 Find the physical processor utilization,
For each of a plurality of virtual machines realized by being executed by the physical processor, the control information for controlling the clock frequency, which is set according to the type of the virtual machine, is read from the memory and based on the control information Obtaining a threshold value indicating a utilization rate of the physical processor capable of providing the processing capability required for the virtual machine ,
For each virtual machine, a clock frequency is determined based on a comparison result between the threshold and the physical processor utilization rate.
A program that causes a computer to execute processing.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011022149A JP5703799B2 (en) | 2011-02-03 | 2011-02-03 | Computer, control method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011022149A JP5703799B2 (en) | 2011-02-03 | 2011-02-03 | Computer, control method and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012164032A JP2012164032A (en) | 2012-08-30 |
| JP5703799B2 true JP5703799B2 (en) | 2015-04-22 |
Family
ID=46843379
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011022149A Expired - Fee Related JP5703799B2 (en) | 2011-02-03 | 2011-02-03 | Computer, control method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5703799B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101864980B1 (en) * | 2014-06-24 | 2018-06-05 | 인텔 코포레이션 | Virtual machine power management |
| WO2020008468A1 (en) * | 2018-07-02 | 2020-01-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Software switch and method therein |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7739532B2 (en) * | 2004-06-07 | 2010-06-15 | Intel Corporation | Method, apparatus and system for enhanced CPU frequency governers |
| JP2009110404A (en) * | 2007-10-31 | 2009-05-21 | Toshiba Corp | Virtual machine system and guest OS scheduling method in the same system |
| JP4839328B2 (en) * | 2008-01-21 | 2011-12-21 | 株式会社日立製作所 | Server power consumption control apparatus, server power consumption control method, and computer program |
| WO2010097885A1 (en) * | 2009-02-24 | 2010-09-02 | 株式会社東芝 | Portable terminal |
-
2011
- 2011-02-03 JP JP2011022149A patent/JP5703799B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2012164032A (en) | 2012-08-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109906421B (en) | Processor core partitioning based on thread importance | |
| KR102206364B1 (en) | Memory collection method and device | |
| CN108984264B (en) | Virtual GPU (graphics processing Unit) implementation method, device and system | |
| JP5839119B2 (en) | Information processing apparatus, battery remaining amount notification method, and battery remaining amount notification program | |
| WO2021008543A1 (en) | Resource scheduling method and electronic device | |
| KR101799253B1 (en) | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture | |
| US20130081016A1 (en) | Virtual computer system, virtual computer control method and accumulation circuit | |
| US9696787B2 (en) | Dynamic control of processors to reduce thermal and power costs | |
| EP3535655A1 (en) | Thread importance based processor core parking and frequency selection | |
| JP5696603B2 (en) | Computer system, power control method and program for computer system | |
| CN107566609B (en) | Download task processing method, device, terminal and storage medium | |
| US20130298132A1 (en) | Multi-core processor system and scheduling method | |
| JP5703799B2 (en) | Computer, control method and program | |
| CN107870792B (en) | A kind of starting method of mobile terminal, mobile terminal and media product | |
| JP4697805B2 (en) | Data processing device | |
| CN111124655A (en) | Network request scheduling method, terminal device and storage medium | |
| JPWO2012001776A1 (en) | Multi-core system, scheduling method and scheduling program | |
| JP2011209846A (en) | Multiprocessor system and task allocation method for the same | |
| CN109669528B (en) | Terminal processing component control method and device, computer equipment and storage medium | |
| CN109753339B (en) | Resource allocation method and device and electronic equipment | |
| JP4409568B2 (en) | Band control program and multiprocessor system | |
| JP2005115620A (en) | Task management method and electronic device having task management means | |
| JP5505517B2 (en) | Information processing apparatus, power control method, and power control program | |
| CN117632462A (en) | Task resource scheduling method and server | |
| JP6435911B2 (en) | Information processing apparatus, activation processing method, and activation processing program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131007 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140402 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140624 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140625 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140825 |
|
| 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: 20150127 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150209 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5703799 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |