JP2017199044A - Virtual computer system, scheduling method, and program - Google Patents
Virtual computer system, scheduling method, and program Download PDFInfo
- Publication number
- JP2017199044A JP2017199044A JP2014156563A JP2014156563A JP2017199044A JP 2017199044 A JP2017199044 A JP 2017199044A JP 2014156563 A JP2014156563 A JP 2014156563A JP 2014156563 A JP2014156563 A JP 2014156563A JP 2017199044 A JP2017199044 A JP 2017199044A
- Authority
- JP
- Japan
- Prior art keywords
- request
- identifier
- hypervisor
- cpu
- virtual
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Abstract
Description
本発明は、仮想計算機システム、スケジューリング方法、および、プログラムに関し、特に、物理計算機上に構築された仮想計算機を備える仮想計算機システム、仮想計算機システムにおけるスケジューリング方法、および、プログラムに関する。 The present invention relates to a virtual machine system, a scheduling method, and a program, and more particularly to a virtual machine system including a virtual machine built on a physical machine, a scheduling method in the virtual machine system, and a program.
仮想計算機システムとは、1台の物理計算機上に複数の仮想計算機を構築したシステムをいう。仮想計算機システムでは、各仮想計算機上で「ゲストOS(Operating System)」と呼ばれるOSが動作する。一方、物理計算機上で動作するOSを「バーチャルマシンモニタ(VMM:Virtual Machine Monitor)」と呼ぶ。 The virtual computer system is a system in which a plurality of virtual computers are constructed on one physical computer. In the virtual machine system, an OS called a “guest OS (Operating System)” operates on each virtual machine. On the other hand, an OS operating on a physical computer is referred to as a “virtual machine monitor (VMM)”.
ゲストOSは、通常のOSと同様に、ゲストOS上で動作するアプリケーションを管理する。一方、VMMは、仮想計算機を自身のアプリケーションとして管理する。ゲストOSが管理下のアプリケーションに与えるリソースを「仮想CPU(Central Processing Unit)」という。仮想CPUは、ソフトウェアプログラムによって作られた擬似的なCPUであり、物理計算機上のスレッドとして動作する。一方、VMMが仮想計算機に与えるリソースを「物理CPU」という。 The guest OS manages applications that run on the guest OS in the same way as a normal OS. On the other hand, the VMM manages the virtual machine as its own application. A resource that the guest OS gives to an application under management is called a “virtual CPU (Central Processing Unit)”. A virtual CPU is a pseudo CPU created by a software program and operates as a thread on a physical computer. On the other hand, the resource that the VMM gives to the virtual machine is called “physical CPU”.
仮想計算機システムにおいては、VMMによるスケジューリングとゲストOSによるスケジューリングとの時間的な「ズレ」によって、ゲストOS上のアプリケーションが正常に動作しないという問題がある。アプリケーションを動作させるには、ゲストOSに仮想CPUが割り当てられ、かつ、VMMに物理CPUが割り当てられなければならない。仮想CPUを割り当てるゲストOSのスケジューラと、物理CPUを割り当てるVMMのスケジューラは、相手方が当該アプリケーションに対していつCPUを割り当てているかを関知しない。 In the virtual machine system, there is a problem that an application on the guest OS does not operate normally due to temporal “deviation” between the scheduling by the VMM and the scheduling by the guest OS. In order to operate the application, a virtual CPU must be allocated to the guest OS and a physical CPU must be allocated to the VMM. The guest OS scheduler to which the virtual CPU is assigned and the VMM scheduler to which the physical CPU is assigned do not know when the other party assigns the CPU to the application.
したがって、ゲストOSが仮想CPUをアプリケーションに割り当てたとしても、VMMが仮想計算機に物理CPUを割り当てていない場合がある。この場合、アプリケーションを実行することができない。逆に、VMMが仮想計算機に物理CPUを割り当てても、ゲストOSがアプリケーションに仮想CPUを割り当てていない場合がある。この場合、割り当てられた物理CPUのCPU時間が無駄になる。 Therefore, even if the guest OS assigns a virtual CPU to an application, the VMM may not assign a physical CPU to the virtual machine. In this case, the application cannot be executed. Conversely, even if the VMM assigns a physical CPU to a virtual machine, the guest OS may not assign a virtual CPU to an application. In this case, the CPU time of the allocated physical CPU is wasted.
かかる問題を解決する技術が、一例として、特許文献1に記載されている。図16は、特許文献1に記載された仮想計算機システムの構成を例示するブロック図である。
A technique for solving such a problem is described in
図16を参照すると、仮想計算機システム1は物理計算機2を備えている。物理計算機2は、仮想計算機5、VMM3、および、ハードウェア4を備えている。仮想計算機5は、ゲストOS6を備えている。VMM3は、ゲストOSインターフェイス部7、ゲストOS依存関係作成モジュール8、ゲストOS依存関係テーブル9、ディスパッチャ10、CPU割り当てテーブル11、および、ゲストOSスケジューラ12を備えている。ハードウェア4は、CPU13を備えている。さらに、ゲストOSスケジューラ12は、CPU割り当てテーブル管理部14、判定部15、サーバゲストOSスケジュール部16、クライアントゲストOS探索部17、および、クライアントゲストOSスケジュール部18を備えている。
Referring to FIG. 16, the
図16に示した仮想計算機システムは、次のように動作する。すなわち、VMM3のゲストOSインターフェイス部7は、ゲストOS6のうちのクライアントとして機能する任意のゲストOSが、サーバとして機能する他のゲストOSに処理を要求する際、処理の要求元のゲストOSがクライアントとなり、処理の要求先のゲストOSがサーバとなるサーバ/クライアント関係を、要求元のゲストOSからVMM3に通知するためのインターフェイスを含む。VMM3のゲストOSスケジューラ12は、このインターフェイスによって通知されたサーバ/クライアント関係に基づいて、ゲストOS6に対してCPUを割り当てる時間を調整する。
The virtual machine system shown in FIG. 16 operates as follows. That is, the guest
上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。 The entire disclosure of the above patent document is incorporated herein by reference. The following analysis was made by the present inventors.
特許文献1に記載された仮想計算機システムによると、仮想計算機のどの仮想CPU上でアプリケーションが動作しているかが考慮されておらず、アプリケーションが動作しないおそれがある。
According to the virtual machine system described in
その理由は、ゲストOSを対象として、割り当てる物理CPU時間を調整しているためである。背景技術で述べた通り、仮想CPUと物理CPUを同時に割り当てることによってアプリケーションを実行することができる。ゲストOSが持つ仮想CPUは1つとは限らない。また、VMMが持つ物理CPUも1つとは限らない。つまり、ゲストOSがアプリケーションに割り当てた仮想CPUが存在し、かつ、割り当てられた仮想CPUをVMM上で具現するスレッドに対して物理CPUを割り当てなければ、アプリケーションは動作しない。 The reason is that the physical CPU time to be allocated is adjusted for the guest OS. As described in the background art, an application can be executed by simultaneously assigning a virtual CPU and a physical CPU. The guest OS does not necessarily have one virtual CPU. Further, the number of physical CPUs of the VMM is not limited to one. In other words, if there is a virtual CPU assigned to the application by the guest OS, and the physical CPU is not assigned to a thread that embodies the assigned virtual CPU on the VMM, the application does not operate.
特許文献1に記載された仮想計算機システムでは、ゲストOSに対して物理CPU使用率の割合が与えられており、どの仮想CPU(スレッド)に対して物理CPUを割り当ててよいかを判断することができない。一例として、ある仮想計算機が4つの仮想CPU1〜CPU4を保持するものとする。また、仮想CPU1〜CPU4を具現化したVMM上のスレッドを、それぞれ、スレッド1〜スレッド4とする。ここで、仮想CPU1がアプリケーションに対して割り当てられたとする。このとき、VMMが物理CPUを割り当てるべきスレッドは、スレッド1である。しかしながら、特許文献1に記載された仮想計算機システムでは、仮想CPU1がアプリケーションに割り当てられたときに、VMMが物理CPUをスレッド1に割り当てる機能を備えていない。
In the virtual machine system described in
また、特許文献1に記載された仮想計算機システムでは、リクエストの滞留量を考慮していないため、物理CPU時間を余分に割り当てている可能性がある。
Further, in the virtual machine system described in
その理由は、クライアントとサーバ間でやり取りされるリクエストがなければ、割り当てられた物理CPU時間は使用されないからである。特許文献1では、クライアントとなる仮想計算機とサーバとなる仮想計算機のそれぞれがVMMに対してそれぞれの関係を登録する。すなわち、クライアントはサーバとなる仮想計算機を指定し、サーバはクライアントとなる仮想計算機を指定する。これにより、クライアントとサーバの関係をVMM内で構築し、それぞれの仮想計算機に必要な物理CPU時間を調整している。しかし、実際にクライアントとサーバがリクエストをやり取りしているかどうかは考慮されていない。したがって、クライアントとサーバがリクエストを送受信していない場合であっても、物理CPU時間が割り当てられるおそれがある。
This is because the allocated physical CPU time is not used unless there is a request exchanged between the client and the server. In
そこで、仮想計算機システムにおいて、滞留数の多いリクエストや滞留期間の長いリクエストを迅速に処理することが課題となる。本発明の目的は、かかる課題解決に寄与する仮想計算機システム、スケジューリング方法、および、プログラムを提供することにある。 Therefore, in the virtual machine system, it is a problem to quickly process a request with a large number of stays or a request with a long stay period. An object of the present invention is to provide a virtual machine system, a scheduling method, and a program that contribute to solving such a problem.
本発明の第1の態様に係る仮想計算機システムは、ゲストOS(Operating System)とハイパーバイザを備え、前記ゲストOSは、受け付けたリクエストを蓄積する記憶部と、仮想CPU(Central Processing Unit)の識別子を含むハイパーバイザコールを前記ハイパーバイザに対して発行する要求部とを有し、前記ハイパーバイザは、前記識別子に対応する仮想CPUを実現するスレッドに割り当てられた物理CPUの実行時間を変更する変更部を有し、前記要求部は、前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する。 A virtual machine system according to a first aspect of the present invention includes a guest OS (Operating System) and a hypervisor, and the guest OS stores a storage unit that stores received requests and an identifier of a virtual CPU (Central Processing Unit). A change unit that changes the execution time of a physical CPU allocated to a thread that realizes a virtual CPU corresponding to the identifier. The request unit has a predetermined residence time of the unprocessed requests accumulated in the storage unit when the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number. A hypervisor call including an identifier of a virtual CPU that executes an application that processes the unprocessed request Issue.
本発明の第2の態様に係るスケジューリング方法は、ゲストOS(Operating System)が、受け付けたリクエストを記憶部に蓄積するステップと、仮想CPU(Central Processing Unit)の識別子を含むハイパーバイザコールをハイパーバイザに対して発行するステップと、前記ハイパーバイザが、前記識別子に対応する仮想CPUを実現するスレッドに割り当てられた物理CPUの実行時間を変更するステップと、を含み、前記ゲストOSは、前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する。 The scheduling method according to the second aspect of the present invention includes a step in which a guest OS (Operating System) accumulates received requests in a storage unit and a hypervisor call including a virtual CPU (Central Processing Unit) identifier. And the step of changing the execution time of the physical CPU allocated to the thread that realizes the virtual CPU corresponding to the identifier, wherein the guest OS is configured to store the storage unit When the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number, or when the retention period of the unprocessed requests accumulated in the storage unit exceeds a predetermined period, the unprocessed requests are A hypervisor call including an identifier of a virtual CPU that executes an application to be processed is issued.
本発明の第3の態様に係るプログラムは、ゲストOS(Operating System)が、受け付けたリクエストを記憶部に蓄積する処理と、仮想CPU(Central Processing Unit)の識別子を含むハイパーバイザコールをハイパーバイザに対して発行する処理と、前記ハイパーバイザが、前記識別子に対応する仮想CPUを実現するスレッドに割り当てられた物理CPUの実行時間を変更する処理と、をコンピュータに実行させ、前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを前記ゲストOSが発行する処理を前記コンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することもできる。 A program according to a third aspect of the present invention is a program that causes a guest OS (Operating System) to store a received request in a storage unit and a hypervisor call including a virtual CPU (Central Processing Unit) identifier to the hypervisor. Processing executed by the hypervisor, and processing for changing the execution time of the physical CPU assigned to the thread that realizes the virtual CPU corresponding to the identifier is executed by the computer and stored in the storage unit. When the number of unprocessed requests exceeds a predetermined number, or when the retention period of unprocessed requests accumulated in the storage unit exceeds a predetermined period, the application that processes the unprocessed requests A process in which the guest OS issues a hypervisor call including an identifier of a virtual CPU that executes To be executed in. The program can also be provided as a program product recorded on a non-transitory computer-readable storage medium.
本発明に係る仮想計算機システム、スケジューリング方法、および、プログラムによると、仮想計算機システムにおいて、滞留数の多いリクエストや滞留期間の長いリクエストを迅速に処理することが可能となる。 According to the virtual computer system, the scheduling method, and the program according to the present invention, it is possible to quickly process a request with a large number of stays or a request with a long stay period in the virtual machine system.
はじめに、一実施形態の仮想計算機システムの概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。 First, an overview of a virtual machine system according to an embodiment will be described. Note that the reference numerals of the drawings attached to this summary are merely examples for facilitating understanding, and are not intended to limit the present invention to the illustrated embodiment.
図1は、一実施形態に係る仮想計算機システムの構成を例示するブロック図である。図1を参照すると、仮想計算機システムは、ゲストOS(Operating System)20とハイパーバイザ30を備え、ゲストOS20は、仮想CPU(Central Processing Unit)の識別子を含むハイパーバイザコールをハイパーバイザ30に対して発行する要求部22を有し、ハイパーバイザ30は、識別子に対応する仮想CPUを実現するスレッドに割り当てられた物理CPUの実行時間を変更する変更部32を有する。
FIG. 1 is a block diagram illustrating a configuration of a virtual machine system according to an embodiment. Referring to FIG. 1, the virtual machine system includes a guest OS (Operating System) 20 and a
かかる仮想計算機システムによると、アプリケーションを実行する仮想CPUを実現するスレッドに対して、物理CPUの実行時間を適切に割り当てることが可能となる。なぜなら、ゲストOS20は、ゲストOS20が稼働する仮想マシンに到着したリクエストを処理するアプリケーションが実行される仮想CPUを指定してハイパーバイザコールを発行し、ハイパーバイザは指定された仮想CPUを実現するスレッドに対する物理CPUの実行時間を変更することができるからである。
According to such a virtual machine system, it is possible to appropriately allocate the execution time of a physical CPU to a thread that realizes a virtual CPU that executes an application. This is because the
また、図2を参照すると、ゲストOS100は、受け付けたリクエストを処理するアプリケーションとアプリケーションを実行する仮想CPUの識別子を関連付けて保持する第1のキュー(スケジューリングキュー170)を備え、要求部120は、第1のキュー(170)を参照して、アプリケーションを実行する仮想CPUの識別子を特定し、特定した仮想CPUの識別子を含むハイパーバイザコールを発行するようにしてもよい。
Referring to FIG. 2, the guest OS 100 includes a first queue (scheduling queue 170) that holds an application that processes an accepted request and an identifier of a virtual CPU that executes the application, and the
さらに、ゲストOS100は、受け付けたリクエストを蓄積する記憶部(滞留リクエスト記憶部150)を備え、要求部120は、記憶部(150)に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、記憶部(150)に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行するようにしてもよい。
Further, the guest OS 100 includes a storage unit (the stay request storage unit 150) that stores the received requests, and the
かかる仮想計算機システムによると、滞留しているリクエストの数、または、リクエストの滞留期間に応じて、当該リクエストを処理するアプリケーションを実行する仮想CPUに相当するスレッドに対して、優先的に物理CPUの実行時間を割り当てることが可能となる。したがって、滞留しているリクエストや、滞留期間が長期化しているリクエストを、迅速に処理することができる。 According to such a virtual computer system, depending on the number of staying requests or the staying period of requests, a physical CPU is preferentially assigned to a thread corresponding to a virtual CPU that executes an application that processes the request. Execution time can be assigned. Therefore, it is possible to quickly process a staying request or a request having a long staying period.
また、図7を参照すると、ハイパーバイザ200は、優先度ごとに分類されたスレッドと、スレッドを優先度に応じて実行する物理CPUを関連付けて保持する第2のキュー(スケジューリングキュー240)を備え、変更部(実行時間変更部220)は、識別子に対応する仮想CPUを実現するスレッドが物理CPU上で実行中である場合、当該スレッドの実行時間を延長し、それ以外の場合、当該スレッドの第2のキュー(240)における優先度、および/または、当該スレッドの第2のキュー(240)における順序を変更してもよい。 Referring to FIG. 7, the hypervisor 200 includes a second queue (scheduling queue 240) that holds the threads classified according to priority and the physical CPU that executes the threads according to the priority in association with each other. The changing unit (execution time changing unit 220) extends the execution time of the thread when the thread that realizes the virtual CPU corresponding to the identifier is being executed on the physical CPU, and otherwise, The priority in the second queue (240) and / or the order of the thread in the second queue (240) may be changed.
かかる仮想計算機システムによると、特定のアプリケーションを実行する仮想CPUに対して、当該アプリケーションが物理CPU上で実行中であれば、実行時間を延長し、実行中でなければ、現在実行中のアプリケーションの終了後、直ちに物理CPU上で実行が開始されるようにすることができる。 According to such a virtual machine system, for a virtual CPU that executes a specific application, if the application is running on a physical CPU, the execution time is extended. Execution can be started on the physical CPU immediately after completion.
図10を参照すると、ゲストOS100は、受け付けたリクエストの優先度を計算する優先度計算部180を備え、要求部120は、記憶部(滞留リクエスト記憶部150)に蓄積された未処理のリクエストの優先度が所定の優先度を超えた場合、未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行するようにしてもよい。
Referring to FIG. 10, the guest OS 100 includes a
かかる仮想計算機システムによると、優先度が高いリクエストを処理するアプリケーションを実行する仮想CPUを実現するスレッドに対して、優先的に物理CPUの実行時間を割り当てることが可能となる。 According to such a virtual machine system, it is possible to preferentially allocate the execution time of a physical CPU to a thread that realizes a virtual CPU that executes an application that processes a request with high priority.
図9を参照すると、ハイパーバイザ200は、要求部(要求部120)によって発行されるハイパーバイザコールの頻度が所定の頻度を超えた場合、警告を出力する警告部(限界負荷警告部270)を備えていてもよい。 Referring to FIG. 9, the hypervisor 200 includes a warning unit (limit load warning unit 270) that outputs a warning when the frequency of hypervisor calls issued by the request unit (request unit 120) exceeds a predetermined frequency. You may have.
かかる仮想計算機システムによると、単位時間当たりのハイパーバイザコールの回数が閾値を超えた場合、ユーザに対してアラームを発行することで、ゲストOSが稼働する仮想マシンに対して、処理能力を超えたリクエストが到着していることをユーザに通知することができる。 According to such a virtual machine system, when the number of hypervisor calls per unit time exceeds a threshold, an alarm is issued to the user, thereby exceeding the processing capacity for the virtual machine on which the guest OS runs. The user can be notified that the request has arrived.
<実施形態1>
次に、第1の実施形態に係る仮想計算機システムについて、図面を参照して詳細に説明する。図2は、本実施形態の仮想計算機システムの構成を例示するブロック図である。
<
Next, the virtual machine system according to the first embodiment will be described in detail with reference to the drawings. FIG. 2 is a block diagram illustrating the configuration of the virtual machine system of this embodiment.
図2を参照すると、本実施形態の仮想計算機システムは、仮想マシン300とハイパーバイザ(Hypervisor)200を備えている。仮想マシン300は、ゲストOS(Operating System)100を備えている。ゲストOS100は、UDP(User Datagram Protocol)パケット送受信部110、SIP(Session Initiation Protocol)処理増幅判定部140、スレッド起動部160、滞留量取得部130、滞留リクエスト記憶部150、要求部120、および、スケジューリングキュー170を備えている。また、ハイパーバイザ200は受付部210、実行時間変更部220、スケジューラ230、および、スケジューリングキュー240を備えている。
Referring to FIG. 2, the virtual computer system of the present embodiment includes a virtual machine 300 and a hypervisor 200. The virtual machine 300 includes a guest OS (Operating System) 100. The guest OS 100 includes a UDP (User Datagram Protocol) packet transmission /
UDPパケット送受信部110は、ゲストOS100内でUDPパケットを送受信する。到着したUDPパケットがSIPリクエストである場合、UDPパケット送受信部110は、当該SIPリクエストから滞留リクエスト識別子151を作成し、滞留リクエスト記憶部150に格納する。UDPパケット送受信部110は、滞留リクエスト識別子151の格納後、SIP処理増幅判定部140を実行する。また、UDPパケット送受信部110は、SIPリクエストをUDPパケットでカプセル化して他の物理計算機に送信する際、当該SIPリクエストは処理済みであるため、滞留リクエスト記憶部150から滞留リクエスト識別子151が一致するエントリを削除する。
The UDP packet transmission /
SIP処理増幅判定部140は、滞留量取得部130が計算したリクエスト滞留量を取得して、ハイパーバイザ200に対してスケジューリングポリシーの変更要求を発行するかどうかを判断する。SIP処理増幅判定部140は、滞留リクエストの数が所定の数を超えた場合、スケジューリングポリシーの変更要求を発行する。ここで、所定の数は、予めユーザによって設定されているものとする。また、SIP処理増幅判定部140は、ある滞留リクエストの滞留期間がある所定の期間を超えた場合、スケジューリングポリシーの変更要求を発行する。所定の期間は、予めユーザによって設定されているものとする。
The SIP processing
ただし、所定の期間として、SIPのデフォルトタイムアウト時間であるT1を用いる場合、ユーザによる設定は必要とされない。ここで、T1とは、SIPリクエストの再送が開始される時間であり、デフォルト値は500msである。T1の値は変更可能であり、SIPサーバ(仮想マシン300上のアプリケーション)の設定ファイルに現在のT1の値が格納されている。SIP処理増幅判定部140は、処理を開始する前に、SIPサーバの設定ファイルから、現在のT1の値を予め確認しておく。
However, when T1 which is the SIP default timeout time is used as the predetermined period, setting by the user is not required. Here, T1 is the time when retransmission of the SIP request is started, and the default value is 500 ms. The value of T1 can be changed, and the current value of T1 is stored in the setting file of the SIP server (application on the virtual machine 300). The SIP process
スレッド起動部160は、スレッドを起動する。アプリケーションは、複数のスレッドを含む。具体的には、スレッド起動部160は、UDPパケットが届くと、当該UDPパケットを処理するスレッドを起動する。
The
滞留量取得部130は、滞留リクエスト記憶部150に格納された滞留リクエスト数をカウントして、SIP処理増幅判定部140に通知する。また、滞留量取得部130は、滞留リクエスト記憶部150に格納されている滞留リクエストがゲストOS100内で滞留している期間を更新する。滞留量取得部130は、タイマー等によって定期的に起動し、滞留リクエスト記憶部150に格納された滞留リクエストの滞留期間152をインクリメントする。
The stay
滞留リクエスト記憶部150は、現在仮想マシン300上に滞留しているリクエストに関する情報を記憶する。図3は、滞留リクエスト記憶部150が保持するテーブルの内容を例示する。滞留リクエスト記憶部150は、滞留リクエスト識別子151と滞留期間152とを関連付けて保持する。UDPパケット送受信部110は、SIPリクエストを含むUDPパケットが到着すると、滞留リクエスト識別子151を生成する。
The stay
図4は、SIPリクエストのデータ構造を例示する。UDPパケット送受信部110は、図4に示した「Call-ID」と「CSeq」を用いて滞留リクエスト識別子151を生成する。UDPパケット送受信部110は、一例として、Call-IDとCSeqをアンダーバーで接続したものを滞留リクエスト識別子151とする(図3)。ただし、Call-IDとCSeqを使用して一意に識別子を表現できればよい。したがって、滞留リクエスト識別子151は図3に示した態様に限定されない。また、UDPパケット送受信部110は、処理済みのSIPリクエストをリクエスト要求元に送信する際、滞留リクエスト識別子151が一致するエントリを滞留リクエスト記憶部150から削除する。
FIG. 4 illustrates the data structure of a SIP request. The UDP packet transmission /
要求部120は、仮想CPUを具現するスレッドに与えられた実行時間の延長をハイパーバイザ200に対して要求する。要求部120は、スケジューリングポリシー変更要求を出す際、仮想CPU番号と対になるスレッド番号を知らない。そこで、要求部120は、仮想CPU番号を引数としてハイパーバイザコールを発行する。ハイパーバイザ200は、仮想CPU番号とスレッド番号の対となるテーブルを保持している。ハイパーバイザコールとは、一般のOSが持つシステムコール(System call)と同様に、仮想マシン300が自発的にハイパーバイザ200に対して「何らかの処理」を要求するために使われるハードウェアに備わった機能である。本実施形態では、仮想マシン300は、「何らかの処理」の例として、スケジューリングポリシーの変更をハイパーバイザ200に対して要求する。
The
スケジューリングキュー170は、仮想マシン300上で実行されるアプリケーションのCPU割り当てを管理するデータ構造である。図5は、スケジューリングキュー170のデータ構造を例示する。計算機に含まれる各CPUにはそれぞれスケジューリングキュー170が作成される。
The
なお、仮想マシン300のスケジューリングキュー170のデータ構造と、ハイパーバイザ200のスケジューリング240のデータ構造は、同一である。ただし、図5をゲストOS100上のスケジューリングキュー170とみなした場合、図5のCPUは仮想CPUを表す。一方、図5をハイパーバイザ200上のスケジューリングキュー240とみなした場合、図5のCPUは物理CPUを表す。
Note that the data structure of the
スケジューリングキュー170には、実行を待つアプリケーション(図5の「Process」)が登録されている。スケジューラ230は、次に実行すべきアプリケーションをスケジューリングキュー170から選択する。図5に例示したスケジューリングキュー170では、優先度153毎にキューが分割されている。優先度153の数が小さいものを高優先度とすると、スケジューラ230は最初にProcess Aを選択する。本実施形態では、要求部120は、到着したSIPリクエストを処理するSIPアプリケーションがどの仮想CPUで実行される予定であるのかを確認するために、スケジューリングキュー170を用いる。図5では、SIPアプリケーション(図5の「SIP Process」)はCPU#1に登録されている。このとき、SIP処理増幅判定部140は、変更要求を発行するものと決定した場合、CPU#1を引数として要求部120を実行する。
In the
受付部210は、要求部120が送出したスケジューリングポリシー変更要求を受け付ける。受付部210は、送られてきた仮想CPU番号をスレッド番号に変換し、当該スレッド番号を持つスレッドに与えられたCPU時間を延長するために、実行時間変更部220を実行する。
The accepting
実行時間変更部220は、スレッドに与えられているCPU時間を延長する。ゲストOS100またはハイパーバイザ200に設けられたスケジューラ230は、スケジューリングキュー170から選択したスレッドを、CPU上で実行する。スケジューラ230は、スレッドの実行開始時にスレッドに対して実行時間を与える。与えられた実行時間が経過するまでは、当該スレッドがCPUを使って自身の処理を進めていく。スケジューラ230によって与えられた実行時間が経過すると、スケジューラ230は、次のスレッドをスケジューリングキュー170から選択してCPU時間を与える。与えられた実行時間を消費したスレッドは、スケジューラ230によってスケジューリングキュー170に格納される。スケジューラ230は、実行時間を管理する。実行時間変更部220は、仮想CPUを実現するハイパーバイザ200上のスレッドが実行中である場合、実行時間を延長する。
The execution
スケジューラ230は、スケジューリングキュー240に登録されているスレッドをCPU上で適宜実行していく。スレッドを実行する際、上述のようにスレッドに対して実行時間が割り与えられる。当該スレッドは、与えられた実行時間の間だけ処理を進めることができる。スケジューラ230は、現在実行中スレッドの実行時間を管理する。また、実行時間変更部220は、スケジューラ230が管理する実行時間を変更する。
The
本実施形態の仮想計算機システムは、上記構成に基づいて、SIPリクエストが送られてきた際、すでに滞留しているリクエスト量を確認し、滞留しているリクエストがある閾値を超過している場合、SIPリクエストを処理している仮想CPUに割り当てられる物理CPU時間を延長する。これにより、リクエスト処理のための物理CPU時間が十分に得られる。 When the SIP request is sent based on the above configuration, the virtual computer system according to the present embodiment confirms the request amount that has already stayed, and if the staying request exceeds a certain threshold, Extends the physical CPU time allocated to the virtual CPU that is processing the SIP request. Thereby, sufficient physical CPU time for request processing is obtained.
次に、図6のフロー図を参照して本実施形態の仮想計算機システム(図2)の動作について詳細に説明する。 Next, the operation of the virtual machine system (FIG. 2) of this embodiment will be described in detail with reference to the flowchart of FIG.
まず、UDPパケット送受信部110は、UDPパケットを受信する(ステップS1)。次に、UDPパケット送受信部110は、UDPパケットからSIPヘッダを取り出す(ステップS2)。UDPパケット送受信部110は、SIPヘッダを取り出す際に、滞留リクエスト識別子151を作成する。
First, the UDP packet transmitting / receiving
次に、SIP処理増幅判定部140は、滞留リクエスト記憶部150を参照して、現在のリクエスト滞留量を確認する(ステップS3)。SIP処理増幅判定部140は、滞留量取得部130を介して、滞留リクエスト記憶部150のエントリ数をカウントすることによってリクエスト滞留量を求める。
Next, the SIP processing
リクエスト滞留量が閾値を超過しているとSIP処理増幅判定部140が判定した場合(ステップS4のYes)、要求部120はSIPサーバが実行される仮想CPU番号を取得し(ステップS5)、当該仮想CPU番号を引数としてハイパーバイザコールを発行する(ステップS6)。
When the SIP processing
受付部210は、ハイパーバイザコールを受け取り、ハイパーバイザコールに含まれる仮想CPUに該当するスレッドの実行時間を延長する(ステップS7)。
The accepting
次に、SIP処理増幅判定部140は、滞留リクエスト記憶部150に到着したSIPリクエストを登録する。具体的には、SIP処理増幅判定部140は、最初に作成した滞留リクエスト識別子151と滞留期間152を組にしたエントリを作成して、滞留リクエスト記憶部150に追加する(ステップS8)。エントリの追加時点では、滞留期間152をゼロにセットしておく。滞留量取得部130は、定期的に滞留期間152をインクリメントする。
Next, the SIP processing
一方、リクエスト滞留量が閾値以下である場合(ステップS4のNo)、ステップS8のみを実行して処理を終了する。 On the other hand, when the request staying amount is equal to or less than the threshold (No in Step S4), only Step S8 is executed and the process is terminated.
本実施形態の仮想計算機システムでは、SIPパケットが到着した際、仮想マシン内に滞留しているリクエスト量を確認した上で、追加の物理CPU時間をハイパーバイザ(Hypervisor)に要求することができる。 In the virtual machine system of this embodiment, when a SIP packet arrives, it is possible to request an additional physical CPU time from the hypervisor after confirming the amount of requests remaining in the virtual machine.
特に、本実施形態によると、物理CPUを必要とする仮想CPUを特定して物理CPUを割り当てることができる。その理由は、仮想マシン上のスケジューリングキューを確認し、到着したリクエストがどの仮想CPUで実行されるかをハイパーバイザに伝えるからである。 In particular, according to the present embodiment, a virtual CPU that requires a physical CPU can be specified and a physical CPU can be assigned. The reason is that the scheduling queue on the virtual machine is confirmed and the hypervisor is informed on which virtual CPU an incoming request is executed.
また、本実施形態によると、サーバ(背景技術におけるアプリケーションに相当)内に滞留しているリクエストに対してリクエスト処理のための物理CPUを十分に割り当てることができる。その理由は、サーバに到着したリクエスト数とサーバ上での処理を終えてクライアントに返信されるリクエスト数を監視して、その差分を滞留リクエストとして記憶し、滞留しているリクエストがある閾値を超過している場合、SIPリクエストを処理している仮想CPUに割り当てられる物理CPU時間を延長するからである。 Further, according to the present embodiment, a physical CPU for request processing can be sufficiently allocated to a request staying in a server (corresponding to an application in the background art). The reason is that the number of requests arriving at the server and the number of requests sent back to the client after processing on the server are monitored, the difference is stored as a stay request, and the staying request exceeds a certain threshold This is because the physical CPU time allocated to the virtual CPU that is processing the SIP request is extended.
<実施形態2>
次に、第2の実施形態に係る仮想計算機システムついて図面を参照して詳細に説明する。
<
Next, a virtual computer system according to the second embodiment will be described in detail with reference to the drawings.
図7は、本実施形態に係る仮想計算機システムの構成を例示するブロック図である。図7を参照すると、本実施形態の仮想計算機システムは、第1の実施形態の仮想計算機システム(図2)のハイパーバイザ200上に、さらに、実行優先度変更部250と実行キュー並べ替え部260を備えている。
FIG. 7 is a block diagram illustrating the configuration of the virtual machine system according to this embodiment. Referring to FIG. 7, the virtual machine system according to the present embodiment further includes an execution
これらの各部は、次のように動作する。 Each of these units operates as follows.
実行優先度変更部250は、スケジューリングキュー240に登録されているスレッドの優先度153を変更する。図5を参照して説明すると、スケジューリングキュー240は、優先度153毎に配列を分割して保持しており、配列にはCPU時間を要求するアプリケーション(図5においてProcessと記載)が登録されている。
The execution
ここで、「実行優先度を変更する」とは、ある優先度153の配列から別の優先度153の配列にアプリケーションを移動させることをいう。図5では、SIP Processは優先度2の配列に登録されている。SIP Processの実行優先度を変更すると、例えば、SIP Processは優先度0の配列に登録される。実行優先度変更部250は、該当アプリケーションの優先度153を、例えば、最高の優先度153(図5の場合、優先度0)に変更する。ただし、実行優先度変更部250は、変更先の優先度の指定をユーザから受け付けるようにしてもよい。
Here, “changing the execution priority” means that an application is moved from one
実行キュー並べ替え部260は、スケジューリングキュー240に登録されているスレッドの配列において、スレッドの順序を入れ替える。図5を参照すると、スケジューリングキュー240は、優先度153毎にスレッドの配列を分割して保持する。配列には、CPU時間を要求するアプリケーション(図5の「Process」)が登録されている。
The execution
「実行キューを並べ替える」とは、優先度153毎に分割された配列に含まれるスレッドの順序を並べ替えることをいう。図5では、SIP ProcessがProcess Dの後ろに配置されている。このとき、スケジューラ230は、優先度2のアプリケーションを実行する際、最初にアプリケーションとしてProcess Dを選択する。実行キュー並べ替え部260は、対象アプリケーションを配列の一番先頭に配置する。図5に例示したスケジューリングキュー240の場合、実行キュー並べ替え部260は、SIP ProcessとProcess Dの順序を入れ替える。
“Reordering the execution queue” means rearranging the order of the threads included in the array divided for each
次に、図8のフロー図を参照して、本実施形態の仮想計算機システム(図7)の動作について詳細に説明する。 Next, the operation of the virtual machine system (FIG. 7) of this embodiment will be described in detail with reference to the flowchart of FIG.
図8のフロー図に示す動作は、受付部210が仮想マシン300から要求を受け取った後に開始される。第1の実施形態では、要求を受け取った後、実行時間変更部220が、送られてきた仮想CPUに相当するスレッドの実行時間を変更した。一方、本実施形態では、該当スレッドが実行待ち状態であり、スケジューリングキュー240に登録されている状態であっても、現在実行中のアプリケーションの終了後に直ちにSIPサーバに実行時間を割り当てることが可能となる。
The operation illustrated in the flowchart of FIG. 8 is started after the
まず、要求部120は、ハイパーバイザコール(Hypervisor call)を発行する(ステップS6)。
First, the
次に、受付部210は、ハイパーバイザコールにおいて通知された仮想CPUに該当するスレッドが実行中かどうかを確認する(ステップS9)。当該スレッドが実行中である場合(ステップS10のYes)、実行時間変更部220は送られてきた仮想CPUに該当するスレッドの実行時間を延長する(ステップS7)。
Next, the accepting
一方、当該スレッドが実行中でない場合(ステップS10のNo)、実行優先度変更部250は、当該スレッドの優先度153を上げる(ステップS11)。次に、実行キュー並べ替え部260は、当該スレッドが格納されているランキューの順序を変更する(ステップS12)。
On the other hand, when the thread is not being executed (No in step S10), the execution
図5を参照して、ステップS11およびS12について説明する。該当アプリケーションがSIP Processである場合、実行優先度変更部250がSIP Processの登録先の配列を優先度ゼロの配列に変更した後、実行キュー並べ替え部260が優先度0の配列においてProcess Aの前にSIP Processを移動する。
Steps S11 and S12 will be described with reference to FIG. If the application is a SIP Process, the execution
次に、本実施形態の効果について説明する。本実施形態では、対象となるSIPサーバにCPU時間が与えられておらず、スケジューリングキュー240に登録されている場合でも、実行優先度変更部250と実行キュー並べ替え部260を組み合わせて使用することにより、現在実行中のアプリケーションの終了後に直ちにSIPサーバに対して実行時間を割り当てることができる。
Next, the effect of this embodiment will be described. In this embodiment, even when the CPU time is not given to the target SIP server and it is registered in the
<実施形態3>
次に、第3の実施形態に係る仮想計算機システムについて、図面を参照して詳細に説明する。
<
Next, a virtual computer system according to a third embodiment will be described in detail with reference to the drawings.
図9は、本実施形態に係る仮想計算機システムの構成を例示するブロック図である。図9を参照すると、本実施形態は、第1の実施形態の仮想計算機システム(図2)のハイパーバイザ200上に、さらに、限界負荷警告部270と実行履歴記憶部280を備えている。
FIG. 9 is a block diagram illustrating the configuration of the virtual machine system according to this embodiment. Referring to FIG. 9, this embodiment further includes a limit
これらの各部は、次のように動作する。 Each of these units operates as follows.
実行履歴記憶部280は、仮想マシン300から送られてきたスケジューリングポリシー変更要求が単位時間当たり何回送られてきているかを記憶する。
The execution
限界負荷警告部270は、実行履歴記憶部280を確認し、単位時間当たりのスケジューリングポリシー変更要求が閾値を超えた場合、ユーザに対してアラームを発行する。アラームは、音声やGUI(Graphical User Interface)上の表示であってもよい。ただし、限界負荷警告部270が発行するアラームの態様は、これらに限定されない。
The limit
次に、本実施形態の効果について説明する。本実施形態では、限界負荷警告部270が実行履歴記憶部280を確認し、単位時間当たりのスケジューリングポリシー変更要求が閾値を超えた場合、ユーザに対してアラームを発行する。したがって、仮想マシン300上に処理しきれない量のリクエストが滞留していることをユーザに通知することができる。
Next, the effect of this embodiment will be described. In the present embodiment, the limit
<実施形態4>
次に、第4の実施形態に係る仮想計算機システムについて、図面を参照して詳細に説明する。
<
Next, a virtual machine system according to a fourth embodiment will be described in detail with reference to the drawings.
図10は、本実施形態に係る仮想計算機システムの構成を例示するブロック図である。図10を参照すると、本実施形態の仮想計算機システムは、第1の実施形態の仮想計算機システム(図2)の仮想マシン300上に、さらに、優先度計算部180と優先度表190を備えている。
FIG. 10 is a block diagram illustrating the configuration of the virtual machine system according to this embodiment. Referring to FIG. 10, the virtual machine system of this embodiment further includes a
これらの各部は、次のように動作する。 Each of these units operates as follows.
優先度計算部180は、送られてきたSIP(Session Initiation Protocol)リクエストに記載されている要求元(Fromエントリ)と要求先(Toエントリ)の情報を、優先度表190を用いて優先度192に変換する。優先度計算部180は、変換した優先度192を滞留リクエスト記憶部150の追加エントリとして記録する。
The
優先度表190は、要求元(Fromエントリ)と要求先(Toエントリ)の情報と優先度192の関係をまとめた表である。図11は、優先度表190の内容を例示する。図11を参照すると、優先度表190は、電話番号191と優先度192を関連付けて保持する。電話番号191とは、SIPにおけるFromエントリまたはToエントリを指している。例えば、Fromエントリに「110」が入っている場合、優先度192は1となる。一方、通常の番号(ユーザID等)の場合、優先度192は60となる。
The priority table 190 is a table that summarizes the relationship between the request source (From entry) and the request destination (To entry) information and the
図12を参照して、SIPから優先度192を作成する手順を説明する。優先度計算部180は、図12の左欄のSIPプロトコルを参照して、FromエントリとToエントリを確認する。図12の左欄において、Fromエントリは「0901234567」であり、一方、Toエントリは「110」である。FromエントリおよびToエントリに記載された電話番号が優先度表190(図11)の電話番号191に相当する。図12の右欄は、優先度計算部180による優先度192の作成例を示す。
A procedure for creating the
まず、優先度計算部180は、FromエントリとToエントリのそれぞれを、優先度表190を用いて優先度192に変換する。Fromエントリ「0901234567」は、左から3ケタが「090」である。「090,080,070」から始まる電話番号191は、我が国では携帯電話番号である。したがって、Fromエントリの電話番号の優先度は、優先度表190より50となる。一方、Toエントリの電話番号「110」の優先度は、優先度表190より1となる。優先度計算部180は、これらの優先度「50」と「1」を足し合わせた優先度「51」を滞留リクエスト記憶部150に送る。
First, the
ここでは、一例として、足し算による優先度の作成方法を示した。ただし、優先度計算部180は、FromエントリおよびToエントリと、優先度表190を用いた他の方法を用いてもよい。例えば、優先度計算部180は、Fromエントリの優先度とToエントリの優先度を掛け合わせて、当該SIPセッションの優先度を生成してもよい。また、優先度計算部180は、FromエントリとToエントリの優先度のうちの優先度の高い方を、当該SIPセッションの優先度としてもよい。
Here, as an example, a method of creating a priority by addition is shown. However, the
図13は、滞留リクエスト記憶部150が保持するテーブルに対して優先度192を追加したときの様子を示す。
FIG. 13 shows a state when the
次に、図14のフロー図を参照して、本実施形態の仮想計算機システム(図10)の動作について詳細に説明する。 Next, the operation of the virtual computer system (FIG. 10) of this embodiment will be described in detail with reference to the flowchart of FIG.
まず、UDP(User Datagram Protocol)パケット送受信部110は、UDPパケットを受信する(ステップS1)。次に、UDPパケット送受信部110は、UDPパケットからSIPヘッダを取り出す(ステップS2)。また、UDPパケット送受信部110は、SIPヘッダを取り出す際、滞留リクエスト識別子151を作成する。
First, the UDP (User Datagram Protocol) packet transmission /
次に、優先度計算部180は、当該リクエストの優先度192を計算する(ステップS13)。優先度計算部180による優先度192の計算手法は、優先度表190を参照して上述した通りである。
Next, the
次に、要求部120は、到着済みリクエストの優先度192を確認する(ステップS14)。高優先度のリクエストが存在する場合(ステップS15のYes)、要求部120はSIPサーバが実行される仮想CPU番号を取得し(ステップS5)、当該仮想CPU番号を引数としてハイパーバイザコール(Hypervisor call)を発行する(ステップS6)。
Next, the
受付部210は、ハイパーバイザコールを受け取り、送られてきた仮想CPUに該当するスレッドの実行時間を、実行時間変更部220を用いて延長する(ステップS7)。
The accepting
次に、SIP処理増幅判定部140は、滞留リクエスト記憶部150に到着したSIPリクエストを登録する。具体的には、SIP処理増幅判定部140は、最初に作成した滞留リクエスト識別子151と滞留期間152を組にしたエントリを作成して、滞留リクエスト記憶部150に追加する(ステップS8)。この時点では、滞留期間152をゼロにセットしておく。滞留量取得部130は、定期的に滞留期間152をインクリメントする。
Next, the SIP processing
一方、高優先度のリクエストが存在しない場合(ステップS15のNo)、ステップS8のみを実行して処理を終了する。 On the other hand, when there is no high priority request (No in step S15), only step S8 is executed and the process is terminated.
本実施形態の仮想計算機システムでは、高優先のSIPリクエストが存在する場合に、スレッドの実行時間を延長する。これにより、リクエストの滞留数や滞留期間にかかわらず、SIPサーバに対してCPU時間を割り当てることができる。 In the virtual machine system of this embodiment, when a high priority SIP request exists, the thread execution time is extended. Thereby, the CPU time can be allocated to the SIP server regardless of the number of staying requests and the staying period.
<実施形態5>
次に、第5の実施形態に係る仮想計算機システムについて、図面を参照して説明する。本実施形態は、第1の実施形態の仮想計算機システムの具体的な実装例に相当する。
<
Next, a virtual machine system according to a fifth embodiment will be described with reference to the drawings. This embodiment corresponds to a specific implementation example of the virtual machine system according to the first embodiment.
図15は、本実施形態の仮想計算機システムの構成を例示するブロック図である。図15を参照すると、本実施形態では、仮想マシン300上で実行されるゲストOS100としてLinux(登録商標)400を用い、ハイパーバイザ200としてKVM500を用いる。また、UDPパケット送受信部110の受信処理において、Linuxカーネル内のsock_def_readable関数410を用いる。さらに、スレッド起動部160として、try_to_wake_up関数460を用いる。また、要求部120が発行するハイパーバイザコールとしてPVOP_VCALL3関数420を用いる。さらに、スケジューリングキュー170としてrun_queue470を用いる。
FIG. 15 is a block diagram illustrating the configuration of the virtual machine system of this embodiment. Referring to FIG. 15, in the present embodiment, Linux (registered trademark) 400 is used as the guest OS 100 executed on the virtual machine 300, and KVM 500 is used as the hypervisor 200. In the reception process of the UDP packet transmission /
また、KVM500内のスケジューラ230として、schedule関数530を用いる。また、スケジューリングキュー240として、run_queue540を用いる。
A
通常、sock_def_readable410は、Linux400がUDPパケット処理を終えてから当該パケット内のデータがユーザプログラムに渡される前に実行される関数である。Sock_def_readable410は、自身の処理を実行した後にtry_to_wake_up関数460を実行してUDPパケットを処理するアプリケーションを起動する。本実施形態では、sock_def_readable関数410がtry_to_wake_up関数460を実行する前にSIP処理増幅判定部を実行し、与えられているCPU時間を延長する場合、PVOP_VCALL3関数420を用いてハイパーバイザコールを発行するように動作する。これにより、Linux400とKVM500を基盤として、第1の実施形態に係る仮想計算機システムを実現することができる。
Usually, the
本発明に係る仮想計算機システム、スケジューリング方法、および、プログラムは、一例として、電話サービスを仮想マシンで提供するNFV(Network Functions Virtualization)の分野において、電話サービスの品質安定化といった用途に適用することができる。 The virtual computer system, the scheduling method, and the program according to the present invention can be applied to applications such as stabilization of the quality of telephone services in the field of NFV (Network Functions Virtualization) that provides telephone services by virtual machines as an example. it can.
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の態様に係る仮想計算機システムのとおりである。
[形態2]
前記ゲストOSは、受け付けたリクエストを処理するアプリケーションと前記アプリケーションを実行する仮想CPUの識別子を関連付けて保持する第1のキューを備え、
前記要求部は、前記第1のキューを参照して、前記アプリケーションを実行する仮想CPUの識別子を特定し、特定した仮想CPUの識別子を含むハイパーバイザコールを発行する、
形態1に記載の仮想計算機システム。
[形態3]
前記ゲストOSは、受け付けたリクエストを蓄積する記憶部を備え、
前記要求部は、前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する、
形態1または2に記載の仮想計算機システム。
[形態4]
前記ハイパーバイザは、優先度ごとに分類されたスレッドと前記スレッドを優先度に応じて実行する物理CPUを関連付けて保持する第2のキューを備え、
前記変更部は、前記識別子に対応する仮想CPUを実現するスレッドが物理CPU上で実行中である場合、当該スレッドの実行時間を延長し、それ以外の場合、当該スレッドの前記第2のキューにおける優先度、および/または、当該スレッドの前記第2のキューにおける順序を変更する、
形態1ないし3のいずれか一に記載の仮想計算機システム。
[形態5]
前記ゲストOSは、受け付けたリクエストの優先度を計算する優先度計算部を備え、
前記要求部は、前記記憶部に蓄積された未処理のリクエストの優先度が所定の優先度を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する、
形態1ないし4のいずれか一に記載の仮想計算機システム。
[形態6]
前記ハイパーバイザは、前記要求部によって発行されるハイパーバイザコールの頻度が所定の頻度を超えた場合、警告を出力する警告部を備える、
形態1ないし5のいずれか一に記載の仮想計算機システム。
[形態7]
上記第2の態様に係るスケジューリング方法のとおりである。
[形態8]
前記ゲストOSが、受け付けたリクエストを処理するアプリケーションと前記アプリケーションを実行する仮想CPUの識別子を関連付けて第1のキューに蓄積するステップと、
前記第1のキューを参照して、前記アプリケーションを実行する仮想CPUの識別子を特定し、特定した仮想CPUの識別子を含むハイパーバイザコールを発行するステップと、を含む、
形態7に記載のスケジューリング方法。
[形態9]
前記ゲストOSが、受け付けたリクエストを記憶部に蓄積するステップと、
前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行するステップと、を含む、
形態7または8に記載のスケジューリング方法。
[形態10]
前記ハイパーバイザが、優先度ごとに分類されたスレッドと前記スレッドを優先度に応じて実行する物理CPUを関連付けて第2のキューに蓄積するステップと、
前記識別子に対応する仮想CPUを実現するスレッドが物理CPU上で実行中である場合、当該スレッドの実行時間を延長し、それ以外の場合、当該スレッドの前記第2のキューにおける優先度、および/または、当該スレッドの前記第2のキューにおける順序を変更するステップと、を含む、
形態7ないし9のいずれか一に記載のスケジューリング方法。
[形態11]
前記ゲストOSが、受け付けたリクエストの優先度を計算するステップと、
前記記憶部に蓄積された未処理のリクエストの優先度が所定の優先度を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行するステップと、を含む、
形態7ないし10のいずれか一に記載のスケジューリング方法。
[形態12]
前記ハイパーバイザが、前記ゲストOSによって発行されるハイパーバイザコールの頻度が所定の頻度を超えた場合、警告を出力するステップを含む、
形態7ないし11のいずれか一に記載のスケジューリング方法。
[形態13]
上記第3の態様に係るプログラムのとおりである。
[形態14]
前記ゲストOSが、受け付けたリクエストを処理するアプリケーションと前記アプリケーションを実行する仮想CPUの識別子を関連付けて第1のキューに蓄積する処理と、
前記第1のキューを参照して、前記アプリケーションを実行する仮想CPUの識別子を特定し、特定した仮想CPUの識別子を含むハイパーバイザコールを発行する処理と、を前記コンピュータに実行させる、
形態13に記載のプログラム。
[形態15]
前記ゲストOSが、受け付けたリクエストを記憶部に蓄積する処理と、
前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する処理と、を前記コンピュータに実行させる、
形態13または14に記載のプログラム。
[形態16]
前記ハイパーバイザが、優先度ごとに分類されたスレッドと前記スレッドを優先度に応じて実行する物理CPUを関連付けて第2のキューに蓄積する処理と、
前記識別子に対応する仮想CPUを実現するスレッドが物理CPU上で実行中である場合、当該スレッドの実行時間を延長し、それ以外の場合、当該スレッドの前記第2のキューにおける優先度、および/または、当該スレッドの前記第2のキューにおける順序を変更する処理と、を前記コンピュータに実行させる、
形態13ないし15のいずれか一に記載のプログラム。
[形態17]
前記ゲストOSが、受け付けたリクエストの優先度を計算する処理と、
前記記憶部に蓄積された未処理のリクエストの優先度が所定の優先度を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する処理と、を前記コンピュータに実行させる、
形態13ないし16のいずれか一に記載のプログラム。
[形態18]
前記ハイパーバイザが、前記ゲストOSによって発行されるハイパーバイザコールの頻度が所定の頻度を超えた場合、警告を出力する処理を前記コンピュータに実行させる、
形態13ないし17のいずれか一に記載のプログラム。
In the present invention, the following modes are possible.
[Form 1]
The virtual computer system according to the first aspect is as described above.
[Form 2]
The guest OS includes a first queue that holds an application that processes an accepted request and an identifier of a virtual CPU that executes the application,
The request unit refers to the first queue, identifies an identifier of a virtual CPU that executes the application, and issues a hypervisor call including the identified virtual CPU identifier.
The virtual computer system according to
[Form 3]
The guest OS includes a storage unit that accumulates received requests,
The request unit is configured such that when the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number, or the retention period of unprocessed requests accumulated in the storage unit exceeds a predetermined period A hypervisor call including an identifier of a virtual CPU that executes an application that processes the unprocessed request,
The virtual computer system according to
[Form 4]
The hypervisor includes a second queue that holds a thread classified according to priority and a physical CPU that executes the thread according to the priority in association with each other.
The change unit extends the execution time of the thread when the thread that realizes the virtual CPU corresponding to the identifier is being executed on the physical CPU; otherwise, the change unit in the second queue of the thread Changing the priority and / or the order of the thread in the second queue;
The virtual machine system according to any one of
[Form 5]
The guest OS includes a priority calculation unit that calculates the priority of the received request,
The request unit includes a hypervisor call including an identifier of a virtual CPU that executes an application that processes the unprocessed request when the priority of the unprocessed request accumulated in the storage unit exceeds a predetermined priority. Issue,
The virtual machine system according to any one of
[Form 6]
The hypervisor includes a warning unit that outputs a warning when the frequency of a hypervisor call issued by the request unit exceeds a predetermined frequency.
The virtual machine system according to any one of
[Form 7]
The scheduling method according to the second aspect is as described above.
[Form 8]
The guest OS associating an application that processes the received request with an identifier of a virtual CPU that executes the application in a first queue;
Referring to the first queue, identifying an identifier of a virtual CPU that executes the application, and issuing a hypervisor call including the identified identifier of the virtual CPU.
The scheduling method according to the seventh aspect.
[Form 9]
The guest OS storing the accepted requests in a storage unit;
When the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number, or when the retention period of unprocessed requests accumulated in the storage unit exceeds a predetermined period, the unprocessed requests Issuing a hypervisor call including an identifier of a virtual CPU executing an application that processes the request;
9. The scheduling method according to
[Mode 10]
The hypervisor associating a thread classified by priority with a physical CPU that executes the thread according to the priority in a second queue;
If the thread that realizes the virtual CPU corresponding to the identifier is executing on the physical CPU, the execution time of the thread is extended; otherwise, the priority of the thread in the second queue, and / or Or changing the order of the threads in the second queue.
The scheduling method according to any one of
[Form 11]
The guest OS calculating the priority of the accepted request;
Issuing a hypervisor call including an identifier of a virtual CPU executing an application that processes the unprocessed request when the priority of the unprocessed request accumulated in the storage unit exceeds a predetermined priority; ,including,
11. The scheduling method according to any one of
[Form 12]
The hypervisor includes outputting a warning when the frequency of hypervisor calls issued by the guest OS exceeds a predetermined frequency;
The scheduling method according to any one of
[Form 13]
The program according to the third aspect is as described above.
[Form 14]
A process in which the guest OS associates an application that processes the received request with an identifier of a virtual CPU that executes the application and stores the associated information in a first queue;
Referring to the first queue, identifying an identifier of a virtual CPU that executes the application, and causing the computer to execute a process of issuing a hypervisor call including the identified identifier of the virtual CPU.
The program according to
[Form 15]
A process in which the guest OS accumulates received requests in a storage unit;
When the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number, or when the retention period of unprocessed requests accumulated in the storage unit exceeds a predetermined period, the unprocessed requests Causing the computer to execute a process of issuing a hypervisor call including an identifier of a virtual CPU that executes an application that processes the request.
The program according to
[Form 16]
A process in which the hypervisor associates a thread classified by priority with a physical CPU that executes the thread in accordance with the priority and stores the thread in a second queue;
If the thread that realizes the virtual CPU corresponding to the identifier is executing on the physical CPU, the execution time of the thread is extended; otherwise, the priority of the thread in the second queue, and / or Or causing the computer to execute a process of changing the order of the thread in the second queue.
The program according to any one of
[Form 17]
A process in which the guest OS calculates the priority of the received request;
A process of issuing a hypervisor call including an identifier of a virtual CPU that executes an application that processes the unprocessed request when the priority of the unprocessed request accumulated in the storage unit exceeds a predetermined priority; , Causing the computer to execute
The program according to any one of
[Form 18]
The hypervisor causes the computer to execute a process of outputting a warning when the frequency of hypervisor calls issued by the guest OS exceeds a predetermined frequency;
The program according to any one of
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。 It should be noted that the entire disclosure of the above patent document is incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiment can be changed and adjusted based on the basic technical concept. Further, various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment, each element of each drawing, etc.) are possible within the framework of the entire disclosure of the present invention. is there. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea. In particular, with respect to the numerical ranges described in this document, any numerical value or small range included in the range should be construed as being specifically described even if there is no specific description.
1 仮想計算機システム
2 物理計算機
3 VMM
4 ハードウェア
5 仮想計算機
6 ゲストOS
7 ゲストOSインターフェイス部
8 ゲストOS依存関係作成モジュール
9 ゲストOS依存関係テーブル
10 ディスパッチャ
11 CPU割り当てテーブル
13 CPU
12 ゲストOSスケジューラ
14 CPU割り当てテーブル管理部
15 判定部
16 サーバゲストOSスケジュール部
17 クライアントゲストOS探索部
18 クライアントゲストOSスケジュール部
20 ゲストOS
22 要求部
30 ハイパーバイザ
32 変更部
100 ゲストOS
110 UDPパケット送受信部
120 要求部
130 滞留量取得部
140 SIP処理増幅判定部
150 滞留リクエスト記憶部
151 滞留リクエスト識別子
152 滞留期間
153 優先度
160 スレッド起動部
170 スケジューリングキュー
180 優先度計算部
190 優先度表
191 電話番号
192 優先度
200 ハイパーバイザ
210 受付部
220 実行時間変更部
230 スケジューラ
240 スケジューリングキュー
250 実行優先度変更部
260 実行キュー並べ替え部
270 限界負荷警告部
280 実行履歴記憶部
300 仮想マシン
400 Linux
410 sock_def_readable
420 PVOP_VCALL3
460 try_to_wake_up
470 run_queue
500 KVM
530 schedule
540 run_queue
1
4
7
12
22
110 UDP packet transmission /
410 sock_def_readable
420 PVOP_VCALL3
460 try_to_wake_up
470 run_queue
500 KVM
530 schedule
540 run_queue
Claims (8)
前記ゲストOSは、受け付けたリクエストを蓄積する記憶部と、
仮想CPU(Central Processing Unit)の識別子を含むハイパーバイザコールを前記ハイパーバイザに対して発行する要求部とを有し、
前記ハイパーバイザは、前記識別子に対応する仮想CPUを実現するスレッドに割り当てられた物理CPUの実行時間を変更する変更部を有し、
前記要求部は、前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する、
ことを特徴とする仮想計算機システム。 It has a guest OS (Operating System) and a hypervisor.
The guest OS includes a storage unit that accumulates received requests;
A request unit that issues a hypervisor call including an identifier of a virtual CPU (Central Processing Unit) to the hypervisor;
The hypervisor has a changing unit that changes an execution time of a physical CPU assigned to a thread that realizes a virtual CPU corresponding to the identifier,
The request unit is configured such that when the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number, or the retention period of unprocessed requests accumulated in the storage unit exceeds a predetermined period A hypervisor call including an identifier of a virtual CPU that executes an application that processes the unprocessed request,
A virtual computer system characterized by that.
前記要求部は、前記第1のキューを参照して、前記アプリケーションを実行する仮想CPUの識別子を特定し、特定した仮想CPUの識別子を含むハイパーバイザコールを発行する、
請求項1に記載の仮想計算機システム。 The guest OS includes a first queue that holds an application that processes an accepted request and an identifier of a virtual CPU that executes the application,
The request unit refers to the first queue, identifies an identifier of a virtual CPU that executes the application, and issues a hypervisor call including the identified virtual CPU identifier.
The virtual computer system according to claim 1.
前記変更部は、前記識別子に対応する仮想CPUを実現するスレッドが物理CPU上で実行中である場合、当該スレッドの実行時間を延長し、それ以外の場合、当該スレッドの前記第2のキューにおける優先度、および/または、当該スレッドの前記第2のキューにおける順序を変更する、
請求項1または2に記載の仮想計算機システム。 The hypervisor includes a second queue that holds a thread classified according to priority and a physical CPU that executes the thread according to the priority in association with each other.
The change unit extends the execution time of the thread when the thread that realizes the virtual CPU corresponding to the identifier is being executed on the physical CPU; otherwise, the change unit in the second queue of the thread Changing the priority and / or the order of the thread in the second queue;
The virtual machine system according to claim 1 or 2.
前記要求部は、前記記憶部に蓄積された未処理のリクエストの優先度が所定の優先度を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する、
請求項1ないし3のいずれか1項に記載の仮想計算機システム。 The guest OS includes a priority calculation unit that calculates the priority of the received request,
The request unit includes a hypervisor call including an identifier of a virtual CPU that executes an application that processes the unprocessed request when the priority of the unprocessed request accumulated in the storage unit exceeds a predetermined priority. Issue,
The virtual machine system according to any one of claims 1 to 3.
請求項1ないし4のいずれか1項に記載の仮想計算機システム。 The hypervisor includes a warning unit that outputs a warning when the frequency of a hypervisor call issued by the request unit exceeds a predetermined frequency.
The virtual machine system according to any one of claims 1 to 4.
仮想CPU(Central Processing Unit)の識別子を含むハイパーバイザコールをハイパーバイザに対して発行するステップと、
前記ハイパーバイザが、前記識別子に対応する仮想CPUを実現するスレッドに割り当てられた物理CPUの実行時間を変更するステップと、を含み、
前記ゲストOSは、前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを発行する、
ことを特徴とするスケジューリング方法。 A step in which a guest OS (Operating System) stores received requests in a storage unit;
Issuing a hypervisor call including a virtual CPU (Central Processing Unit) identifier to the hypervisor;
The hypervisor changing the execution time of a physical CPU assigned to a thread that realizes a virtual CPU corresponding to the identifier; and
In the guest OS, when the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number, or the retention period of unprocessed requests accumulated in the storage unit exceeds a predetermined period A hypervisor call including an identifier of a virtual CPU that executes an application that processes the unprocessed request,
A scheduling method characterized by the above.
前記第1のキューを参照して、前記アプリケーションを実行する仮想CPUの識別子を特定し、特定した仮想CPUの識別子を含むハイパーバイザコールを発行するステップと、を含む、
請求項6に記載のスケジューリング方法。 The guest OS associating an application that processes the received request with an identifier of a virtual CPU that executes the application in a first queue;
Referring to the first queue, identifying an identifier of a virtual CPU that executes the application, and issuing a hypervisor call including the identified identifier of the virtual CPU.
The scheduling method according to claim 6.
仮想CPU(Central Processing Unit)の識別子を含むハイパーバイザコールをハイパーバイザに対して発行する処理と、
前記ハイパーバイザが、前記識別子に対応する仮想CPUを実現するスレッドに割り当てられた物理CPUの実行時間を変更する処理と、をコンピュータに実行させ、
前記記憶部に蓄積された未処理のリクエストの数が所定の数を超えた場合、または、前記記憶部に蓄積された未処理のリクエストの滞留期間が所定の期間を超えた場合、前記未処理のリクエストを処理するアプリケーションを実行する仮想CPUの識別子を含むハイパーバイザコールを前記ゲストOSが発行する処理を前記コンピュータに実行させる、
ことを特徴とするプログラム。 A process in which a guest OS (Operating System) stores received requests in a storage unit;
Processing to issue a hypervisor call including a virtual CPU (Central Processing Unit) identifier to the hypervisor;
The hypervisor causes a computer to execute a process of changing an execution time of a physical CPU assigned to a thread that realizes a virtual CPU corresponding to the identifier,
When the number of unprocessed requests accumulated in the storage unit exceeds a predetermined number, or when the retention period of unprocessed requests accumulated in the storage unit exceeds a predetermined period, the unprocessed requests Causing the guest OS to execute a process in which the guest OS issues a hypervisor call including an identifier of a virtual CPU that executes an application that processes the request;
A program characterized by that.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014156563A JP2017199044A (en) | 2014-07-31 | 2014-07-31 | Virtual computer system, scheduling method, and program |
PCT/JP2015/003798 WO2016017161A1 (en) | 2014-07-31 | 2015-07-29 | Virtual machine system, scheduling method, and program storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014156563A JP2017199044A (en) | 2014-07-31 | 2014-07-31 | Virtual computer system, scheduling method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017199044A true JP2017199044A (en) | 2017-11-02 |
Family
ID=55217073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014156563A Pending JP2017199044A (en) | 2014-07-31 | 2014-07-31 | Virtual computer system, scheduling method, and program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2017199044A (en) |
WO (1) | WO2016017161A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954527B2 (en) | 2020-12-09 | 2024-04-09 | Industrial Technology Research Institute | Machine learning system and resource allocation method thereof |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324438B (en) * | 2020-02-18 | 2023-09-19 | 北京嘀嘀无限科技发展有限公司 | Request scheduling method and device, storage medium and electronic equipment |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09106358A (en) * | 1995-10-12 | 1997-04-22 | Hitachi Ltd | Scheduling method of virtual computer system and device therefor |
JP2002202959A (en) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | Virtual computer system for performing dynamic resource distribution |
US7752623B1 (en) * | 2004-09-16 | 2010-07-06 | Hewlett-Packard Development Company, L.P. | System and method for allocating resources by examining a system characteristic |
-
2014
- 2014-07-31 JP JP2014156563A patent/JP2017199044A/en active Pending
-
2015
- 2015-07-29 WO PCT/JP2015/003798 patent/WO2016017161A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954527B2 (en) | 2020-12-09 | 2024-04-09 | Industrial Technology Research Institute | Machine learning system and resource allocation method thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2016017161A1 (en) | 2016-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107800768B (en) | Open platform control method and system | |
JP6636142B2 (en) | Scale-out association method and apparatus and system | |
JP6449872B2 (en) | Efficient packet processing model in network environment and system and method for supporting optimized buffer utilization for packet processing | |
KR102128357B1 (en) | Address allocation methods, gateways and systems | |
CN109564528B (en) | System and method for computing resource allocation in distributed computing | |
US9525644B2 (en) | Method and system for managing resources among different clients for an exclusive use | |
WO2013117136A1 (en) | Capacity-based multi-task scheduling method, device and system | |
JP2015144020A5 (en) | ||
JP2011065645A (en) | Multi-core processor system | |
CN112783659B (en) | Resource allocation method and device, computer equipment and storage medium | |
CN107005452B (en) | Network function virtualization resource processing method and virtual network function manager | |
WO2016061935A1 (en) | Resource scheduling method, device and computer storage medium | |
JPWO2018220708A1 (en) | Resource allocation system, management device, method and program | |
JP2018531549A6 (en) | Network function virtualization resource processing method and virtualized network function manager | |
WO2016017161A1 (en) | Virtual machine system, scheduling method, and program storage medium | |
JP4862056B2 (en) | Virtual machine management mechanism and CPU time allocation control method in virtual machine system | |
JP6047941B2 (en) | Supervisory control system including task execution order control function | |
JP6700552B2 (en) | Process control program, process control device, and process control method | |
KR101491689B1 (en) | Apparatus and method for allocating computing resource to multiple users | |
US20170111447A1 (en) | Function migration method, apparatus, and system | |
JP6204287B2 (en) | Distributed processing method, processing server, and program | |
JP6059259B2 (en) | Computer system and computer resource allocation method | |
US10990429B2 (en) | Rule-based reallocation of hosted compute resources | |
WO2015033412A1 (en) | Computer system and computer system control method | |
CN114168233B (en) | Data processing method, device, server and storage medium |