JP7151530B2 - サーバ基盤および物理cpu割当プログラム - Google Patents
サーバ基盤および物理cpu割当プログラム Download PDFInfo
- Publication number
- JP7151530B2 JP7151530B2 JP2019023092A JP2019023092A JP7151530B2 JP 7151530 B2 JP7151530 B2 JP 7151530B2 JP 2019023092 A JP2019023092 A JP 2019023092A JP 2019023092 A JP2019023092 A JP 2019023092A JP 7151530 B2 JP7151530 B2 JP 7151530B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- virtual
- physical cpu
- physical
- compute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Description
本発明は、コンピュータシステムを構築して稼動させるためのサーバ基盤および物理CPU割当プログラムに関する。
図7は、ネットワークサービスを構築して稼働させるIaaS(Infrastructure as a Service)基盤の構成図である。
ネットワークサービスを構築して稼動させるIaaS基盤1は、サーバ基盤として実現されている。このIaaS基盤1は、複数のアプリケーション2a~2iがベアメタル11、仮想マシン12、コンテナ13、オブジェクトストレージ14、ファイルストレージ15、ブロックストレージ16などのリソースを共有する。
各アプリケーション2a~2iは、それぞれ外部にサービスを提供するとともに、必要な量のIaaS基盤1のリソースを利用できる。IaaS基盤1では、アプリケーション2a~2iにより複数のサービスを稼働できるメリットがある。その一方で、アプリケーション2a~2iは、IaaS基盤1を共有することで、利用できるリソースが制限される。
ネットワークサービスを構築して稼動させるIaaS基盤1は、サーバ基盤として実現されている。このIaaS基盤1は、複数のアプリケーション2a~2iがベアメタル11、仮想マシン12、コンテナ13、オブジェクトストレージ14、ファイルストレージ15、ブロックストレージ16などのリソースを共有する。
各アプリケーション2a~2iは、それぞれ外部にサービスを提供するとともに、必要な量のIaaS基盤1のリソースを利用できる。IaaS基盤1では、アプリケーション2a~2iにより複数のサービスを稼働できるメリットがある。その一方で、アプリケーション2a~2iは、IaaS基盤1を共有することで、利用できるリソースが制限される。
"CPU topologies",[online],[平成31年1月31日検索],インターネット<URL:https://docs.openstack.org/nova/pike/admin/cpu-topologies.html>
非特許文献1は、OpenStackにおけるCPUピニング(固定)機能について記載されている。CPUピニングとは、仮想マシンに割り当てた仮想CPUごとに、この仮想CPUが使用する物理CPUを制限することをいう。つまりその仮想CPUの処理に割り当てられる物理CPUを固定することである。
CPUピニングにより、仮想CPUの処理が他の物理CPUで実行されることが無いため、キャッシュヒット率の低下を防ぎ、レイテンシ要件が厳しいプロセスを遅延なく実行させることができる。OpenStackは、仮想CPUを1つの物理CPUでピニングして占有するdedicated方式によりCPUピニングをサポートしている。
レイテンシ要件が厳しいサービスの場合、その仮想CPUにdedicated方式を適用することで、キャッシュヒット率の低下を防ぎ、サービスの低レイテンシ化を実現することができる。
高い負荷量を受け持つなど、ある程度の性能要件を求めるサービスならば、dedicated方式がふさわしいが、レイテンシ要件が厳しいサービスでないと余剰なリソースが発生するおそれがある。
また、OpenStackには、複数の仮想CPUで物理CPUを共有するshared方式も存在する。このshared方式ではピニングすることはできず、他の仮想CPUのプロセスと混在することとなる。
高い負荷量を受け持つなど、ある程度の性能要件を求めるサービスならば、dedicated方式がふさわしいが、レイテンシ要件が厳しいサービスでないと余剰なリソースが発生するおそれがある。
また、OpenStackには、複数の仮想CPUで物理CPUを共有するshared方式も存在する。このshared方式ではピニングすることはできず、他の仮想CPUのプロセスと混在することとなる。
そこで、本発明は、仮想マシンのサービス要件を考慮した物理CPUの割り当てを可能とすることを課題とする。
前記した課題を解決するため、請求項1に記載の発明では、コンピュートの物理CPU上に仮想CPUおよび仮想マシンを生成して、前記仮想マシンに前記仮想CPUを割り当てるサーバ基盤であって、前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせない指示のうち何れかを生成するリソース割当決定部と、前記リソース割当決定部の指示に応じて、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する仮想マシン生成管理部と、を含むことを特徴とするサーバ基盤とした。
このようにすることで、仮想マシンのサービス要件を考慮した物理CPUの割り当てができる。
請求項2に記載の発明では、前記リソース割当決定部は、仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想CPUに、指定されたコンピュートの前記物理CPUを占有させる指示を生成し、かつ、前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想CPUを前記物理CPUにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想CPUを前記物理CPUにピニングさせない指示を生成する、ことを特徴とする請求項1に記載のサーバ基盤とした。
このようにすることで、仮想マシン上で実行されるプロセスが受け持つ負荷量要件とレイテンシ要件を考慮した物理CPUの割り当てができる。
請求項3に記載の発明では、前記リソース割当決定部は、前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュートの物理CPU上に移行させる指示を生成し、前記仮想マシン生成管理部は、前記リソース割当決定部の指示に応じて、前記仮想マシンを前記他のコンピュートの物理CPU上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する、ことを特徴とする請求項1または2に記載のサーバ基盤とした。
このようにすることで、指定されたコンピュート上に物理CPUの空きがない場合であっても、仮想マシンを生成することができる。
請求項4に記載の発明では、前記仮想マシン生成管理部は、前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する、ことを特徴とする請求項1または2に記載のサーバ基盤とした。
このようにすることで、指定されたコンピュート上に物理CPUの空きがない場合であっても、仮想マシンを生成することができる。
請求項5に記載の発明では、コンピュートの物理CPU上に仮想CPUおよび仮想マシンを生成して、前記仮想マシンに前記仮想CPUを割り当てるサーバ基盤による仮想CPUに対する物理CPUの割当プログラムであって、コンピュータに、前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせない指示のうち何れかを生成する工程、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する工程、を実行させるための物理CPU割当プログラムとした。
このようにすることで、仮想マシンのサービス要件を考慮した物理CPUの割り当てができる。
請求項6に記載の発明では、仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想CPUに、指定されたコンピュートの前記物理CPUを占有させる指示を生成する工程、前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想CPUを前記物理CPUにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想CPUを前記物理CPUにピニングさせない指示を生成する工程、を実行させるための請求項5に記載の物理CPU割当プログラムとした。
このようにすることで、仮想マシン上で実行されるプロセスが受け持つ負荷量の要件とレイテンシ要件を考慮した物理CPUの割り当てができる。
請求項7に記載の発明では、前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュートの物理CPU上に移行させる指示を生成する工程、前記仮想マシンを前記他のコンピュートの物理CPU上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する工程、を実行させるための請求項5または6に記載の物理CPU割当プログラムとした。
このようにすることで、指定されたコンピュート上に物理CPUの空きがない場合であっても、仮想マシンを生成することができる。
請求項8に記載の発明では、前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成するステップ、を実行させるための請求項5または6に記載の物理CPU割当プログラムとした。
このようにすることで、指定されたコンピュート上に物理CPUの空きがない場合であっても、仮想マシンを生成することができる。
、仮想マシンのサービス要件を考慮した物理CPUの割り当てが可能となる。
以降、比較例と本発明を実施するための形態とを、各図を参照して詳細に説明する。
図1は、ユーザ端末から物理CPUを備えるNUMA(Non-Uniform Memory Access)上に仮想マシンのデプロイする場合のシーケンス図である。このシーケンス図は、後記する比較例と実施形態に共通するものである。
各シーケンスを実行するリソース割当決定部32、リソース管理部33、仮想マシン生成管理部34は、IaaS基盤1に含まれる。このIaaS基盤1は、複数のサーバコンピュータである。このコンピュータが物理CPU割当プログラムを実行することによって、各シーケンスの実行主体が具現化される。
図1は、ユーザ端末から物理CPUを備えるNUMA(Non-Uniform Memory Access)上に仮想マシンのデプロイする場合のシーケンス図である。このシーケンス図は、後記する比較例と実施形態に共通するものである。
各シーケンスを実行するリソース割当決定部32、リソース管理部33、仮想マシン生成管理部34は、IaaS基盤1に含まれる。このIaaS基盤1は、複数のサーバコンピュータである。このコンピュータが物理CPU割当プログラムを実行することによって、各シーケンスの実行主体が具現化される。
ステップS10におけるVM(Virtual Machine)デプロイ指示において、ユーザ端末31は、仮想CPU毎のピニングパターンを指定する。なお、比較例の仮想CPUのピニングパターンは、物理CPUを占有させ、かつピニングさせるパターンと、物理CPUを共有させるパターンの2通りである。これに対して本実施形態の仮想CPUのピニングパターンは、物理CPUを占有させ、かつピニングさせるパターンと、物理CPUを占有させ、かつピニングさせないパターンと、物理CPUを共有させるパターンの3通りである。
次にリソース割当決定部32は、リソース管理部33にリソース選定を指示する(S11)。リソース管理部33は、リソース割当決定部32にリソース候補を返却する(S12)。
ステップS13において、リソース割当決定部32は、スケジューリングを行うとともに、割当リソースを決定する。
ステップS13において、リソース割当決定部32は、スケジューリングを行うとともに、割当リソースを決定する。
その後、リソース割当決定部32は、リソース管理部33に割当リソースを通知するとともに(S14)、仮想マシン生成管理部34に仮想マシンの生成を指示する(S15)。これにより仮想マシン生成管理部34は、ステップS13で決定されたスケジューリングに基づき、仮想マシンを生成してリソースを割り当てる。
ステップS16において、仮想マシン生成管理部34は、ユーザ端末31に仮想マシンの生成完了を通知し、図1の処理を終了する。
これによりIaaS基盤1は、コンピュートの物理CPU上に仮想CPUおよび仮想マシンを生成して、この仮想マシンに仮想CPUを割り当てることができる。
ステップS16において、仮想マシン生成管理部34は、ユーザ端末31に仮想マシンの生成完了を通知し、図1の処理を終了する。
これによりIaaS基盤1は、コンピュートの物理CPU上に仮想CPUおよび仮想マシンを生成して、この仮想マシンに仮想CPUを割り当てることができる。
《比較例の処理》
比較例のピニング方式は、物理CPUを占有させ、かつピニングさせるパターンと、物理CPUを共有させるパターンの2通りである。
物理CPUを占有させ、かつピニングさせるパターンの適用サービス例は、高い負荷量を受け持つサービス向けである。物理CPUを共有させるパターンの適用サービス例は、高い負荷量を受け持たないサービス向けである。
比較例のピニング方式は、物理CPUを占有させ、かつピニングさせるパターンと、物理CPUを共有させるパターンの2通りである。
物理CPUを占有させ、かつピニングさせるパターンの適用サービス例は、高い負荷量を受け持つサービス向けである。物理CPUを共有させるパターンの適用サービス例は、高い負荷量を受け持たないサービス向けである。
図8は、比較例において、ユーザ端末31が、アプリケーションの要件からピニングパターンを選択するフローチャートである。
図1のステップS10を実行する前に、ユーザ端末31は、アプリケーションの要件からピニングパターンを選択する処理を実行する。
最初、ユーザ端末31は、アプリケーションが高い負荷量を受け持つか否かを判定する(S20)。
図1のステップS10を実行する前に、ユーザ端末31は、アプリケーションの要件からピニングパターンを選択する処理を実行する。
最初、ユーザ端末31は、アプリケーションが高い負荷量を受け持つか否かを判定する(S20)。
ユーザ端末31は、アプリケーションが高い負荷量を受け持つならば(Yes)、このアプリケーションに係る仮想マシンに割り当てた仮想CPUに対して、物理CPUを占有かつピニングさせるパターンを選択し(S21)、図8の処理を終了する。
ユーザ端末31は、アプリケーションが高い負荷量を受け持たないならば(No)、このアプリケーションに係る仮想マシンに割り当てた仮想CPUに対して、物理CPUを他の仮想CPUと共有させるパターンを選択し(S22)、図8の処理を終了する。
なお、ピニングパターンを選択する処理を実行するのは、ユーザ端末31に限定されず、IaaS基盤が実行してもよい。
なお、ピニングパターンを選択する処理を実行するのは、ユーザ端末31に限定されず、IaaS基盤が実行してもよい。
図9は、比較例において、仮想マシンを稼働させる仮想CPUを、パターンに基づいて構築する指示を生成するフローチャートである。この図9の処理は、図1のステップS13において実行される。
リソース割当決定部32は、物理CPUが占有されるパターンか否かを判定する(S30)。リソース割当決定部32は、物理CPUが占有されるパターンではないならば(No)、物理CPUの共有に係る処理を実行する。
リソース割当決定部32は、物理CPUが占有されるパターンか否かを判定する(S30)。リソース割当決定部32は、物理CPUが占有されるパターンではないならば(No)、物理CPUの共有に係る処理を実行する。
リソース割当決定部32は、物理CPUが占有されるパターンならば(Yes)、指定されたNUMAの物理CPUリソースの空きを判定する(S31)。リソース割当決定部32は、指定されたNUMAの物理CPUリソースの空きが有るならば(Yes)、指定NUMAの空き物理CPU上への指定された仮想CPUのデプロイを指示し(S33)、図9の処理を終了する。
リソース割当決定部32は、指定されたNUMAの物理CPUリソースの空きが無いならば(No)、指定されたNUMAへの仮想マシンのデプロイができないため、図9の処理を異常終了する。
図10は、比較例のピニング方式で構築されたシステムを示す図である。
NUMA4は、4個の物理CPU41a~41dを備える。物理CPU41aは、高い負荷量を受け持つ仮想マシンに割り当てた仮想CPU42aによって占有され、かつピニングされている。
NUMA4は、4個の物理CPU41a~41dを備える。物理CPU41aは、高い負荷量を受け持つ仮想マシンに割り当てた仮想CPU42aによって占有され、かつピニングされている。
物理CPU41bには、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想CPU42bによって占有され、かつピニングされている。これを示すため、図10では仮想CPU42a,42bがdedicate方式として記載されている。
物理CPU41c,41dには、仮想CPU42c,42dによって共有されている。つまり物理CPU41c,41dは、共有のパターンである。これを示すため、図10では仮想CPU42c,42dがshared方式として記載されている。
このシステムに対して、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想CPUをデプロイしようとしても、物理CPUリソースの空きがないため、この仮想マシンや仮想CPUをデプロイできないという問題がある。
《本実施形態の処理》
本実施形態は、比較例のピニング方式を拡張し、物理CPUを占有させ、かつピニングさせないパターンを加えるというものである。本パターンを加えることで、仮想マシンのサービス要件を考慮したCPUの割り当てが可能となる。
本実施形態は、比較例のピニング方式を拡張し、物理CPUを占有させ、かつピニングさせないパターンを加えるというものである。本パターンを加えることで、仮想マシンのサービス要件を考慮したCPUの割り当てが可能となる。
物理CPUを占有させ、かつピニングさせるパターンは、最優先で処理したいサービスに割り当てられる。このパターンの適用サービス例は、高い負荷量を受け持ち、かつ低レイテンシを要件とするサービスである。ここで低レイテンシの要件とは、レイテンシ要件が厳しいことをいう。これに対して、高い負荷量を受け持つことのみを要件とするサービスとは、レイテンシ要件が緩いことをいう。
物理CPUを占有させ、かつピニングさせないパターンは、優先度の高い他のサービスにより、割り当てられる物理CPUが変更される場合がある。このパターンの適用サービス例は、高い負荷量を受け持つことを要件とするサービスである。このパターンを加えることで、仮想マシンのサービス要件を、より考慮したCPUの割り当てが可能となる。
図2は、本実施形態において、アプリケーションの要件からピニングパターンを選択するフローチャートである。
ユーザ端末31は、アプリケーションが高い負荷量を受け持つか否かを判定する(S40)。
ユーザ端末31は、アプリケーションが高い負荷量を受け持たないならば(No)、このアプリケーションに係る仮想マシンに割り当てた仮想CPUに対して、物理CPUを他の仮想CPUと共有させるパターンを選択し(S41)、図2の処理を終了する。
ユーザ端末31は、アプリケーションが高い負荷量を受け持つか否かを判定する(S40)。
ユーザ端末31は、アプリケーションが高い負荷量を受け持たないならば(No)、このアプリケーションに係る仮想マシンに割り当てた仮想CPUに対して、物理CPUを他の仮想CPUと共有させるパターンを選択し(S41)、図2の処理を終了する。
ユーザ端末31は、アプリケーションが高い負荷量を受け持つならば(Yes)、アプリケーションの要件が低レイテンシであるか否かを判定する(S42)。ステップS42において、ユーザ端末31は、アプリケーションのレイテンシ要件が厳しいならば(Yes)、このアプリケーションに係る仮想マシンに割り当てた仮想CPUに対して、物理CPUを占有かつピニングさせるパターンを選択し(S44)、図2の処理を終了する。
ステップS42において、ユーザ端末31は、アプリケーションのレイテンシ要件が厳しくないならば(No)、物理CPUを占有かつピニングさせないパターンを選択し(S43)、図2の処理を終了する。すなわちユーザ端末31は、アプリケーションのレイテンシ要件が緩いならば、物理CPUを占有かつピニングさせないパターンを選択する。
図3は、本実施形態において、仮想マシンを稼働させる仮想CPUをピニングパターンに基づいて構築するフローチャートである。
この図3の処理は、図1のステップS13において実行される。
リソース割当決定部32は、物理CPUが占有されるパターンか否かを判定する(S50)。リソース割当決定部32は、物理CPUが占有されるパターンでないならば(No)、物理CPUの共有に係る処理を実行する。
この図3の処理は、図1のステップS13において実行される。
リソース割当決定部32は、物理CPUが占有されるパターンか否かを判定する(S50)。リソース割当決定部32は、物理CPUが占有されるパターンでないならば(No)、物理CPUの共有に係る処理を実行する。
リソース割当決定部32は、物理CPUが占有されるパターンならば(Yes)、指定されたNUMAの物理CPUリソースの空きを判定する(S51)。
ステップS52において、リソース割当決定部32は、指定されたNUMAの物理CPUリソースの空きが有るならば(Yes)、指定NUMAの空き物理CPU上への指定された仮想CPUのデプロイを指示し(S53)、図3の処理を終了する。
ステップS52において、リソース割当決定部32は、指定されたNUMAの物理CPUリソースの空きが有るならば(Yes)、指定NUMAの空き物理CPU上への指定された仮想CPUのデプロイを指示し(S53)、図3の処理を終了する。
ステップS52において、リソース割当決定部32は、指定されたNUMAの物理CPUリソースの空きが無いならば(No)、物理CPUがピニングされるバターンであるか否かを判定する(S54)。
リソース割当決定部32は、物理CPUがピニングされるバターンでないならば(No)、異常終了し、物理CPUがピニングされるバターンならば(Yes)、ステップS55の処理に進む。
ステップS55において、リソース割当決定部32は、指定されたNUMAに、占有かつ非ピニングの物理CPUが有るか否かを判定する。リソース割当決定部32は、指定されたNUMAに、占有かつ非ピニングの物理CPUが無ければ(No)異常終了し、占有かつ非ピニングの物理CPUが有れば(Yes)、ステップS56の処理に進む。
ステップS56において、リソース割当決定部32は、占有かつ非ピニングの物理CPUが処理する仮想CPUを、他のNUMAへマイグレーションするように指示する。更にリソース割当決定部32は、当該物理CPU上に仮想CPUのデプロイを指示し(S57)、図3の処理を終了する。
図4は、本実施形態のピニング方式で構築されたシステムの初期状態を示す図である。
NUMA4bは、1個の物理CPU41eを備えている。この物理CPU41eは、空き状態である。
NUMA4aは、4個の物理CPU41a~41dを備える。物理CPU41aは、高い負荷量を受け持つ仮想マシンに割り当てた仮想CPU42aによって占有されているが、ピニングされていない。つまり物理CPU41aは、占有かつ非ピニングのパターンである。
NUMA4bは、1個の物理CPU41eを備えている。この物理CPU41eは、空き状態である。
NUMA4aは、4個の物理CPU41a~41dを備える。物理CPU41aは、高い負荷量を受け持つ仮想マシンに割り当てた仮想CPU42aによって占有されているが、ピニングされていない。つまり物理CPU41aは、占有かつ非ピニングのパターンである。
物理CPU41bは、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想CPU42bによって占有され、かつピニングされている。つまり物理CPU41bは、占有かつピニングのパターンである。これらを示すため、図4では仮想CPU42a,42bがdedicate方式として記載されている。
物理CPU41c,41dは、仮想CPU42c,42dによって共有されている。つまり物理CPU41c,41dは、共有のパターンである。これを示すため、図4では仮想CPU42c,42dがshared方式として記載されている。
図5は、本実施形態のピニング方式で構築されたシステムのマイグレーション後を示す図である。図5は、図3のステップS56の処理が終了した後の状態を示している。
図4において物理CPU41aを占有していた仮想CPU42aは、図5においてNUMA4bが備える物理CPU41eにマイグレーションされている。そして物理CPU41aは、空き状態である。それ以外の物理CPU41b~41dの状態は、図4に示した初期状態と同様である。
図4において物理CPU41aを占有していた仮想CPU42aは、図5においてNUMA4bが備える物理CPU41eにマイグレーションされている。そして物理CPU41aは、空き状態である。それ以外の物理CPU41b~41dの状態は、図4に示した初期状態と同様である。
図6は、本実施形態のピニング方式で構築されたシステムのデプロイ後を示す図である。図6は、図3のフローチャートが終了した後の状態を示している。
図5において空き状態であった物理CPU41aには、図6において仮想CPU42eがデプロイされている。物理CPU41aは、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想CPU42eによって占有され、かつピニングされている。
図5において空き状態であった物理CPU41aには、図6において仮想CPU42eがデプロイされている。物理CPU41aは、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想CPU42eによって占有され、かつピニングされている。
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)~(c)のようなものがある。
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)~(c)のようなものがある。
(a) NUMAが備える物理CPUの数は4個に限定されない。また、各物理CPU上にデプロイされる仮想CPUの個数は1個または2個に限定されない。
(b) アプリケーションが受け持つ負荷量とレイテンシに応じて、物理CPUの占有の有無およびピニングの有無を判定するのは、ユーザ端末に限定されない。IaaS基盤が、アプリケーションが受け持つ負荷量とレイテンシに応じて、物理CPUの占有の有無およびピニングの有無を判定してもよい。
(c) NUMA上の物理CPUを占有する仮想CPUをマイグレーションするように判断するのは、リソース割当決定部に限定されない。NUMA上に物理CPUの空きが無い場合、仮想マシン生成管理部が物理CPUを占有する仮想CPUをマイグレーションして、この物理CPUを空き状態にしてから仮想マシンをデプロイ(生成)する。
(b) アプリケーションが受け持つ負荷量とレイテンシに応じて、物理CPUの占有の有無およびピニングの有無を判定するのは、ユーザ端末に限定されない。IaaS基盤が、アプリケーションが受け持つ負荷量とレイテンシに応じて、物理CPUの占有の有無およびピニングの有無を判定してもよい。
(c) NUMA上の物理CPUを占有する仮想CPUをマイグレーションするように判断するのは、リソース割当決定部に限定されない。NUMA上に物理CPUの空きが無い場合、仮想マシン生成管理部が物理CPUを占有する仮想CPUをマイグレーションして、この物理CPUを空き状態にしてから仮想マシンをデプロイ(生成)する。
1 IaaS基盤 (サーバ基盤)
11 ベアメタル
12 仮想マシン
13 コンテナ
14 オブジェクトストレージ
15 ファイルストレージ
16 ブロックストレージ
2a~2i アプリケーション
31 ユーザ端末
32 リソース割当決定部
33 リソース管理部
34 仮想マシン生成管理部
4,4a,4b NUMA
41a~41e 物理CPU
42a~42e 仮想CPU
11 ベアメタル
12 仮想マシン
13 コンテナ
14 オブジェクトストレージ
15 ファイルストレージ
16 ブロックストレージ
2a~2i アプリケーション
31 ユーザ端末
32 リソース割当決定部
33 リソース管理部
34 仮想マシン生成管理部
4,4a,4b NUMA
41a~41e 物理CPU
42a~42e 仮想CPU
Claims (8)
- コンピュートの物理CPU上に仮想CPUおよび仮想マシンを生成して、前記仮想マシンに前記仮想CPUを割り当てるサーバ基盤であって、
前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせない指示のうち何れかを生成するリソース割当決定部と、
前記リソース割当決定部の指示に応じて、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する仮想マシン生成管理部と、
を含むことを特徴とするサーバ基盤。 - 前記リソース割当決定部は、仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想CPUに、指定されたコンピュートの前記物理CPUを占有させる指示を生成し、かつ、前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想CPUを前記物理CPUにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想CPUを前記物理CPUにピニングさせない指示を生成する、
ことを特徴とする請求項1に記載のサーバ基盤。 - 前記リソース割当決定部は、前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュートの物理CPU上に移行させる指示を生成し、
前記仮想マシン生成管理部は、前記リソース割当決定部の指示に応じて、前記仮想マシンを前記他のコンピュートの物理CPU上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する、
ことを特徴とする請求項1または2に記載のサーバ基盤。 - 前記仮想マシン生成管理部は、前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する、
ことを特徴とする請求項1または2に記載のサーバ基盤。 - コンピュートの物理CPU上に仮想CPUおよび仮想マシンを生成して、前記仮想マシンに前記仮想CPUを割り当てるサーバ基盤による仮想CPUに対する物理CPUの割当プログラムであって、
コンピュータに、前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせる指示、前記仮想CPUに物理CPUを占有させ、かつピニングさせない指示のうち何れかを生成する工程、
前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する工程、
を実行させるための物理CPU割当プログラム。 - 仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想CPUに物理CPUを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想CPUに、指定されたコンピュートの前記物理CPUを占有させる指示を生成する工程、
前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想CPUを前記物理CPUにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想CPUを前記物理CPUにピニングさせない指示を生成する工程、
を実行させるための請求項5に記載の物理CPU割当プログラム。 - 前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュートの物理CPU上に移行させる指示を生成する工程、
前記仮想マシンを前記他のコンピュートの物理CPU上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成する工程、
を実行させるための請求項5または6に記載の物理CPU割当プログラム。 - 前記コンピュートに物理CPUの空きがなく、かつ、前記コンピュート上に何れかの仮想CPUによって占有された非ピニングの物理CPUが在るならば、当該物理CPU上を占有する仮想CPUに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理CPU上に新たな仮想マシンを生成するステップ、
を実行させるための請求項5または6に記載の物理CPU割当プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019023092A JP7151530B2 (ja) | 2019-02-13 | 2019-02-13 | サーバ基盤および物理cpu割当プログラム |
PCT/JP2020/004195 WO2020166437A1 (ja) | 2019-02-13 | 2020-02-04 | サーバ基盤および物理cpu割当プログラム |
US17/427,238 US20220121468A1 (en) | 2019-02-13 | 2020-02-04 | Server infrastructure and physical cpu allocation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019023092A JP7151530B2 (ja) | 2019-02-13 | 2019-02-13 | サーバ基盤および物理cpu割当プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020134988A JP2020134988A (ja) | 2020-08-31 |
JP7151530B2 true JP7151530B2 (ja) | 2022-10-12 |
Family
ID=72044691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019023092A Active JP7151530B2 (ja) | 2019-02-13 | 2019-02-13 | サーバ基盤および物理cpu割当プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220121468A1 (ja) |
JP (1) | JP7151530B2 (ja) |
WO (1) | WO2020166437A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140157A (ja) | 2007-12-05 | 2009-06-25 | Hitachi Ltd | 仮想計算機システム、仮想計算機の制御方法及びプログラム |
JP2009205696A (ja) | 2009-06-15 | 2009-09-10 | Hitachi Ltd | マルチコアプロセッサ計算機の制御方法 |
JP2013250949A (ja) | 2012-06-04 | 2013-12-12 | Hitachi Ltd | 計算機、仮想化機構、及びスケジューリング方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3019317B2 (ja) * | 1989-03-13 | 2000-03-13 | 株式会社日立製作所 | プロセススケジューリング方法 |
US7020800B2 (en) * | 2002-01-24 | 2006-03-28 | Hewlett-Packard Development Company L.P. | System and method for memory failure recovery using lockstep processes |
US8387049B2 (en) * | 2005-07-15 | 2013-02-26 | International Business Machines Corporation | Facilitating processing within computing environments supporting pageable guests |
US7765374B2 (en) * | 2007-01-25 | 2010-07-27 | Microsoft Corporation | Protecting operating-system resources |
JP4715758B2 (ja) * | 2007-01-30 | 2011-07-06 | 株式会社日立製作所 | 仮想計算機システムのプロセッサキャッピング方法 |
US9183157B2 (en) * | 2011-03-15 | 2015-11-10 | Huawei Technologies Co., Ltd. | Method for creating virtual machine, a virtual machine monitor, and a virtual machine system |
JP5519583B2 (ja) * | 2011-06-20 | 2014-06-11 | 日本電信電話株式会社 | 仮想マシン制御システム、仮想マシン制御装置、仮想マシン制御方法及びプログラム |
WO2015031277A1 (en) * | 2013-08-26 | 2015-03-05 | Vmware, Inc. | Networking stack of virtualization software configured to support latency sensitive virtual machines |
US9558005B2 (en) * | 2014-05-19 | 2017-01-31 | Intel Corporation | Reliable and deterministic live migration of virtual machines |
US10162656B2 (en) * | 2014-11-26 | 2018-12-25 | Vmware, Inc. | Minimizing guest operating system licensing costs in a processor based licensing model in a virtual datacenter |
US10452572B2 (en) * | 2016-10-06 | 2019-10-22 | Vmware, Inc. | Automatic system service resource management for virtualizing low-latency workloads that are input/output intensive |
US10445247B2 (en) * | 2017-06-20 | 2019-10-15 | Red Hat, Inc. | Switching between single-level and two-level page table translations |
US10599468B2 (en) * | 2017-10-25 | 2020-03-24 | Red Hat, Inc. | Housekeeping virtual processor overcommit for real time virtualization |
-
2019
- 2019-02-13 JP JP2019023092A patent/JP7151530B2/ja active Active
-
2020
- 2020-02-04 US US17/427,238 patent/US20220121468A1/en active Pending
- 2020-02-04 WO PCT/JP2020/004195 patent/WO2020166437A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009140157A (ja) | 2007-12-05 | 2009-06-25 | Hitachi Ltd | 仮想計算機システム、仮想計算機の制御方法及びプログラム |
JP2009205696A (ja) | 2009-06-15 | 2009-09-10 | Hitachi Ltd | マルチコアプロセッサ計算機の制御方法 |
JP2013250949A (ja) | 2012-06-04 | 2013-12-12 | Hitachi Ltd | 計算機、仮想化機構、及びスケジューリング方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2020134988A (ja) | 2020-08-31 |
US20220121468A1 (en) | 2022-04-21 |
WO2020166437A1 (ja) | 2020-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008191949A (ja) | マルチコアシステムおよびマルチコアシステムの負荷分散方法 | |
JP6107801B2 (ja) | 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム | |
WO2019160060A1 (ja) | 仮想リソース管理装置、仮想リソース割り当て方法、および仮想リソース割り当てプログラム | |
Panda et al. | A smoothing based task scheduling algorithm for heterogeneous multi-cloud environment | |
JP2019079334A (ja) | 情報処理装置、情報処理システムおよび情報処理方法 | |
JP6010975B2 (ja) | ジョブ管理装置、ジョブ管理方法、及びプログラム | |
JP7159887B2 (ja) | 仮想化基盤および仮想化基盤のスケーリング管理方法 | |
Fotohi et al. | A cluster based job scheduling algorithm for grid computing | |
JP6620609B2 (ja) | 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置 | |
US9740530B2 (en) | Decreasing the priority of a user based on an allocation ratio | |
Yao et al. | Admission control in YARN clusters based on dynamic resource reservation | |
JP5867238B2 (ja) | オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード | |
JP2011192049A (ja) | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム | |
JP7151530B2 (ja) | サーバ基盤および物理cpu割当プログラム | |
JP6823251B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP6158751B2 (ja) | 計算機資源割当装置及び計算機資源割当プログラム | |
JP6600250B2 (ja) | マルチコアcpuを有するパケット転送装置の制御装置及びプログラム | |
Awada | Application-container orchestration tools and platform-as-a-service clouds: A survey | |
Kumar et al. | Resource allocation for heterogeneous cloud computing using weighted fair-share queues | |
US11461144B2 (en) | Assignment of processes to computational resources | |
Aluri et al. | Priority based non-preemptive shortest job first resource allocation technique in cloud computing | |
JP6339978B2 (ja) | リソース割当管理装置およびリソース割当管理方法 | |
Mehmood et al. | Dynamic Auto-scaling of VNFs based on Task Execution Patterns | |
JP6387626B2 (ja) | 情報処理システム、情報処理方法、および、スケジューリングプログラム | |
WO2022102087A1 (ja) | コンピュータシステムおよびフロー制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210601 |
|
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: 20220830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220912 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7151530 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |