JP2015005015A - 仮想計算機システム及びプロセッサ性能測定方法 - Google Patents

仮想計算機システム及びプロセッサ性能測定方法 Download PDF

Info

Publication number
JP2015005015A
JP2015005015A JP2013128253A JP2013128253A JP2015005015A JP 2015005015 A JP2015005015 A JP 2015005015A JP 2013128253 A JP2013128253 A JP 2013128253A JP 2013128253 A JP2013128253 A JP 2013128253A JP 2015005015 A JP2015005015 A JP 2015005015A
Authority
JP
Japan
Prior art keywords
stage
execution
time
vmm
guest
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.)
Granted
Application number
JP2013128253A
Other languages
English (en)
Other versions
JP5905412B2 (ja
Inventor
小林 雄二
Yuji Kobayashi
雄二 小林
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013128253A priority Critical patent/JP5905412B2/ja
Priority to US14/244,732 priority patent/US9400730B2/en
Publication of JP2015005015A publication Critical patent/JP2015005015A/ja
Application granted granted Critical
Publication of JP5905412B2 publication Critical patent/JP5905412B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】2段目VM(Virtual Machine)について把握される物理プロセッサ性能の正確性を向上する。
【解決手段】1段目VMと1段目VM上に生成される2段目VMとを実行する仮想計算機システムにおいて、プロセッサが、2段目VMの仮想的な実行開始が原因で物理的に実行開始を指示するのか否かの第1の判断と、2段目VMの仮想的な終了が原因で物理的な終了が検出されたか否かの第2の判断とを行い、第1及び第2の判断の結果を基に、2段目VMの実行時間を算出する。
【選択図】図1

Description

本発明は、1段目VM(Virtual Machine)上で2段目VMを実行する仮想計算機システムでのプロセッサ性能測定に関する。
一般に、サーバ台数の増加と共に運用に関する複雑さが増加しており、運用コストが問題化する。運用コストを低減する技術として、複数サーバを1台にまとめるサーバ統合が注目を集めている。サーバ統合を実現する技術として、1つのコンピュータを任意の割合で論理的に分割する仮想計算機技術が知られている。仮想計算機技術では、例えば、ハイパバイザなどのファームウェア(またはミドルウェア)が、物理計算機を複数の論理区画(LPAR:Logical PARtition)に分割し、各LPARに対して計算機資源(典型的には、プロセッサ、メモリ、I/O(Input/Output)デバイス)を割り当て、各LPAR上でそれぞれOS(Operating System)を動作させる。あるいは、1つのサーバ上で1つのホストOS(物理計算機を直接使用するOS)が実行され、このホストOS上稼動するハイパバイザが、上記と同様の分割処理を行って、複数のゲストOS(ホストOS上で稼動するOS)を稼動させる。仮想計算機技術は、複数のサーバで稼動していたOS、及び、OS上で稼動するソフトウェアを、1台のサーバで稼動させることを可能にしており、サーバ統合を実現している。
また、仮想計算機技術は、一般に、汎用機(Mainframe)等の大型計算機で用いられてきた技術であるが、近年のマイクロプロセッサの性能向上に伴い、ローエンドサーバでも普及しつつある。仮想計算機技術を採用したサーバ等の計算機は、ゲスト(ゲストOS及び、ゲストOS上で稼動するソフトウェアの総称)を稼動させる複数の仮想計算機(Virtual Machine)と、仮想計算機の制御を行う仮想計算機モニタ(Virtual Machine Monitor、以下「VMM」とする)とを有する。
VMMを支援する機能を提供及び拡充するプロセッサが知られている。そのようなプロセッサとして、例えば、x86プロセッサがある。ローエンドサーバの中でも特に、x86プロセッサはVMMを支援する機能を提供及び拡充しており、x86プロセッサを搭載するx86サーバは仮想計算機の性能を改善している。今後もx86サーバの性能は継続的に向上すると推測され、1サーバ上で稼動できるゲスト数は増加傾向にある。
本傾向が進むと、障害が発生した場合に、多数のゲストが一斉に停止する懸念が生じてくる。本懸念に対しては、占有方式が有効である。占有方式は、計算機資源(典型的には、プロセッサ、メモリ、I/Oデバイス)を単一のゲストに占有させて、故障時の影響範囲を最小化し、それにより、信頼性を高める。一方で、VMMには、計算機資源を複数のゲストで共有させる共有方式も存在する。共有方式では、計算機資源の空き時間を活用するなど、計算機資源を柔軟に割当て可能であり、利便性が向上するメリットがある。
信頼性と利便性はいずれも重要であるため、今後はサーバとOSの間で、占有方式のVMM(ホストVMM)と共有方式のVMM(ゲストVMM)を重ねて稼動させて、信頼性と利便性のバランスを取る方法が定着していくと考えられる。本形態を「2レベル仮想計算機システム」(又はマルチレイヤ仮想計算機システム)と呼ぶことができる。しかしながら、x86プロセッサは、1レベル仮想計算機システム(ホストVMMは存在するがゲストVMMは存在しないシステム)にのみ対応している。以下、x86プロセッサで実装されている機能の概要について述べる。
x86プロセッサは、ゲストの動作を開始する機能と、ゲストの動作を監視して特定のイベントが発生した場合にゲストの動作を中断してVMMを呼ぶアシスト機能とを有する。アシスト機能は、例えば、Intel社のプロセッサではVT(Virtualization Technology)と呼ばれ、AMD社のプロセッサではSVM(Secure Virtual Machine)と呼ばれる。また、ゲスト動作の開始は、「VMENTRY」と呼ばれ、ゲスト動作の中断は、「VMEXIT」と呼ばれる。
アシスト機能は、ゲスト動作の中断又は再開時に、ゲスト動作中のプロセッサの状態をメモリに退避又は回復する。VMMは、アシスト機能を利用し、ゲストが他ゲストに影響する動作(例えば電源OFF)を行う場合に、サーバの電源をOFFする代わりにそのゲストの実行を停止させる等のエミュレーション(代替処理)を行う。エミュレーションに際して、VMMは、メモリ中のゲスト状態を変更する。
VMMを呼ぶ条件は、VMMのポリシーによって異なる。例えば、共有方式では、ゲストがI/Oを操作すると他のゲストに影響するため、アクセスを制限する必要がある。しかし、占有方式であれば、ゲストがI/Oを操作しても構わない。そこで、x86プロセッサによれば、VMMのポリシーの違いに対応して、VMM呼び出し条件を、細かく設定することができる。また、ゲスト状態の退避及び回復に使用する領域を、指定することができる。VMM呼び出し条件、及びゲスト状態の退避及び回復に使用する領域は、Intel社のプロセッサでは、VMCS(Virtual Machine Control Structure)と呼ばれるデータ構造に含まれ、プロセッサ内のVMCSポインタから参照される。同様に、AMD社のプロセッサでは、VMCB(Virtual Machine Control Block)と呼ばれるデータ構造に含まれ、プロセッサ内のVMCBポインタから参照される。
x86プロセッサは、1レベル仮想計算機システムにのみ対応しているため、2レベル仮想計算機システムを構築するためには、ホストVMMがアシスト機能をエミュレーションしてゲストVMMを動作させる(特許文献1)。ホストVMMは、動作主体(ゲストVMM及びゲストOS)に対応した2種類のVMCS(AMD社のプロセッサならばVMCBが該当:以下同様)を作成又は管理する。また、ホストVMMは、ゲストVMMが作成したVMCSも必要に応じて参照又は更新する。以下では、ホストVMMに作成又は管理されゲストVMMに対応したVMCSを、「ゲストVMM用ホストVMCS」と呼び、ホストVMMに作成又は管理されゲストOSに対応したVMCSを、「ゲストOS用ホストVMCS」と呼び、ゲストVMMにより作成されたVMCSを「ゲストVMCS」と呼ぶ。
特開2009-3749号公報
仮想計算機システムでは、一般に、プロセッサの性能情報として、VMMの実行時間と各ゲストの実行時間が採取される。2レベル仮想計算機システムでは、ホストVMMとゲストVMMが、それぞれ、プロセッサの実行時間(性能情報)を採取する。
しかし、これらのVMMは、2レベル仮想計算機システムを考慮してプロセッサの実行時間の採取を行っていない。具体的には、ホストVMMは、2段目VMについて実行時間を採取することはできない。一方、ゲストVMMは、2段目VMの実行時間を採取することはできるが、その実行時間は、1段目VMにおける仮想プロセッサ(仮想計算機システムでのプロセッサ(物理プロセッサ)に基づく仮想資源)の性能である。物理プロセッサに対する仮想プロセッサの割合と、2段目VMMについてゲストVMMにより採取された実行時間とから、2段目VMMについての物理プロセッサ性能を推測することはできるが、推測された性能は正確ではない。
以上のように、2レベル仮想計算機システムでは、2段目VMについての物理プロセッサ性能(言い換えれば、2段目VMの物理プロセッサに対する影響)を正確に把握するための情報を取得することはできない。この種の問題は、x86プロセッサ以外のプロセッサが物理プロセッサとして使用される場合にもあり得る。
1段目VMと1段目VM上に生成される2段目VMとを実行する仮想計算機システムにおいて、プロセッサが、2段目VMの仮想的な実行開始が原因で物理的に実行開始を指示するのか否かの第1の判断と、2段目VMの仮想的な終了が原因で物理的な終了が検出されたか否かの第2の判断とを行い、第1及び第2の判断の結果を基に、2段目VMの実行時間を算出する。
2段目VMについて把握される物理プロセッサ性能の正確性を向上することができる。
実施例1に係る計算機システムのブロック図である。 実施例1に係る性能管理テーブル180の一例を示す。 実施例1に係る性能管理テーブル160の比較例を示す。 実施例1に係る、ホストVMM、ゲストVMM及び2段目VMの実行の一例、を示すタイムチャートである。 実施例1に係る物理VMENTRY処理のフローチャートである。 実施例1に係る物理VMEXIT処理のフローチャートである。 実施例1に係る性能管理テーブル160の一例を示す。 実施例1に係る性能管理テーブル80の一例を示す。 実施例2に係る物理VMENTRY処理のフローチャートである。 実施例2に係る物理VMEXIT処理のフローチャートである。 実施例2に係る性能管理テーブル160´の一例を示す。
以下、幾つかの実施例を説明する。
以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶デバイス(例えばメモリ)及び/又は通信インタフェースデバイス(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有するシステムが行う処理としてもよい。また、プロセッサは、CPUそれ自体であってもよいし、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであってもよい。プログラム配布サーバは、管理用計算機であってもよい。
図1は、実施例1に係る計算機システムのブロック図である。
計算機システムは、物理計算機10と、管理計算機70とを有する。
物理計算機10は、2レベル仮想計算機システムの一例である。物理計算機10は、仮想化支援機能を備えて演算処理を実行する物理プロセッサ20と、データやプログラムを格納するメモリ30と、物理計算機10の外部の装置とデータの送受信を行うためのI/O(Input/Output)デバイス40とを有する。物理プロセッサは、メモリ30及びI/Oデバイス40に接続されている。I/Oデバイス40は、例えば、ネットワークインターフェースやホストバスアダプタ等で構成される。また、物理プロセッサ20は、複数のプロセッサで構成してもよいし、複数の演算コアを備えたプロセッサで構成してもよい。また、「仮想化支援機能」は、ゲストの動作を開始する機能と、ゲストの動作を監視して特定のイベントが発生した場合にゲストの動作を中断してVMM(Virtual Machine Monitor)を呼ぶアシスト機能とを含んでよい。
物理計算機10では、ホストVMM50が実行される。ホストVMM50は、複数の1段目VM(Virtual Machine)100、110)を稼動させるため、物理計算機10の物理資源を仮想化した仮想資源に変換し、各1段目VMへ仮想資源を割り当てる。ホストVMM50は、仮想化機構の一例であり、例えばハイパバイザである。ホストVMM50は、メモリ30に読み込まれて物理プロセッサ20で実行されるプログラムでよいが、ホストVMM50の機能の一部又は全部がハードウェア回路で実現されてよい。なお、物理計算機10の物理資源(例えば、物理プロセッサ20、物理メモリ30及び物理I/Oデバイス40)に基づく仮想資源(例えば、仮想プロセッサ、仮想メモリ及び仮想I/Oデバイス)を各1段目VMに割り当てる技術は既知であるため、ここでは詳述しない。また、1段目VMの数は、図示の例では2であるが、1でも3以上でもよい。
1段目VMでは、ゲストOSあるいはゲストVMMが稼動する。ゲストOSが稼動する例として、1段目VM110上でゲストOS111が稼動し、ゲストOS111上で、ゲストAPP112及び113が実行される。ゲストAPPは、それぞれ、ゲストOS上で実行されるアプリケーションプログラムである。ゲストVMMが稼動する例として、1段目VM100上でゲストVMM101が稼動し、ゲストVMM101上で、複数の2段目VM120及びVM130が実行される。2段目VM120(130)上では、ゲストOS121(131)が稼働し、ゲストOS121(131)上で、ゲストAPP122及び123(132及び133)が実行される。1段目VMにおいて、ゲストOSの数とゲストVMMの数は、それぞれ2以上でもよい。また、2段目VMにおいて、ゲストOSの数は、2以上でもよい。また、2段目VMにおいて、ゲストAPPの数は、1でも3以上でもよい。
ホストVMM50は、1段目VM100及び110と、1段目VM110及び110のそれぞれに対応するホストVMCS(Virtual Machine Control Structure)150及び151とを作成及び管理することにより、1段目VM100及び110を動作させる。1段目VM100はゲストVMM101を稼動しているため、対応するホストVMCS150は、ゲストVMM用ホストVMCSである。一方、1段目VM110はゲストOS111を稼動しているため、対応するホストVMCS151は、ゲストOS用ホストVMCSである。また、VMCSは、Intel社のプロセッサに関してのデータ構造であり、AMD社のプロセッサであれば、VMCSはVMCB(Virtual Machine Control Block)と呼ばれるデータ構造に相当するが、VMCS及びVMCBのような情報は、VMの制御情報の一例である。
同様に、ゲストVMM101は、2段目VM120及び130と、2段目VM120及び130にそれぞれに対応したゲストVMCS170及び171を作成及び管理することで、2段目VM120及び130を動作させる。ゲストVMM101は、例えば、仮想的なハイパバイザである。
ホストVMM50は、物理プロセッサ20について、ホストVMM50の実行時間(性能情報)と各1段目VMの実行時間を採取して、採取されたそれぞれの実行時間を性能管理テーブル160に記録する。性能管理テーブル160は、ホストVMM50により採取された実行時間が記録されるテーブルである。性能管理テーブル160は、物理プロセッサ20毎に存在してよい。
同様に、ゲストVMM101は、仮想プロセッサについて、ゲストVMM101の実行時間と各2段目VMの実行時間を採取して、採取されたそれぞれの実行時間を性能管理テーブル180に記録する。性能管理テーブル180は、ゲストVMM101により採取された実行時間が記録されるテーブルである。性能管理テーブル180は、仮想プロセッサ毎に存在してよい。仮想プロセッサは、仮想資源に含まれる資源の1つであり、物理プロセッサ20に基づく資源である。
物理プロセッサ20、例えばホストVMM50(及びゲストVMM101)が、管理計算機70からのリクエストに応答して、テーブル160(及び180)が有する情報を管理計算機70に出力してよい。
物理計算機10は、I/Oデバイス40によりネットワーク(例えばインターネット)60を経由して管理計算機70と接続している。管理計算機70は、I/Oデバイス40と通信するためのインタフェースデバイスであるI/Oデバイスと、メモリと、それらに接続されたプロセッサとを有した計算機でよい。管理計算機70のプロセッサが、ホストVMM50(及びゲストVMM101)から、性能管理テーブル160(及び180)が有する情報を周期的に取得して、取得した情報を基に性能管理テーブル80を更新する。性能管理テーブル80は、例えば、管理計算機70のメモリに記憶される。管理計算機70は、性能管理テーブル80に基づく情報を表示してよい。具体的には、例えば、管理計算機70は、表示デバイスを有していてよく、その表示デバイスに、性能管理テーブル80に基づく情報を表示してよいし、或いは、表示デバイスを有する遠隔の計算機である表示用計算機に、性能管理テーブル80に基づく情報を表示用の情報として送信してもよい。
図2は、性能管理テーブル180の一例を示す。
性能管理テーブル180は、ゲストVMM101と、ゲストVMM101により実行される2段目VM120及び2段目VM130とのそれぞれのプログラムについて、最終実行開始時刻201と、最終実行終了時刻202と、累計実行時間203とを有する。最終実行開始時刻201は、プログラムの最近の実行開始時刻を表す。最終実行終了時刻202は、プログラムの最近の実行終了時刻を表す。累計実行時間203は、プログラムの実行時間の累積値を表す。プログラムの最近の実行時間は、プログラムの最終実行終了時刻202と最終実行開始時刻201との差分である。
ゲストVMM101は、最初に全ての行の累計実行時間203を初期値で初期化する。ゲストVMM101は、ゲストVMM101、2段目VM120又は2段目VM130の実行を開始する時に、実行対象のプログラムに対応した最終実行開始時刻201を、その実行開始時の時刻に更新する。また、ゲストVMM101は、ゲストVMM101、2段目VM120又は2段目VM130の実行を終了する時に、最終実行終了時刻202を、その実行終了時の時刻に更新する。そして、ゲストVMM101は、最終実行終了時刻202と最終実行開始時刻201の差分を、実行終了対象のプログラムに対応した累計実行時間203に加算する。
図3は、性能管理テーブル160の比較例を示す。
図3に示すテーブルは、ホストVMMが管理する従来型のテーブル(以下、従来テーブル)である。従来テーブルは、最終実行開始時刻と、最終実行終了時刻と、累計実行時間とを、ホストVMMと、そのホストVMMにより実行される1段目VMとのそれぞれのプログラムについて有する(最終実行開始時刻、最終実行終了時刻及び累計実行時間の意味は、実質的に、前述した情報201〜203とそれぞれ同様である)。
しかし、従来テーブルによれば、ホストVMMは、2段目VMについて、最終実行開始時刻、最終実行終了時刻及び累計実行時間を管理しない。このため、従来テーブルからは、2段目VMについての物理プロセッサ性能は全くわからない。
また、従来テーブルと図2に示した性能管理テーブル180との両方を使用したとしても、2段目VMMについての物理プロセッサ性能を推測することはできても、2段目VMについての物理プロセッサ性能を正確に把握することはできない。
本実施例では、ホストVMMが、ゲストVMMの終了の契機に基づき2段目VMの実行を開始できるようになっており、また、ホストVMMが、ホストVMMの開始及び終了のそれぞれについて1段目VMと2段目VMのどちらが原因であるかを判断し、その判断結果を基に、ホストVMMが2段目VMの実行時間を採取することができるようになっている。以下、そのことを詳細に説明する。なお、以下の説明では、ゲスト(ゲストVMMや2段目VMなどホストVMM50上のプログラム)の実行開始コマンドの一例を「VMENTRY」と言い、特に、ホストVMMによるVMENTRYを「物理VMENTRY」と言い、ゲストVMMによるVMENTRYを「仮想VMENTRY」と言う。また、ゲストが終了することの一例を「VMEXIT」と言い、特に、ゲストの種類に関わらずホストVMMの開始の契機となるVMEXITを「物理VMEXIT」と言い、2段目VMの終了を「仮想VMEXIT」と言う。
図4は、ホストVMM、ゲストVMM、2段目VMの実行の一例を示すタイムチャートである。
時刻T1では、ホストVMM50は、物理VMENTRYにより、ゲストVMM101の実行を開始する。
時刻T2では、ゲストVMM101が2段目VM(例えば120)を実行するために仮想VMENTRYを行い、その仮想VMENTRYを契機として、物理VMEXITが発生する。それにより、ゲストVMM101の実行が終了し、ホストVMM50の実行が開始する。
時刻T3では、ホストVMM50は、仮想VMENTRYを処理するために、物理VMENTRYにより、2段目VMの実行を開始する。ここで開始される2段目VMは、仮想VMENTRYで実行開始された2段目VM(例えば120)である。具体的には、ゲストVMM101は、ゲストVMCSを記憶領域(例えばワーク領域)にコピーしそのコピーされたゲストVMCSを使用して仮想VMENTRYを行うようになっている。そして、ゲストVMCSのコピー先の記憶領域を、ホストVMM50も参照可能である。ホストVMM50は、仮想VENTRYを処理する場合、その記憶領域にあるゲストVMCSを使用した物理VENTRYを行う。その結果として、そのゲストVMCS(例えば170)に対応した2段目VM(例えば120)の実行が開始される。ホストVMM50は、どのゲストVMCSがどの2段目VMに対応しているか等を把握していないので、ホストVMM50にとっては、時刻T3での物理VMENTRYの実行対象がどの2段目VMかはわからない。以下、その物理VMENTRYで実行される2段目VMは2段目VM120であるとする。
時刻T4では、2段目VM120の実行を中断する要因である仮想VMEXITを契機として物理VMEXITが発生し、それにより、2段目VM120の実行が終了し、ホストVMM50の実行が開始する。具体的には、ゲストVMCS170に、2段目VM120が仮想VMEXITとなる要因(例えば、割り込みの発生)が定義されており、その要因が検出された場合に、物理プロセッサ20により2段目VM120の仮想VMEXITとなる。
時刻T5では、ホストVMM50は、仮想VMEXITに対応した処理をゲストVMM101にさせるために、物理VMENTRYによりゲストVMM101の実行を開始する。
時刻T3と時刻T2の差分と、時刻T5と時刻T4の差分が、それぞれ、ホストVMM50の実行時間である。時刻T2と時刻T1の差分が、ゲストVMM101の実行時間である。時刻T4と時刻T3の差分が、2段目VM120の実行時間であり、ホストVMM50により採取される実行時間である。ゲストVMM101により採取される、2段目VM120の実行時間は、時刻T5と時刻T2の差分である。
図5は、物理VENTRY処理(1段目VM100と2段目VM120又は130を実行するための物理VMENTRY実行でのテーブル160の更新処理)のフローチャート、図6は、物理VMEXIT処理(物理VMEXIT契機でのテーブル160の更新処理)のフローチャート、図7は、性能管理テーブル160の一例を示す。以下、ホストVMM50、ゲストVMM101、ゲストVMM101上で動作する2段目VM(2段目VM120および2段目VM130)の実行の例として説明する。
まず、図7を参照し、性能管理テーブル160を説明する。
性能管理テーブル160は、最終実行開始時刻401と、最終実行終了時刻402と、累計実行時間403とを、ホストVMM及び1段目VMの他に、ゲストVMM及び2段目VMについても有する(最終実行開始時刻401、最終実行終了時刻402及び累計実行時間403の意味は、実質的に、前述した情報201〜203とそれぞれ同様である)。なお、前述したように、ホストVMM50は、どの2段目VMが物理VMENTRY及び物理VMEXITの対象かはわからないので、2段目VMについては、2段目VMの数に関わらず行が共通している。ホストVMM50は、最初に全ての行の累計実行時間403を初期値で初期化する。
次に図5を参照し、物理VENTRY処理を説明する。
ステップS1100では、ホストVMM50は、物理VMENTRY実行の直前に現在時刻(タイマから取得される時刻)を取得する。ステップS1101では、ホストVMM50は、ホストVMM50の最終実行終了時刻402を、ステップS1100で取得した時刻に更新する。ステップS1102では、ホストVMM50は、ホストVMM50の最終実行終了時刻402とホストVMM50の最終実行開始時刻401の差分をホストVMM50の累計実行時間403に加算する。ステップS1103では、ホストVMM50は、物理VMENTRYの実行契機が仮想VMENTRYであるかどうかを判断することにより、2段目VMの実行(仮想VMENTRYである)かゲストVMMを含む1段目VMの実行かを判断する。
ステップS1103で1段目VMと判断した場合、ステップS1104で、ホストVMM50は、対象1段目VMの最終実行開始時刻401(今回の例では、ゲストVMM101の最終実行開始時刻401)を、ステップS1100で取得した時刻に更新する。
ステップS1103で1段目VMでないと判断した場合、ステップS1106で、ホストVMM50は、対象1段目VM(今回の例では、ゲストVMM101)上で動作する2段目VM(今回の例では、2段目VM120および2段目VM130)に対応した最終実行開始時刻401を、ステップS1100で取得した時刻に更新する。
ホストVMM50は、ステップS1105で(ステップS1104またはステップS1106を実行後に)、物理VMENTRYを実行する。
次に図6を参照し、物理VMEXIT処理を説明する。
ステップS1200で、ホストVMM50は、物理VMEXITの検出を契機として処理を開始して、ステップS1201で、現在時刻を取得する。ステップS1202では、ホストVMM50は、ホストVMM50の最終実行開始時刻401を、ステップS1201で取得した時刻に更新する。ステップS1203では、ホストVMM50は、ホストVMM50の前回の物理VMENTRYの実行でステップS1104とステップS1106のどちらを通過したのかにより、1段目VMを実行していたのか、2段目VMを実行していたのかを判断する。
ステップS1203で1段目VMと判断した場合、ホストVMM50は、ステップS1204で、対象1段目VMの最終実行終了時刻402(今回の例では、ゲストVMM101の最終実行終了時刻402)を、ステップS1201で取得した時刻に更新する。そして、ステップS1205で、ホストVMM50は、対象1段目VMの累計実行時間403(今回の例では、ゲストVMM101の累計実行時間403)に、ゲストVMM101の最終実行終了時刻402とゲストVMM101の最終実行開始時刻401の差分を加算する。
ステップS1203で1段目VMでないと判断した場合、ホストVMM50は、ステップS1206で、対象2段目VMの最終実行終了時刻402(今回の例では、2段目VM120および2段目VM130の最終実行終了時刻402)を、ステップS1201で取得した時刻に更新する。そして、ホストVMM50は、ステップS1207で、対象2段目VMの累計実行時間403(今回の例では、2段目VM120および2段目VM130の累計実行時間403)に、2段目VM120および2段目VM130の最終実行終了時刻402と2段目VM120および2段目VM130の最終実行開始時刻401の差分を加算する。
上記図5および図6のフローにより、ホストVMM50の累計実行時間403、ゲストVMM101の累計実行時間403、2段目VM120および2段目VM130の累計実行時間403、1段目VM110の累計実行時間403がそれぞれ算出及び更新される。
図8は、管理計算機70が有する性能管理テーブル80の一例を示す。
性能管理テーブル80は、ホストVMM、1段目VM、ゲストVMM及び2段目VMの各々のプログラムについて、前回取得累計実行時間501、今回取得累計実行時間502及び実行時間/取得周期時間503を有する。今回取得累計実行時間502は、管理計算機70が、ホストVMM50が有する性能管理テーブル160から、今回取得した累計実行時間403の時間であり、前回取得累計実行時間501は、管理計算機70が、ホストVMM50が有する性能管理テーブル160から、前回取得した累計実行時間403の時間である。実行時間/取得周期時間503は、今回取得累計実行時間502と前回取得累計実行時間501との差分を取得周期時間(例えばポーリング間隔)で割った値である。
管理計算機70は、最初に全ての行の今回取得累計実行時間502を初期値で初期化する。管理計算機70は、周期的に、ホストVMM50が有する性能管理テーブル160から、各プログラム(ホストVMM、1段目VM、ゲストVMM及び2段目VMの各々)について、累計実行時間403を取得し、前回取得累計実行時間501を今回取得累計実行時間502(前回取得した累計実行時間403の時間)に更新する。そして、今回取得累計実行時間502を今回取得した累計実行時間403に更新し、時間501と502の差分を取得周期時間で割ることにより得られた値を実行時間/取得周期時間503として登録する。図8の例では、取得周期時間を1秒としている。実行時間/取得周期時間503により、ホストVMM50と各VM(ゲストVMM101、2段目VM(2段目VM120および2段目VM130)、1段目VM110)のプロセッサ使用率が分かる。実行時間/取得周期時間503は、ホストVMM50(またはゲストVMM101)で算出されてもよく、その場合、性能管理テーブル160(または性能管理テーブル180)に実行時間/取得周期時間503が格納されてよい。また、実行時間/取得周期時間503が算出された後、前回取得累計実行時間501が今回取得累計実行時間502の値に更新されてよい。
管理計算機70は、少なくとも2段目VM(2段目VM120および2段目VM130)について、取得時刻毎にプロセッサ使用率(実行時間/取得周期時間503)を保持し、取得時刻と実行時間/取得周期時間503との関係(例えばその関係を表すグラフ)を表示したり、プロセッサ使用率の変化に基づく制御コマンドを物理計算機10(例えばホストVMM50)に送信したりしてよい。ユーザは、少なくとも2段目VM(2段目VM120および2段目VM130)について、取得時刻とプロセッサ使用率(実行時間/取得周期時間503)との関係を見て、管理計算機70を通じて物理計算機10を制御してよい。例えば、或る時間帯に複数のプログラムのプロセッサ使用率の上昇が集中しているようであれば(物理プロセッサ20全体としてのプロセッサ使用率が所定値を超えていれば)、2段目VMの実行開始、或いは1段目VMの実行開始をずらす等の制御をとることができる。どのような制御をするかは、ユーザの判断を基に行われてもよいし、管理計算機70又は物理計算機10の判断を基に行われてもよい。
以上が、実施例1の説明である。なお、実施例1において、管理計算機70又はホストVMMは、2段目VM(2段目VM120および2段目VM130)についての値(例えば値503又は403)を、性能管理テーブル180における2段目VM毎の値203を基に、2段目VM毎の値に分けてもよい。例えば、2段目VM120の累計実行時間203が「100」(例えば秒)であり、2段目VM130の累計実行時間203が「200」であるとする。2段目VM(2段目VM120および2段目VM130)の実行時間/取得周期時間503が「0.3」の場合、管理計算機70は、「0.3」と、2段目VMの累計実行時間203の合計に対する2段目VM120の累計実行時間203の割合「1/3(=100/(100+200))」とを乗じることで、2段目VM120の実行時間/取得周期時間503を「0.1」と算出することができる。同様に、例えば、2段目VM(2段目VM120および2段目VM130)の累計実行時間403が「120」(例えば秒)の場合、ホストVMM50は、「120」と、上記割合「1/3」とを乗じることで、2段目VM120の累計実行時間403を「40」と算出することができる。
本実施例では、性能管理テーブル160に代えて、後に説明する性能管理テーブル160´(図11参照)が使用される。つまり、2段目VM毎に行(レコード)が設けられている。本実施例では、ホストVMM50は、2段目VM毎に累計実行時間403を算出することができる。以下、図面に基づいて実施例1との違いを主に説明し、実施例1との共通点については説明を省略又は簡略する。
本実施例は、ホストVMM50とゲストVMM101が互いに連携することにより、ホストVMM50が2段目VMを一意に識別する。具体的には、ゲストVMM101が、2段目VM(2段目VM120又は130)の仮想VMENTRY実行時に、実行対象の2段目VMに対応するゲストVMCSを明示的に分けることで、ホストVMM50は、2段目VM120と2段目VM130を識別可能となる。ゲストVMM101が、ゲストVMCSを明示的に分ける方法として、2段目VM毎に固定的にゲストVMCSアドレス(ゲストVMCSの記憶領域のアドレス)を用意しておく第1方法と、各ゲストVMCS内に各2段目VMの識別子を登録しておく第2方法の2つが考えられる。第1方法であれば、例えば、第1のアドレスに属する記憶領域には、2段目VM120に対応したゲストVMCS170がコピーされるようになっており、第2のアドレスに属する記憶領域には、2段目VM130に対応したゲストVMCS171がコピーされるようになっている。従って、ホストVMM50は、ゲストVMCSがコピーされている記憶領域を特定し、特定された記憶領域内のゲストVMCSを使用して物理VMENTRYを実行できる。第2方法であれば、ホストVMM50は、記憶領域にコピーされたゲストVMCSを参照し、そのゲストVMCSに記録されている識別子を使用して物理VMENTRYを実行することができる。
図9は、実施例2に係る物理VMENTRY処理のフローチャートであり、図10は、実施例2に係る物理VMEXIT処理のフローチャートであり、図11は、性能管理テーブル160´の一例を示す。
図5と図9の違いは、図5のステップS1106が、図9ではステップS1110とステップS1111に変わっていることである。ステップS1110では、ホストVMM50は、ゲストVMCSから2段目VM120の物理VMENTRY実行なのか2段目VM130の物理VMENTRY実行かを判断し、判断された2段目VMの識別子(今回の例では、2段目VM120を示す識別子)をメモリ30に記録しておく。ステップS1111では、ホストVMM50は、ステップS1110で記録した識別子から識別される2段目VM(今回の例では、2段目VM120)に対応した最終実行開始時刻401を、ステップS1100で取得した時刻に更新する。
図6と図10の違いは、図6のステップS1206とステップS1207が、図10ではステップS1210からステップS1212に変わっていることである。ステップS1210では、ホストVMM50は、図9のステップS1110で記録した2段目VMの識別子(今回の例では、2段目VM120を示す識別子)を取得する。ステップS1211では、ホストVMM50は、ステップS1210で取得した識別子から識別される2段目VM120に対応した最終実行終了時刻402を、ステップ1201で取得した時刻に更新する。そして、ホストVMM50は、ステップS1212で、ステップS1210で取得した識別子から識別される2段目VM120について、2段目VM120の累計実行時間403に2段目VM120の最終実行終了時刻402と2段目VM120の最終実行開始時刻401の差分を加算する。
図9と図10のフローにより、図11に示すように、各2段目VMに対応した累計実行時間603が求まる。本実施例によれば、2段目VM毎に物理プロセッサ性能を正確に把握することが期待できる。
以上、幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、管理計算機70は、非周期的に、テーブル160(及び180)が有する情報を取得してよい。また、管理計算機70の機能は、物理計算機10(例えば物理プロセッサ20)がもっていてもよく、管理計算機70は必ずしも存在しないでよい。また、物理プロセッサ20(例えばホストVMM50)が、物理メモリ30に、複数の時点(時刻)とテーブル160(160´)の各行の累計実行時間403との関係を格納してよい。また、物理プロセッサ20(例えばホストVMM50)が、少なくとも2段目VM(120及び130、又は、120と130の各々)について、複数の時点と累計実行時間403との関係、又は、複数の時点とプロセッサ使用率(実行時間/取得周期時間503)との関係を出力(例えば、表示、或いは管理計算機70に送信)してもよい。
10:物理計算機、20:プロセッサ、30:メモリ、40:I/Oデバイス、50:ホストVMM、60:ネットワーク、70:管理計算機、80:性能管理テーブル、100:1段目VM、101:ゲストVMM、110:1段目VM、111:ゲストOS、120:2段目VM、121:ゲストOS、122:ゲストAPP、123:ゲストAPP、130:2段目VM、131:ゲストOS、132:ゲストAPP、133:ゲストAPP、150:ホストVMCS、151:ホストVMCS、160:性能管理テーブル、170:ゲストVMCS、171:ゲストVMCS、180:性能管理テーブル

Claims (10)

  1. メモリと
    前記メモリに接続され、1段目VM(Virtual Machine)と前記1段目VM上に生成される2段目VMとを実行するプロセッサと
    を有し、
    前記プロセッサが、前記2段目VMの仮想的な実行開始が原因で物理的に実行開始を指示するのか否かの第1の判断と、前記2段目VMの仮想的な終了が原因で物理的な終了が検出されたか否かの第2の判断とを行い、前記第1及び第2の判断の結果を基に、前記2段目VMの実行時間を算出し、算出された実行時間に基づく情報を前記メモリに格納する、
    仮想計算機システム。
  2. 前記プロセッサが、前記第1の判断の結果が真であれば、前記2段目VMの実行開始時刻を前記メモリに格納し、
    前記プロセッサが、物理的な終了を検出した場合に、前記第2の判断を行い、前記第2の判断の結果が真であれば、前記2段目VMの実行終了時刻を前記メモリに格納し、
    前記プロセッサが、前記実行開始時刻と前記実行終了時刻との差分を前記2段目VMの実行時間として算出する、
    請求項1記載の仮想計算機システム。
  3. 前記プロセッサにより前記1段目VM上で実行されるVMM(Virtual Machine Monitor)であって、前記2段目VMを仮想的に実行開始するゲストVMMと、
    前記プロセッサにより実行されるVMMであって、前記2段目VMの仮想的な実行開始が原因で前記第2段目VMを物理的に実行開始し、前記2段目VMの仮想的な実行開始が原因とは別の原因で前記1段目VMにおける前記ゲストVMMを実行開始するホストVMMと
    を有し、
    前記ホストVMMが、前記第1及び第2の判断を行い、前記2段目VMについて実行開始時刻及び実行終了時刻を前記メモリに格納する、
    請求項2記載の仮想計算機システム。
  4. 前記1段目VM上で複数の2段目VMが実行され、
    前記ホストVMMが、前記第1の判断の結果が真の場合、前記複数の2段目VMのうち仮想的に実行開始された2段目VMである対象2段目VMを識別し、前記対象2段目VMの識別子を前記メモリに格納し、且つ、前記対象2段目VMの実行開始時刻を前記メモリに格納し、
    前記ホストVMMが、前記第2の判断の結果が真の場合、前記メモリに格納されている識別子から前記対象2段目VMを識別し、前記対象2段目VMについて実行終了時刻を前記メモリに格納する、
    請求項3記載の仮想計算機システム。
  5. 前記ゲストVMMが、前記2段目VMに対応した制御情報であるゲストVM制御情報を、前記ホストVMMが参照可能であり前記メモリにおける記憶領域にコピーし、前記記憶領域にコピーされたゲストVM制御情報を使用して、前記2段目VMを仮想的に実行開始するようになっており、
    前記ホストVMMが、前記記憶領域にコピーされたゲストVM制御情報を使用して前記2段目VMを物理的に実行開始する、
    請求項3記載の仮想計算機システム。
  6. 前記プロセッサは、前記2段目VMの実行時間の算出の都度に、前記メモリに、前記2段目VMの実行時間の累積値を更新し、
    前記プロセッサは、前記2段目VMの実行時間の累積値を複数の時点の各々で出力する、又は、複数の時点と前記2段目VMの実行時間の累積値又はそれに基づく情報との関係を出力する、
    請求項1記載の仮想計算機システム。
  7. 前記メモリ及び前記プロセッサを有する物理計算機と、
    前記物理計算機に接続された管理計算機と
    を有し、
    前記プロセッサによる出力の先が、前記管理計算機である、
    請求項6記載の仮想計算機システム。
  8. 1段目VM(Virtual Machine)と前記1段目VM上に生成される2段目VMとを実行する仮想計算機システムでのプロセッサ性能測定方法であって、
    前記2段目VMの仮想的な実行開始が原因で物理的に実行開始を指示するのか否かの第1の判断と、前記2段目VMの仮想的な終了が原因で物理的な終了が検出されたか否かの第2の判断とを行い、
    前記第1及び第2の判断の結果を基に、前記2段目VMの実行時間を算出する、
    プロセッサ性能測定方法。
  9. 前記第1の判断の結果が真であれば、前記2段目VMの実行開始時刻をメモリに格納し、
    物理的な終了を検出した場合に、前記第2の判断を行い、前記第2の判断の結果が真であれば、前記2段目VMの実行終了時刻を前記メモリに格納し、
    前記実行開始時刻と前記実行終了時刻との差分を前記2段目VMの実行時間として算出する、
    請求項8記載のプロセッサ性能測定方法。
  10. 前記1段目VM上で実行されるVMM(Virtual Machine Monitor)であるゲストVMMが、前記2段目VMを仮想的に実行開始し、
    前記2段目VMの仮想的な実行開始が原因とは別の原因で前記1段目VMにおける前記ゲストVMMを実行開始するホストVMMが、前記第1の判断を行い、前記2段目VMの仮想的な実行開始が原因で前記第2段目VMを物理的に実行開始し、
    前記ホストVMMが、前記第2の判断を行う、
    請求項8記載のプロセッサ性能測定方法。

JP2013128253A 2013-06-19 2013-06-19 仮想計算機システム及びプロセッサ性能測定方法 Expired - Fee Related JP5905412B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013128253A JP5905412B2 (ja) 2013-06-19 2013-06-19 仮想計算機システム及びプロセッサ性能測定方法
US14/244,732 US9400730B2 (en) 2013-06-19 2014-04-03 Virtual machine system and method of measuring processor performance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013128253A JP5905412B2 (ja) 2013-06-19 2013-06-19 仮想計算機システム及びプロセッサ性能測定方法

Publications (2)

Publication Number Publication Date
JP2015005015A true JP2015005015A (ja) 2015-01-08
JP5905412B2 JP5905412B2 (ja) 2016-04-20

Family

ID=52112102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013128253A Expired - Fee Related JP5905412B2 (ja) 2013-06-19 2013-06-19 仮想計算機システム及びプロセッサ性能測定方法

Country Status (2)

Country Link
US (1) US9400730B2 (ja)
JP (1) JP5905412B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9766917B2 (en) * 2014-10-29 2017-09-19 Red Hat Israel, Ltd. Limited virtual device polling based on virtual CPU pre-emption
US10223179B2 (en) * 2016-05-17 2019-03-05 International Business Machines Corporation Timeout processing for messages

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152458A (ja) * 2008-12-24 2010-07-08 Fujitsu Ltd 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
JP4864817B2 (ja) 2007-06-22 2012-02-01 株式会社日立製作所 仮想化プログラム及び仮想計算機システム
US8181175B1 (en) * 2008-01-28 2012-05-15 Hewlett-Packard Development Company, L.P. Accounting for resource usage time by a virtual machine
US8392916B2 (en) * 2008-12-31 2013-03-05 International Business Machines Corporation Multiple layers of virtualization in a computing system
EP2828742A4 (en) * 2012-03-22 2016-05-18 Tier 3 Inc SUPPLY IN FLEXIBLE MEMORY

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152458A (ja) * 2008-12-24 2010-07-08 Fujitsu Ltd 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。

Also Published As

Publication number Publication date
JP5905412B2 (ja) 2016-04-20
US20140380309A1 (en) 2014-12-25
US9400730B2 (en) 2016-07-26

Similar Documents

Publication Publication Date Title
EP3036625B1 (en) Virtual hadoop manager
US11088961B2 (en) Monitoring data streams and scaling computing resources based on the data streams
US9886300B2 (en) Information processing system, managing device, and computer readable medium
JP4871174B2 (ja) 仮想計算機システム
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US8191062B2 (en) System for processor frequency governors to govern a processor frequency by deriving CPU utilization information based on the state of virtual machine monitor
US10140141B2 (en) Measuring accumulated load values of first level and second level virtual machines for modifying resource allocation
US9858101B2 (en) Virtual machine input/output thread management
JP6072084B2 (ja) 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法
US9639393B2 (en) Virtual processor state management based on time values
US20120266163A1 (en) Virtual Machine Migration
US11675611B2 (en) Software service intervention in a computing system
TW201347459A (zh) 管理方法及其系統
US9529656B2 (en) Computer recovery method, computer system, and storage medium
US8499112B2 (en) Storage control apparatus
US10310890B2 (en) Control method for virtual machine system, and virtual machine system
JP5905412B2 (ja) 仮想計算機システム及びプロセッサ性能測定方法
JP2014002798A (ja) 計算機システム及びプログラム
US20210357249A1 (en) Providing physical host hardware state information to virtual machines deployed on the physical host
KR20180062403A (ko) 가상머신의 마이그레이션을 수행하기 위한 방법 및 장치
Lim et al. Performance Implications from Sizing a VM on Multi-core Systems: A Data Analytic Application's View
US20220206829A1 (en) Virtualization platform control device, virtualization platform control method, and virtualization platform control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160316

R150 Certificate of patent or registration of utility model

Ref document number: 5905412

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees