JP6943030B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP6943030B2
JP6943030B2 JP2017118782A JP2017118782A JP6943030B2 JP 6943030 B2 JP6943030 B2 JP 6943030B2 JP 2017118782 A JP2017118782 A JP 2017118782A JP 2017118782 A JP2017118782 A JP 2017118782A JP 6943030 B2 JP6943030 B2 JP 6943030B2
Authority
JP
Japan
Prior art keywords
load
unit
processor
information processing
processor core
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
Application number
JP2017118782A
Other languages
English (en)
Other versions
JP2019003493A (ja
Inventor
酒井 敦
敦 酒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017118782A priority Critical patent/JP6943030B2/ja
Priority to US16/004,629 priority patent/US10884819B2/en
Publication of JP2019003493A publication Critical patent/JP2019003493A/ja
Application granted granted Critical
Publication of JP6943030B2 publication Critical patent/JP6943030B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関する。
サーバなどの情報処理装置において、複数のCentral Processing Unit(CPU)コア
(マルチコア)を用いて複数のスレッド(マルチスレッド)でインタプリタが実行されることがある。マルチスレッドで処理が実行される場合、各スレッドに対してアクセス可能なメモリ領域は制限されず、各スレッドが同じアドレス空間にアクセスすることができる。このため、インタプリタがいわゆるスレッドセーフでないコードを複数のスレッドで並列的に実行するとき、複数のスレッドが同じアドレス空間にアクセスする結果、予期しない動作が発生する可能性がある。
上記の現象を回避することを目的として、インタプリタの実行時にGlobal Interpreter
Lock(GIL)と呼ばれるロックが使用されることがある。GILは、ロックを取得し
たスレッドが割り当てられたCPUコアにインタプリタを実行させ、ロックを取得していないスレッドが割り当てられた他のCPUコアにインタプリタを実行させない排他的なロックである。スレッドは、定期的にロックの取得と解放を繰り返してCPUコア間でロックの受け渡しを行いながらインタプリタを実行する。また、当該ロックを用いてインタプリタの実行の最適化や共有データの保護を図る技術が提案されている(特許文献1から4)。
特表2016−537709号公報 特開2012−128628号公報 特開2005−339437号公報 特開2007−249468号公報
複数プロセスによる並行処理が禁止されるプログラムの一例としてのインタプリタを、CPUコアを複数用いて実行する場合、1つのCPUコアがロックを占有する現象が発生する可能性がある。例えば、複数のCPUコアに割り当てられている各スレッドが1つのロックを取得し合うことでインタプリタが実行される場合、各CPUコアのスレッドは、ロックを取得するとロックの状態を示す共有フラグをメモリから取得し、自コアが使用するキャッシュに書き込む。また、ロックを取得したCPUコアのスレッドは、ロックを解放する際にフラグを更新し、他のCPUコアにロックを解放したことを通知する。
ロックを解放したスレッドを有するCPUコアが使用するキャッシュにはフラグが存在するが、他のCPUが使用するキャッシュにはフラグは存在しない。このため、他のCPUのスレッドは、ロックを取得するために、メモリからフラグを取得してキャッシュに書き込む。しかし、この処理の間に、ロックを解放したスレッドは、自コアが使用するキャッシュのフラグを参照し、再度ロックを取得することができる。この結果、負荷の高いCPUコアのスレッドがロックの解放と取得を繰り返し、他のCPUコアのスレッドがロックを取得できない可能性がある。
1つのCPUコアがロックを占有する現象を回避するために、CPUコアに対するサン
プリング処理によって各CPUコアのシステム時間やユーザ時間などの情報を収集し、CPUコアの負荷の高いプロセスを特定する技術がある。しかし、サンプリング処理では、監視対象のプロセスが増加するとチェック対象となるプロセス構造体が増加するなどの理由から、CPUコアの負荷が高くなる可能性がある。
上記の事情に鑑みて、1つの側面では、並行処理が禁止される複数プロセスを実行するプロセッサコアの負荷の監視に伴う処理量を抑えることができる情報処理装置を提供することを目的とする。
本件開示の技術の一側面によれば、情報処理装置は、複数プロセスによる並行処理が禁止されるプログラムを実行する複数のプロセッサコアのそれぞれの負荷を監視する監視部と、監視される複数のプロセッサコアの少なくとも1つのプロセッサコアの負荷が所定の負荷以上になった場合に、プログラムに関連するプロセスとプロセッサコアとの対応関係に基づいて、負荷が所定の負荷以上になったプロセッサコアで実行されているプロセスを特定する特定部とを有する。
本件開示の技術によれば、並行処理が禁止される複数プロセスを実行するプロセッサコアの負荷の監視に伴う処理量を抑えることができる情報処理装置を提供することができる。
図1は、一実施形態に係るサーバの構成の一例を示す図である。 図2は、一実施形態に係るサーバの仮想環境の一例を示す図である。 図3は、一実施形態に係るVMホストエージェントの構成の一例を示す図である。 図4は、一実施形態に係るテーブルの一例を示す図である。 図5は、一実施形態に係るホストトレースプログラムの構成の一例を示す図である。 図6は、一実施形態に係るVMエージェントの構成の一例を示す図である。 図7は、一実施形態に係るサーバにおいて実行される処理のフローチャートの一例を示す図である。 図8は、一実施形態に係るサーバにおいて図7の処理に続いて実行される処理のフローチャートの一例を示す図である。 図9は、一実施形態に係るサーバにおいて図7、8の処理とは別に実行される処理のフローチャートの一例を示す図である。 図10は、一変形例に係るサーバの物理環境の一例を示す図である。 図11は、一変形例に係るテーブルの一例を示す図である。 図12は、一変形例に係るサーバにおいて実行される処理のフローチャートの一例を示す図である。 図13は、一変形例に係るサーバにおいて図13の処理に続いて実行される処理のフローチャートの一例を示す図である。 図14は、一実施形態に係るサーバにおいて図12、13の処理とは別に実行される処理のフローチャートの一例を示す図である。
以下、本件開示の技術に係る実施形態について図面を参照しながら説明する。なお、以下の詳細な説明は例示的なものであり、実施形態の構成を限定するものではない。
図1に、一実施形態におけるサーバ10の構成の一例を示す。なお、サーバ10が情報処理装置の一例である。サーバ10は、Central Processing Unit(CPU)101、Random Access Memory(RAM)102、Hard Disk Drive(HDD)103、Graphics Processing Unit(GPU)104、入力インタフェース105、通信インタフェース106を有する。また、GPU104、入力インタフェース105、通信インタフェース106は、モニタ20、入力装置30、ネットワーク15にそれぞれ接続されている。CPU101、RAM102、HDD103、GPU104、入力インタフェース105、通信インタフェース106は、バス107を介して互いに接続されている。
サーバ10のユーザは、入力装置30を用いてサーバ10に種々の指示を行い、サーバ10の処理結果をモニタ20で確認する。本実施形態において、CPU101は、HDD103に記憶されている各種プログラムをRAM102に展開して実行することで、以下に説明する種々の処理を実行する。
図2に、サーバ10に実装される構成要素の一例を示す。サーバ10において、サーバ10のハードウェア10a上でハイパーバイザ10bが動作している。なお、ハードウェア10aは、一例としてサーバ10のCPU101、RAM102、HDD103、GPU104、入力インタフェース105、通信インタフェース106に相当する。また、ハイパーバイザ10b上には、Virtual Machine(VM)ホスト10cおよびVMゲスト1
0dが作成されている。ここで、VMホスト10cは、仮想マシンを動作させるためにサーバ10上で動作するサーバ仮想化ソフトウェアである。また、VMゲスト10dは、VMホスト10cによって提供される仮想化サーバなどの仮想環境である。
VMホストエージェント(図中「VMHAgt」)10eは、VMホスト10c、ハイパーバイザ10b、VMゲスト10d上のVMエージェント(図中「VMAgt」)10fをそれぞれ管理する。また、ハイパーバイザ10bでは、サーバ10上の各VMゲストを監視するホストトレースプログラム(図中「HTP」)10gが実行される。また、VMゲスト10dでは、インタプリタの実行プログラム10h(図中「IEP」)が実行される。ホストトレースプログラム10gは、サーバ10のユーザによる指示に従ってシステムコール(ハイパーバイザ10bの呼び出し)を検出(フック)する。また、システムコールによってVMゲストにおいて実行中の実行プログラム10hの処理の制御がハイパーバイザに移る、いわゆるVMExitが発生する。
図3にVMホストエージェント10eの構成の一例を示す。VMホストエージェント10eは、ホスト負荷監視部100a、ホスト監視スクリプト生成部100b、ホスト操作部100c、ゲスト操作部100d、データベース100eを有する。ホスト負荷監視部100aは、ホストトレースプログラム10gと通信し、ハイパーバイザ10bやVMゲスト10dの負荷に関する情報を取得する。また、ホスト負荷監視部100aは、取得した情報に基づいて種々の判定を行う。例えば、ホスト負荷監視部100aは、サーバ10の起動時に、ハイパーバイザ10bにホストトレースプログラム10gが存在しないことを検出すると、ホスト操作部100cに、ハイパーバイザ10bでホストトレースプログラム10gを実行するための処理を実行させる。また、ホスト負荷監視部100aは、ホストトレースプログラム10gから、VMゲスト10d上でのプロセスの起動に関する通知を受信する。そして、ホスト負荷監視部100aは、当該通知を受信すると、通知されたプロセスに対応するCPUコアの設定をゲスト操作部100dに指示する。
ホスト監視スクリプト生成部100bは、ホスト負荷監視部100aからの指示に基づいて、ハイパーバイザ10bに実行させるプログラムを生成する。また、ホスト監視スクリプト生成部100bは、VMゲスト10d上で実行されるプロセスの検出に使用されるファイルパスなどのデータも生成する。ホスト操作部100cは、ホスト負荷監視部10
0aからの指示に基づいて、ホスト監視スクリプト生成部100bが生成したプログラムをハイパーバイザ10bに送信する。また、ホスト操作部100cはハイパーバイザ10bと通信して、ハイパーバイザ10bが実行するツールやインタフェースを介してVMゲスト10dの監視を行う。ゲスト操作部100dは、ホスト負荷監視部100aからの指示に基づいて、VMエージェント10fと通信することで、VMゲスト10dの操作を実行する。
また、データベース100eには、VMゲスト10dで実行されるプロセスと仮想CPUコアに関連する情報が格納される。図4に、データベース100eに記憶されるテーブルの一例を示す。図4に示すように、データベース100eには、VMゲスト10dの各仮想CPUコアと各仮想CPUコアで実行されるプロセスとの対応関係が格納されるテーブル(図中「テーブル1」)が記憶される。具体例として、テーブル1には、VMゲストに割り当てられている識別子(図中「ゲストID」)が格納される。また、テーブル1には、ゲストIDが示すVMゲストで実行されるプロセスに割り当てられている識別子(図中「プロセスID」)が格納される。さらに、テーブル1には、プロセスIDが示すプロセスを実行するVMゲストの仮想CPUコアに割り当てられている識別子(図中「ゲストCPUコアID」)が格納される。
また、データベース100eには、VMゲストの監視において監視対象となるプロセスに関する情報が格納されるテーブル(図中「テーブル2」)が記憶される。具体例として、テーブル2には、VMゲストに割り当てられている識別子(図中「ゲストID」)が格納される。また、テーブル2には、VMゲストで実行されるプロセスのうち監視対象となるプロセスのプロセス名(「ゲストプロセス名」)が格納される。
また、データベース100eには、サーバ10の物理CPUコアの負荷に対する判定に使用される閾値(図中「CPUコアの負荷検出用閾値」)を格納するテーブル(図中「テーブル3」)が記憶される。また、データベース100eには、監視対象であるプロセスのプロセス名を格納するテーブル(図中「テーブル4」)が記憶される。また、データベース100eには、VMゲストの仮想CPUコアで実行されるプロセスID群のプロセスの負荷の判定に使用される閾値(図中「プロセスID群の負荷検出用閾値」)を格納するテーブル(図中「テーブル5」)が記憶される。なお、図4に示す各テーブルに格納されている情報は一例にすぎず、各欄には異なる情報が格納されてもよい。
図5に、ホストトレースプログラム(HTP)10gの構成の一例を示す。ホストトレースプログラム10gは、VM Exit解析部100f、VMホストエージェント通信部100g、パス名データ100hを含む。本実施形態では、VMゲスト10dは、ユーザインターフェイスあるいはユーザプログラムからのVMゲスト10dに対するプロセスの起動指示を受け付ける。このとき、VMゲスト10dのゲストOSによって、起動するプロセスのプログラムが指定されたシステムコール(ハイパーバイザの呼び出し)が発行される。そして、例えば起動するプロセスのプロセスイメージを取得するため、制御がVMゲスト10dからハイパーバイザ10bに移る。このとき、ハードウェアによっていわゆるVM Exitと呼ばれる状態遷移の処理が発生する。VM Exit解析部100fは、発生したVM Exitの情報を取得して制御が移った原因などを解析し、実行されるプログラムを特定する。
パス名データ100hには、VMゲスト10dで実行されるプロセスのうち、インタプリタに関連するプロセスの実行プログラムのパス名が格納されている。VM Exit解析部100fは、上記の解析で特定したプログラムがパス名データ100hに格納されているプログラムのパス名に対応するプログラムである場合に、当該プログラムが監視対象であると特定する。そして、VM Exit解析部100fは、監視対象であると特定し
たプログラムを、VMホストエージェント通信部100gを介してVMホストエージェント10eに通知する。したがって、本実施形態では、VM Exit解析部100fは、パス名データ100hに格納されたプログラムのパス名を用いて、検出したシステムコールに起因して実行されるプログラムがインタプリタであるか否かを判定することができる。
図6に、VMエージェント10fの構成の一例を示す。図6に示すように、VMエージェント10fは、プロセス操作部100j、プロセス負荷監視部100k、VMホストエージェント通信部100mを含む。プロセス操作部100jは、VMゲスト10dで実行されるプロセスとVMゲスト10d上の仮想CPUコアとの対応関係を決定する。プロセス負荷監視部100kは、VMゲスト10dで実行されるプロセスとVMゲスト10d上の仮想CPUコアの対応関係の監視や特定のプロセスを実行する仮想CPUコアの負荷の監視を行う。VMホストエージェント通信部100mは、VMホストエージェント10eとの通信を行う。
次に、本実施形態において、サーバ10において実行される処理について、図7および8を参照しながら説明する。一例として、サーバ10の電源がオンになると、ホストトレースプログラム10gが図7の処理を開始する。OP101において、ホストトレースプログラム10gは、検出部として機能し、VMゲスト10dのゲストOSが発行したシステムコールを検出する。次いで、処理はOP102に進められる。OP102において、ホストトレースプログラム10gは、検出したシステムコールがプロセス起動によるものであるか否かを判定する。システムコールがプロセス起動によるものである場合は(OP102:Yes)、ホストトレースプログラム10gは、処理をOP103に進める。システムコールがプロセス起動によるものでない場合は(OP102:No)、ホストトレースプログラム10gは、本フローチャートの処理を終了する。
OP103において、ホストトレースプログラム10gは、VM Exit解析部100fの上記解析処理により、検出したシステムコールにおいて実行されるプログラムのパス名を特定する。次いで、処理はOP104に進められる。OP104において、ホストトレースプログラム10gは、判定部として機能し、VM Exit解析部100fの解析処理により特定したプログラムのパス名が、パス名データ100hに格納されているか否かに基づいて、当該プログラムがインタプリタであるか否かを判定する。プログラムがインタプリタである場合は(OP104:Yes)、ホストトレースプログラム10gは、処理をOP105に進める。プログラムがインタプリタでない場合は(OP104:No)、ホストトレースプログラム10gは、本フローチャートの処理を終了する。
OP105において、ホストトレースプログラム10gは、VM Exit解析部100fの上記解析結果から、OP104においてインタプリタであると判定したプログラムのプロセスIDを取得する。次いで、OP106において、ホストトレースプログラム10gは、OP105において取得したプロセスIDと、VM Exit解析部100fの上記解析によって得られたVMゲスト10dのゲストIDと、VM Exit解析部100fの上記解析によって得られたプロセスIDに対応するプロセスのプロセス名とを、VMホストエージェント10eに送信する。
次いで、処理は、OP106から図8のOP107に進められる。ここで、本フローチャートの処理の主体がホストトレースプログラム10gからVMホストエージェント10eに移る。OP107において、VMホストエージェント10eは、ホストトレースプログラム10gから受信したプロセス名が、データベース100eのテーブル4に格納された監視対象のプロセス名であるか否かを判定する。ホストトレースプログラム10gから受信したプロセス名が監視対象である場合は(OP107:Yes)、VMホストエージ
ェント10eは、処理をOP108に進める。ホストトレースプログラム10gから受信したプロセス名が監視対象でない場合は(OP107:No)、VMホストエージェント10eは本フローチャートの処理を終了する。
OP108において、VMホストエージェント10eは、記憶部として機能し、OP105において取得したプロセスIDと、VM Exit解析部100fの解析処理によって得られたVMゲスト10dのゲストIDをデータベース100eのテーブル1に登録する。また、VMホストエージェント10eは、VM Exit解析部100fの解析処理によって得られたVMゲスト10dのゲストIDとプロセスIDに対応するプロセスのプロセス名とを、データベース100eのテーブル2に登録する。VMホストエージェント10eは、ゲストID、プロセスID、プロセス名をデータベース100eの各テーブルに登録すると、処理をOP109に進める。
OP109において、VMホストエージェント10eは、VMエージェント10fに対して、OP108において登録したプロセスに対するVMゲスト10dのCPUコアの割り付けを指示する。VMエージェント10fは、VMホストエージェント10eの指示に従って、仮想CPUコアをプロセスに割り付ける。次いで、処理はOP110に進められる。OP110において、VMエージェント10fは、仮想CPUコアの割り付けが完了すると、プロセスに割り付けた仮想CPUコアのCPUコアIDをVMホストエージェント10eに通知する。そして、VMホストエージェント10eは、VMエージェント10fによって通知されたVMゲスト10dの仮想CPUコアのCPUコアIDを、データベース100eのテーブル1に登録する。VMホストエージェント10eは、仮想CPUコアのCPUコアIDの登録が完了すると、本フローチャートの処理を終了する。
次に、図9に、図7、8に示すフローチャートの処理によってCPUコアの割り付けが行われた後にサーバ10において実行される処理の一例を示す。一例として、VMホストエージェント10eが、図7、8に示す処理を実行した後に、データベース100eに格納されている情報を使用して図9に示す処理を実行する。OP201において、VMホストエージェント10eは、サーバ10の各物理CPUコアの負荷に関する情報を取得する。例えば、VMホストエージェント10eは、周知の技術を用いてサーバ10の各物理CPUコアのコア使用率を、物理CPUコアの負荷に関する情報として取得する。VMホストエージェント10eは、サーバ10の各物理CPUコアの負荷に関する情報を取得すると、処理をOP202に進める。
OP202において、VMホストエージェント10eは、監視部として機能し、OP201において取得した情報から各物理CPUコアの負荷が閾値以上であるか否かを判定する。なお、当該閾値が第1の負荷の一例である。VMホストエージェント10eは、閾値の情報をデータベース100eのテーブル3から取得する。そして、VMホストエージェント10eは、例えば各物理CPUコアのコア使用率が、閾値以上であるか否かを判定する。コア使用率が閾値以上である物理CPUコアが存在する場合は(OP202:Yes)、VMホストエージェント10eは、処理をOP203に進める。一方、各物理CPUコアのコア使用率が閾値未満である場合は(OP202:No)、VMホストエージェント10eは、処理をOP201に戻す。
OP203において、VMホストエージェント10eは、ハイパーバイザ10bの制御情報を取得する。さらに、VMホストエージェント10eは、ハイパーバイザ10bの制御情報に含まれる仮想CPUコアに対する物理CPUコアの割り当て情報から、負荷が閾値以上であると判定した物理CPUコアを使用する仮想CPUコアを特定する。そして、VMホストエージェント10eは、特定した仮想CPUコアを有するVMゲストに対応するゲストIDを特定する。さらに、VMホストエージェント10eは、特定した仮想CP
Uコアに対応するCPUコアIDを特定する。VMホストエージェント10eは、ゲストIDおよびCPUコアIDを特定すると、処理をOP204に進める。
OP204において、VMホストエージェント10eは、特定部として機能し、データベース100eのテーブル1に格納されている情報から、OP203において特定したCPUコアIDに対応する仮想CPUコアで実行中のプロセスIDを特定する。複数のプロセスIDが特定される場合があるため、OP204において特定されるプロセスIDをプロセスID群と称する。VMホストエージェント10eは、プロセスID群を特定すると、処理をOP205に進める。
OP205において、VMホストエージェント10eは、VMエージェント10fに対して、OP204で特定したプロセスID群のプロセスを実行することによる仮想CPUコアの負荷の確認を指示する。ここで、本フローチャートの処理における主体がVMホストエージェント10eからVMエージェント10fに移る。VMエージェント10fは、VMホストエージェント10eからの指示に従い、OP204で特定したプロセスID群のプロセスの実行に伴う仮想CPUコアの負荷に関する情報を取得する。例えば、VMエージェント10fは、当該仮想CPUコアのコア使用率を、仮想CPUコアの負荷に関する情報として取得する。これにより、当該仮想CPUコアの負荷全体に対するプロセスID群のプロセスの負荷がわかる。VMエージェント10fは、仮想CPUコアの負荷に関する情報を取得すると、処理をOP206に進める。
OP206において、VMエージェント10fは、OP205において取得した情報から、仮想CPUコアにおけるプロセスID群のプロセスの負荷が閾値以上であるか否かを判定する。なお、当該閾値が第2の負荷の一例である。VMエージェント10fは、閾値の情報をデータベース100eのテーブル5から取得する。VMエージェント10fは、例えばプロセスID群のプロセスのコア使用率が、閾値以上であるか否かを判定する。プロセスID群のプロセスのコア使用率が閾値以上である場合は(OP206:Yes)、VMエージェント10fは、処理をOP207に進める。一方、プロセスID群のプロセスのコア使用率が閾値未満である場合は(OP206:No)、VMエージェント10fは、処理をOP201に戻す。
OP207において、VMエージェント10fは、割り付け部として機能し、OP204において特定されたプロセスID群のうち1つのプロセスIDに対応するプロセスを現在の仮想CPUコア、すなわちOP203において特定された仮想CPUコアに割り付ける。さらに、VMエージェント10fは、プロセスID群のうちの残りのプロセスIDに対応するプロセスをVMゲスト内の他の仮想CPUコアに割り付けることでプロセスを移動する。なお、現在の仮想CPUコアへの割り付けを維持するプロセスと他の仮想CPUコアに移動するプロセスをどのように決定するかは、乱数を用いるなど、周知の技術を用いて行えばよい。VMエージェント10fは、プロセスの移動が完了すると、処理をOP208に進める。
OP208において、VMエージェント10fは、更新部として機能し、プロセスID群の各プロセスIDと割り付けられている仮想CPUコアのCPUコアIDとの対応関係をVMホストエージェント10eに通知する。ここで、処理の主体がVMエージェント10fからVMホストエージェント10eに移る。VMホストエージェント10eは、VMエージェント10fから通知されたプロセスIDとCPUコアIDとの対応関係を用いて、データベース100eのテーブル1に格納されているプロセスIDとCPUコアIDとの対応関係を更新する。そして、VMホストエージェント10eは、本フローチャートの処理を終了する。
以上のように、OP101の処理によって、仮想マシンにおいて実行されるプロセスの制御が仮想CPUコアからハイパーバイザに移る際に、当該プロセスに関する情報を取得することができる。また、OP102〜OP104の処理によって、当該プロセスがインタプリタに関するものであるか否か、すなわち監視対象のプロセスであるか否かを判定することができる。また、OP105〜OP110の処理によって、監視対象のプロセスと当該プロセスを実行する仮想CPUコアの対応関係を、監視対象のプロセスに関する情報として取得および記憶することができる。
さらに、OP201、OP202の処理によって、サーバ10上で仮想マシンを稼働させる場合に、物理CPUコアの負荷に対する判定に基づいて、当該物理CPUコアを使用する仮想CPUコアの負荷の状態を監視することができる。これにより、VMゲストに仮想CPUコアの負荷に関する情報を取得するプログラムを組み込むなどVMゲストの構成を変えることなく、仮想CPUコアの負荷の状態を監視することができる。
また、OP203〜OP206の処理によって、あらかじめ取得した監視対象のプロセスに関する情報に基づいて、仮想CPUコアにおいて監視対象のプロセスを実行することにより負荷が所定の負荷以上であるか否かを判定する。これにより、監視対象のプロセスを実行することによって負荷が高くなっている仮想CPUコアを特定することができる。そして、OP207の処理によって、仮想CPUコアの負荷が所定の負荷以上である場合に、プロセスを他の仮想CPUコアに割り付けることで、仮想CPUコアの負荷を分散させることができる。この結果、VMゲストの仮想CPUコアがいわゆるスレッドセーフでないコードを含むインタプリタなどのプログラムを実行する際に、当該仮想CPUコアが他の仮想CPUコアにプログラムの実行を禁止するGILなどのロックを占有する現象の発生を抑えることができる。さらに、OP208の処理によって、プロセスの割り付け後におけるプロセスとプロセッサコアとの対応関係を把握することができる。
以上が本実施形態に関する説明であるが、上記のサーバなどの構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範囲内において種々の変更が可能である。例えば、上記の実施形態では、監視対象のプロセスをインタプリタによって実行されるプロセスとしたが、複数プロセスによる並行処理が禁止されるプログラムであればインタプリタに限らず監視対象とすることができる。
次に、上記の実施形態の変形例について説明する。なお、本変形例において、上記の実施形態と同様の構成要素については同一の符号を付し、詳細な説明は省略する。上記の実施形態では、VMゲストの仮想CPUコアで実行されるプロセスを監視するが、本変形例では、物理CPUコアで実行されるプロセスを監視する。このため、本変形例では、VMホスト、VMゲスト、VM Exit、VMエージェントは削除されている。本変形例では、サーバ200のハードウェア200a上でOS200bが稼働している場合にプロセスの監視を行うことを想定している。
図10に示すように、OS200bには、物理サーバトレースプログラム(図中「PTP」)200dが組み込まれている。物理サーバトレースプログラム200dは、ホストトレースプログラムと同様、サーバ200のユーザの指示に基づくシステムコールの呼び出し時に起動されるプログラムである。また、OS200b上で、物理サーバエージェント(Physical Server Agent)(図中「PSAgt」)200cおよびインタプリタの実
行プログラム(図中「IEP」)200eが実行される。物理サーバエージェント200c、物理サーバトレースプログラム200d、インタプリタの実行プログラム200eは、上記のVMホストエージェント10e、ホストトレースプログラム10g、インタプリタの実行プログラム10hに対応する。
また、図11に示すように、データベース100eには、テーブル11、テーブル12、テーブル13、テーブル14、テーブル15が格納されている。テーブル11、テーブル12、テーブル13、テーブル14、テーブル15は、それぞれ上記のテーブル1、テーブル2、テーブル3、テーブル4、テーブル5に対応する。
図12〜14に本変形例のサーバ200において実行される処理のフローチャートを示す。OP301〜OP310は、それぞれ上記のOP101〜OP110に対応する処理である。ただし、本変形例では、ゲストOSのシステムコールの代わりにOS200bのシステムコールが検出される。また、本変形例では、VMホストおよびVMゲストは存在しないため、ゲストIDの登録は実行されない。また、VMゲストで実行されるプロセスのプロセスIDの代わりに物理CPUコアで実行されるプロセスのプロセスIDが取得、送信、登録される。OP301〜OP310の処理によって、サーバ200で実行されるプロセスと物理CPUコアとの対応関係が特定される。
また、OP401〜OP408は、それぞれ上記のOP201〜OP208に対応する処理である。ただし、本変形例では、OP405において仮想CPUコアにおけるプロセスID群のプロセスの負荷の代わりに物理CPUコアにおけるプロセスID群のプロセスの負荷が確認される。OP401〜OP408の処理によって、サーバ200で実行される監視対象のプロセスの実行によって負荷が高くなっている物理CPUコアが特定される。さらに、物理CPUコアの負荷が高くなる要因となるプロセスを他の物理CPUコアに移動することで、物理CPUコアの負荷を分散させることができる。
また、上記の実施形態において、上記の少なくとも一部の処理は、CPU以外のプロセッサ、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit(GPU)、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われてもよい。また、上記の少なくとも一部の処理は、集積回路(IC)、その他のディジタル回路であってもよい。また、上記各部の少なくとも一部にアナログ回路が含まれてもよい。集積回路は、Large-scale Integration(LSI)、Application Specific Integrated Circuit(ASIC)、プログラマブルロジックデバイス(PLD)を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。上記各部は、
プロセッサと集積回路との組み合わせであってもよい。組み合わせは、例えば、マイクロコントローラ(MCU)、System-on-a-Chip(SoC)、システムLSI、チップセットなどと呼ばれる。
<コンピュータが読み取り可能な記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記サーバの設定を行うための管理ツール、OSその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
並行処理が禁止される複数プロセスを実行する複数のプロセッサコアのそれぞれの負荷を監視する監視部と、
前記監視される前記複数のプロセッサコアのうち負荷が第1の負荷以上になった第1のプロセッサコアで実行されているプロセスを、前記複数プロセスと前記第1のプロセッサコアとの対応関係に基づいて特定する特定部と
を有することを特徴とする情報処理装置。
(付記2)
前記第1のプロセッサコアでプロセスが起動されたときに、並行処理が禁止されるプロセスを示す情報に基づいて、前記起動されたプロセスが並行処理が禁止されるプロセスであるか否かを判定する判定部と、
前記判定部によって並行処理が禁止されるプロセスであると判定されたプロセスと前記第1のプロセッサコアの対応関係を記憶する記憶部と
をさらに有し、
前記特定部は、前記記憶部に記憶された前記対応関係に基づいて、前記第1のプロセッサコアで実行されているプロセスを特定する
ことを特徴とする付記1に記載の情報処理装置。
(付記3)
前記第1のプロセッサコアの負荷が、前記特定部によって特定されたプロセスにより第2の負荷以上になっている場合に、前記特定部によって特定されたプロセスを前記第1のプロセッサコアとは別の第2のプロセッサコアに割り付ける割り付け部をさらに有する、ことを特徴とする付記1または2に記載の情報処理装置。
(付記4)
前記特定部によって特定されたプロセスと前記第2のプロセッサコアとの対応関係に基づいて、前記記憶部に記憶されたプロセスとプロセッサコアとの対応関係を更新する更新部をさらに有する、ことを特徴とする付記2を引用する付記3に記載の情報処理装置。
(付記5)
前記情報処理装置において発行される、プロセスに関するシステムコールを検出する検出部をさらに有し、
前記判定部は、前記検出されたシステムコールによって起動されるプロセスが並行処理が禁止されるプロセスであるか否かを判定する
ことを特徴とする付記2から4のいずれかに記載の情報処理装置。
(付記6)
並行処理が禁止されるプロセスを実行する複数のプロセッサコアは、前記情報処理装置内の物理マシン上のプロセスによって仮想的に形成される仮想マシン上の複数の仮想プロセッサコアであり、
前記監視部は、前記情報処理装置の物理プロセッサコアの負荷に基づいて、前記複数の仮想プロセッサコアの負荷を監視する
ことを特徴とする付記1から5のいずれかに記載の情報処理装置。
(付記7)
コンピュータの監視部によって、並行処理が禁止される複数プロセスを実行する複数のプロセッサコアのそれぞれの負荷を監視し、
前記コンピュータの特定部によって、前記監視される前記複数のプロセッサコアのうち負荷が第1の負荷以上になった第1のプロセッサコアで実行されているプロセスを、前記複数プロセスと前記第1のプロセッサコアとの対応関係に基づいて特定する
ことを特徴とする情報処理方法。
(付記8)
前記コンピュータの判定部によって、前記第1のプロセッサコアでプロセスが起動されたときに、並行処理が禁止されるプロセスを示す情報に基づいて、前記起動されたプロセスが並行処理が禁止されるプロセスであるか否かを判定し、
前記コンピュータの記憶部によって、前記判定部によって並行処理が禁止されるプロセスであると判定されたプロセスと前記第1のプロセッサコアの対応関係を記憶し、
前記特定部は、前記記憶部に記憶された前記対応関係に基づいて、前記第1のプロセッサコアで実行されているプロセスを特定する
ことを特徴とする付記7に記載の情報処理方法。
(付記9)
前記コンピュータの割り付け部によって、前記第1のプロセッサコアの負荷が、前記特定部によって特定されたプロセスにより第2の負荷以上になっている場合に、前記特定部によって特定されたプロセスを前記第1のプロセッサコアとは別の第2のプロセッサコアに割り付ける、ことを特徴とする付記7または8に記載の情報処理方法。
(付記10)
前記コンピュータの更新部によって、前記特定部によって特定されたプロセスと前記第2のプロセッサコアとの対応関係に基づいて、前記記憶部に記憶されたプロセスとプロセッサコアとの対応関係を更新する、ことを特徴とする付記8を引用する付記9に記載の情報処理方法。
(付記11)
前記コンピュータの検出部によって、前記情報処理装置において発行される、プロセスに関するシステムコールを検出し、
前記判定部は、前記検出されたシステムコールによって起動されるプロセスが並行処理が禁止されるプロセスであるか否かを判定する
ことを特徴とする付記8から10のいずれかに記載の情報処理方法。
(付記12)
並行処理が禁止されるプロセスを実行する複数のプロセッサコアは、前記情報処理装置内の物理マシン上のプロセスによって仮想的に形成される仮想マシン上の複数の仮想プロセッサコアであり、
前記監視部は、前記情報処理装置の物理プロセッサコアの負荷に基づいて、前記複数の仮想プロセッサコアの負荷を監視する
ことを特徴とする付記7から11のいずれかに記載の情報処理方法。
(付記13)
コンピュータの監視部によって、並行処理が禁止される複数プロセスを実行する複数のプロセッサコアのそれぞれの負荷を監視し、
前記コンピュータの特定部によって、前記監視される前記複数のプロセッサコアのうち負荷が第1の負荷以上になった第1のプロセッサコアで実行されているプロセスを、前記複数プロセスと前記第1のプロセッサコアとの対応関係に基づいて特定する
処理を前記コンピュータに実行させるためのプログラム。
(付記14)
前記コンピュータの判定部によって、前記第1のプロセッサコアでプロセスが起動されたときに、並行処理が禁止されるプロセスを示す情報に基づいて、前記起動されたプロセスが並行処理が禁止されるプロセスであるか否かを判定し、
前記コンピュータの記憶部によって、前記判定部によって並行処理が禁止されるプロセスであると判定されたプロセスと前記第1のプロセッサコアの対応関係を記憶する、
処理を前記コンピュータにさらに実行させ、
前記特定部は、前記記憶部に記憶された前記対応関係に基づいて、前記第1のプロセッサコアで実行されているプロセスを特定する
ことを特徴とする付記13に記載のプログラム。
(付記15)
前記コンピュータの割り付け部によって、前記第1のプロセッサコアの負荷が、前記特定部によって特定されたプロセスにより第2の負荷以上になっている場合に、前記特定部によって特定されたプロセスを前記第1のプロセッサコアとは別の第2のプロセッサコアに割り付ける、処理を前記コンピュータにさらに実行させることを特徴とする付記13ま
たは14に記載のプログラム。
(付記16)
前記コンピュータの更新部によって、前記特定部によって特定されたプロセスと前記第2のプロセッサコアとの対応関係に基づいて、前記記憶部に記憶されたプロセスとプロセッサコアとの対応関係を更新する、処理を前記コンピュータにさらに実行させることを特徴とする付記14を引用する付記15に記載のプログラム。
(付記17)
前記コンピュータの検出部によって、前記情報処理装置において発行される、プロセスに関するシステムコールを検出する、処理を前記コンピュータにさらに実行させ、
前記判定部は、前記検出されたシステムコールによって起動されるプロセスが並行処理が禁止されるプロセスであるか否かを判定する
ことを特徴とする付記14から16のいずれかに記載のプログラム。
(付記18)
並行処理が禁止されるプロセスを実行する複数のプロセッサコアは、前記情報処理装置内の物理マシン上のプロセスによって仮想的に形成される仮想マシン上の複数の仮想プロセッサコアであり、
前記監視部は、前記情報処理装置の物理プロセッサコアの負荷に基づいて、前記複数の仮想プロセッサコアの負荷を監視する
ことを特徴とする付記13から17のいずれかに記載のプログラム。
10、200 サーバ
101 CPU
102 RAM
103 HDD
10b ハイパーバイザ
10c VMホスト
10d VMゲスト
10e VMホストエージェント
10f VMエージェント
10g ホストトレースプログラム
200b OS
200c 物理サーバエージェント
200d 物理サーバトレースプログラム

Claims (8)

  1. 並行処理が禁止される複数プロセスを実行する複数のプロセッサコアのそれぞれの負荷を監視する監視部と、
    前記監視される前記複数のプロセッサコアのうち負荷が第1の負荷以上になった第1のプロセッサコアで実行されているプロセスを、前記複数プロセスと前記第1のプロセッサコアとの対応関係に基づいて特定する特定部と
    を有することを特徴とする情報処理装置。
  2. 前記複数のプロセッサコアのいずれかでプロセスが起動されたときに、並行処理が禁止されるプロセスを示す情報に基づいて、前記起動されたプロセスが並行処理が禁止されるプロセスであるか否かを判定する判定部と、
    前記判定部によって並行処理が禁止されるプロセスであると判定されたプロセスと前記並行処理が禁止されるプロセスであると判定されたプロセスが起動されたプロセッサコアの対応関係を記憶する記憶部と
    をさらに有し、
    前記特定部は、前記記憶部に記憶された前記対応関係に基づいて、前記第1のプロセッサコアで実行されているプロセスを特定する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1のプロセッサコアの負荷が、前記特定部によって特定されたプロセスにより第2の負荷以上になっている場合に、前記特定部によって特定されたプロセスを前記第1のプロセッサコアとは別の第2のプロセッサコアに割り付ける割り付け部をさらに有する、ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記第1のプロセッサコアの負荷が、前記特定部によって特定されたプロセスにより第2の負荷以上になっている場合に、前記特定部によって特定されたプロセスを前記第1のプロセッサコアとは別の第2のプロセッサコアに割り付ける割り付け部をさらに有し、
    前記特定部によって特定されたプロセスと前記第2のプロセッサコアとの対応関係に基づいて、前記記憶部に記憶されたプロセスとプロセッサコアとの対応関係を更新する更新部をさらに有する、ことを特徴とする請求項2に記載の情報処理装置。
  5. 前記情報処理装置において発行される、プロセスに関するシステムコールを検出する検出部をさらに有し、
    前記判定部は、前記検出されたシステムコールによって起動されるプロセスが並行処理が禁止されるプロセスであるか否かを判定する
    ことを特徴とする請求項2に記載の情報処理装置。
  6. 並行処理が禁止されるプロセスを実行する複数のプロセッサコアは、前記情報処理装置内の物理マシン上のプロセスによって仮想的に形成される仮想マシン上の複数の仮想プロセッサコアであり、
    前記監視部は、前記情報処理装置の物理プロセッサコアの負荷に基づいて、前記複数の仮想プロセッサコアの負荷を監視する
    ことを特徴とする請求項1から5のいずれか一項に記載の情報処理装置。
  7. コンピュータの監視部によって、並行処理が禁止される複数プロセスを実行する複数のプロセッサコアのそれぞれの負荷を監視し、
    前記コンピュータの特定部によって、前記監視される前記複数のプロセッサコアのうち負荷が第1の負荷以上になった第1のプロセッサコアで実行されているプロセスを、前記複数プロセスと前記第1のプロセッサコアとの対応関係に基づいて特定する
    ことを特徴とする情報処理方法。
  8. コンピュータの監視部によって、並行処理が禁止される複数プロセスを実行する複数のプロセッサコアのそれぞれの負荷を監視し、
    前記コンピュータの特定部によって、前記監視される前記複数のプロセッサコアのうち負荷が第1の負荷以上になった第1のプロセッサコアで実行されているプロセスを、前記複数プロセスと前記第1のプロセッサコアとの対応関係に基づいて特定する
    処理を前記コンピュータに実行させるためのプログラム。
JP2017118782A 2017-06-16 2017-06-16 情報処理装置、情報処理方法およびプログラム Active JP6943030B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017118782A JP6943030B2 (ja) 2017-06-16 2017-06-16 情報処理装置、情報処理方法およびプログラム
US16/004,629 US10884819B2 (en) 2017-06-16 2018-06-11 Information processing apparatus and method for monitoring and allocating processor loads

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017118782A JP6943030B2 (ja) 2017-06-16 2017-06-16 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019003493A JP2019003493A (ja) 2019-01-10
JP6943030B2 true JP6943030B2 (ja) 2021-09-29

Family

ID=64658110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017118782A Active JP6943030B2 (ja) 2017-06-16 2017-06-16 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US10884819B2 (ja)
JP (1) JP6943030B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220261262A1 (en) * 2019-05-10 2022-08-18 Hitachi Astemo, Ltd. Hypervisor and control device
CN112130904B (zh) * 2020-09-22 2024-04-30 黑芝麻智能科技(上海)有限公司 处理系统、处理器间通信方法、以及共享资源管理方法
CN112579257B (zh) * 2020-12-14 2024-02-23 深信服科技股份有限公司 一种虚拟中央处理器核心的调度方法、装置及相关设备
JP7431776B2 (ja) 2021-06-09 2024-02-15 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4177292B2 (ja) 2004-05-31 2008-11-05 Tdk株式会社 メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007249468A (ja) 2006-03-15 2007-09-27 Hitachi Ltd Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
US8281308B1 (en) * 2007-07-23 2012-10-02 Oracle America, Inc. Virtual core remapping based on temperature
JP5681473B2 (ja) 2010-12-15 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラムの最適化装置、最適化方法および最適化プログラム
EP2662771A4 (en) * 2011-01-07 2014-05-21 Fujitsu Ltd PLANNING PROCESS AND MULTI-CORE PROCESSOR SYSTEM
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
WO2015055083A1 (en) 2013-10-14 2015-04-23 International Business Machines Corporation Adaptive process for data sharing with selection of lock elision and locking
US9842008B2 (en) * 2015-02-25 2017-12-12 Netapp, Inc. Cache affinity and processor utilization technique

Also Published As

Publication number Publication date
JP2019003493A (ja) 2019-01-10
US10884819B2 (en) 2021-01-05
US20180365078A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
JP6943030B2 (ja) 情報処理装置、情報処理方法およびプログラム
US9413683B2 (en) Managing resources in a distributed system using dynamic clusters
US9098337B2 (en) Scheduling virtual central processing units of virtual machines among physical processing units
US9229820B2 (en) Information processing device with memory dump function, memory dump method, and recording medium
US20150326531A1 (en) Mechanism for providing external access to a secured networked virtualization environment
US9244710B2 (en) Concurrent hypervisor replacement
US20130055261A1 (en) Controlling virtual machine in cloud computing system
EP3230873B1 (en) Computing method and apparatus with persistent memory
KR101063604B1 (ko) 멀티프로세서 시스템 상에서 멀티스레드 프로그램으로부터의 메모리 액세스를 관리하기 위한 방법 및 시스템
JP6273034B2 (ja) 仮想化コンピューティング装置及び方法
US10310890B2 (en) Control method for virtual machine system, and virtual machine system
US10318340B2 (en) NVRAM-aware data processing system
US20190377612A1 (en) VCPU Thread Scheduling Method and Apparatus
US9063868B2 (en) Virtual computer system, area management method, and program
CN113168464A (zh) 虚拟化计算环境中的安全存储器访问
US20180365428A1 (en) Configuration of a memory controller for copy-on-write with a resource controller
US10241822B2 (en) Information processing apparatus for moving virtual machine and method of moving virtual machine
CN111679914A (zh) 一种内存管理方法、系统、计算机设备及存储介质
US10489218B2 (en) Suppression of speculative accesses to shared memory locations at a processor
JP5905412B2 (ja) 仮想計算機システム及びプロセッサ性能測定方法
JP2017201481A (ja) 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
KR20170061048A (ko) 하이퍼바이저 기반 가상화 시스템의 지연 시간을 측정하기 위한 장치 및 이를 포함하는 가상화 시스템
US20090241111A1 (en) Recording medium having instruction log acquiring program recorded therein and virtual computer system
US20230027307A1 (en) Hypervisor-assisted transient cache for virtual machines
US20210373975A1 (en) Workgroup synchronization and processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210519

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: 20210810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210823

R150 Certificate of patent or registration of utility model

Ref document number: 6943030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150