JP6079317B2 - 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム - Google Patents

仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム Download PDF

Info

Publication number
JP6079317B2
JP6079317B2 JP2013043158A JP2013043158A JP6079317B2 JP 6079317 B2 JP6079317 B2 JP 6079317B2 JP 2013043158 A JP2013043158 A JP 2013043158A JP 2013043158 A JP2013043158 A JP 2013043158A JP 6079317 B2 JP6079317 B2 JP 6079317B2
Authority
JP
Japan
Prior art keywords
information
virtual machines
virtual
symbol map
map information
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
JP2013043158A
Other languages
English (en)
Other versions
JP2014170482A (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 JP2013043158A priority Critical patent/JP6079317B2/ja
Priority to US14/070,766 priority patent/US9524180B2/en
Publication of JP2014170482A publication Critical patent/JP2014170482A/ja
Application granted granted Critical
Publication of JP6079317B2 publication Critical patent/JP6079317B2/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/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/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/45591Monitoring or debugging support

Description

本発明は、仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム
に関する。
近年、サーバ装置を仮想環境化することによって複数の仮想マシン(VM:Virtual Machine)を動作させてユーザにサービスを提供するシステムが開発されている。このようなサービスでは、1つのサーバ装置で1つ以上の仮想マシンを動作させ、仮想マシン毎に独立したOS(Operating System)を走らせてアプリケーション・プログラムを動作させる。
サーバ装置を仮想環境化する方法としては、ハイパーバイザーと呼ばれるソフトウェハを使用して複数の異なるOSを並列に実行させるものがある。この場合、ハイパーバイザーが、仮想マシンの制御を行うと共に、仮想マシンに割り当てたCPU(Central Processing Unit)のリソース量を管理する。
仮想環境下でサーバ装置を運用するときには、複数の仮想マシンからシステムの負荷を算出し、仮想化によるオーバーヘッドを監視する必要がある。オーバーヘッドは、システムやプロトコルの処理の負荷、サーバ装置やネットワーク機器などのハードウェアの処理能力や、OSなどのシステムソフトウェアの性能など、個々の性能によってシステム全体にかかる負荷であり、本来の処理の他にサーバ装置に余分にかかる負荷である。オーバーヘッドが生じると、例えば処理のスループットが低下したり、ユーザの操作に対する応答速度が低下したりする。
そこで、仮想環境を提供するサーバ装置では、オーバーヘッドを監視する仕組みが必要になる。このとき、サーバ装置内での処理の流れを可視化できると、オーバーヘッドの監視が容易になる。
ここで、サーバ装置内での処理の流れを可視化するためには、ハイパーバイザーや各仮想マシンで処理中の命令を特定する必要がある。例えば、1つのOS下で複数のアプリケーション・プログラムを実行するときに、どのアプリケーション・プログラムの処理が実行中なのかを特定する必要がある。この場合に用いられる従来の方法としては、各アプリケーション・プログラムで実行する命令と、命令のアドレスを時系列にまとめたトレース情報を取得するものがある。このとき、トレース情報には、命令を処理中の空間ID(Identification)を付加する。さらに、空間ID毎にプログラム名と先頭アドレスとを有するプログラムマップを作成する。そして、トレース情報とプログラムマップ情報を空間IDによって対応付けて、命令を実行しているプログラム名を特定する。これによって、アプリケーション・プログラム毎の処理と実行時間とを調べることが可能になる。
特開昭63−201840
ここで、仮想計算機システムにおいて複数の仮想マシンの動作に関する分析や解析を行う場合には、それぞれの仮想マシンやハイパーバイザーで処理されるプロセス等の実行時間を採取し、処理時間などを評価する必要がある。しかしながら、仮想マシンにおける処理は、ハイパーバイザーや他の仮想マシンに実行制御権が移されることにより、実際には物理CPU上で動作できない時間が存在する。この場合、仮想マシンで取得される時間が実際の時間よりも遅れ、仮想マシンで処理されるプロセス等の実行時間を正確に採取できない。仮想マシン上のプロセスの実行時間を正確に把握することは、ハイパーバイザーが仮想マシンに仮想割り込み処理を実行し、仮想マシン内のプログラムの情報を採取し、ハイパーバイザーの時間軸で一元的に各仮想マシン上のプロセスの実行時間を採取することで実現可能である。しかしながら、仮想割り込み処理という余計な処理が発生することになるので、実行処理が煩雑になると共に、処理コストが高くなる。
また、ハイパーバイザーは、サーバ装置に提供される環境下で処理を実行するので、ハイパーバイザー内の処理や、仮想マシンに出力した命令を特定することは容易である。ところが、各仮想マシン上で動くアプリケーション・プログラムはユーザ毎に異なる。そして、セキュリティ上の問題から仮想マシンにおける処理の詳細をハイパーバイザー側から特定できない場合がある。このために、従来の仮想計算機システムでは、システム管理者が仮想マシンにおける処理の内容や、処理の流れを把握することは容易ではなかった。
この発明は、このような事情に鑑みてなされたものであり、サーバ装置内での処理の流れを可視化してオーバーヘッドの監視を容易にすることを目的とする。
実施形態の一観点によれば、ハイパーバイザー上で動作する複数の仮想マシンを有する仮想計算機システムであって、前記ハイパーバイザーにおいて、割り込み発生時に動作していた、前記複数の仮想マシンの1つである第1の仮想マシン上のプロセスの、動作状態と、プロセスが前記複数の仮想マシンそれぞれで動作する際に設定されるアドレス領域情報と、を含むトレース情報を、前記第1の仮想マシンに対応するコンテキスト退避領域から採取するトレース情報採取部と、前記複数の仮想マシンそれぞれにおいて、前記複数の仮想マシンそれぞれで動作するプロセスの識別番号と、前記アドレス領域情報と、を含むシンボルマップ情報を前記複数の仮想マシンそれぞれが有する管理領域からそれぞれ採取し、前記ハイパーバイザーに送信する、複数のシンボルマップ情報採取部と、前記ハイパーバイザーにおいて、前記トレース情報と前記シンボルマップ情報をプロセス毎に関連付ける解析処理部と、を含むことを特徴とする仮想計算機システムが提供される。
また、実施形態の別の観点によれば、物理CPU毎に割り込みの設定が可能なハイパーバイザー上で動作する複数の仮想マシンを有する仮想計算機システムにおいて、定期的にCPU割り込みを発生させ、割り込みにより前記ハイパーバイザー上のコンテキスト退避領域に退避された、前記複数の仮想マシンの1つである第1の仮想マシン上のプロセスの、動作状態と、プロセスが前記複数の仮想マシンそれぞれで動作する際に設定されるアドレス領域情報と、を含むトレース情報を採取し、前記複数の仮想マシンそれぞれにおいて、前記複数の仮想マシンそれぞれで動作するプロセスの識別番号と、前記アドレス領域情報と、を含むシンボルマップ情報を前記複数の仮想マシンがそれぞれ有する管理領域から採取し、前記トレース情報と前記シンボルマップ情報をプロセス毎に関連付ける、処理を有することを特徴とする仮想計算機システムの管理方法が提供される。
さらに、実施形態の別の観点によれば、物理CPU毎に割り込みの設定が可能なハイパーバイザー上で動作する複数の仮想マシンを有する仮想計算機システムにおいて、定期的にCPU割り込みを発生させる処理と割り込みにより前記ハイパーバイザー上のコンテキスト退避領域に退避された、前記複数の仮想マシンの1つである第1の仮想マシン上のプロセスの、動作状態と、プロセスが前記複数の仮想マシンそれぞれで動作する際に設定されるアドレス領域情報と、を含むトレース情報を採取する処理と、前記複数の仮想マシンそれぞれにおいて、前記複数の仮想マシンそれぞれで動作するプロセスの識別番号と、前記アドレス領域情報と、を含むシンボルマップ情報を前記複数の仮想マシンがそれぞれ有する管理領域から採取する処理と、前記トレース情報と前記シンボルマップ情報をプロセス毎に関連付ける処理と、をコンピュータに実行させることを特徴とする仮想計算機システムの管理プログラムが提供される。
ハイパーバイザーで取得した情報に基づいて仮想マシン上の処理を関数レベルで解析することが可能になるので、処理の流れを容易に把握できるようになり、メンテナンス性の向上や性能最適化が可能となる。またそれによりさらなるリソース使用の効率化も期待される。
図1は、本発明の実施の形態に係る仮想計算機システムのハードウェア構成の一例を示すブロック図である。 図2Aは、本発明の実施の形態に係る仮想計算機システムのソフトウェア構成の一例を示すブロック図である。 図2Bは、本発明の実施の形態に係る仮想計算機システムの機能ブロック図である。 図3は、本発明の実施の形態に係る仮想計算機システムの仮想制御データ構造体の一例を示す図である。 図4Aは、本発明の実施の形態に係る仮想計算機システムにおけるトレース情報の一例を模式的に示す図である。 図4Bは、本発明の実施の形態に係る仮想計算機システムにおけるトレース情報の具体例を示す図である。 図4Bは、本発明の実施の形態に係る仮想計算機システムにおける処理の一例を模式的に示す図である。 図6Aは、本発明の実施の形態に係る仮想計算機システムにおけるシンボルマップ情報の一例を模式的に示す図である。 図6Bは、本発明の実施の形態に係る仮想計算機システムにおけるシンボルマップ情報の具体例を示す図である。 図7Aは、本発明の実施の形態に係る仮想計算機システムにおける解析データの一例を模式的に示す図である。 図7Bは、本発明の実施の形態に係る仮想計算機システムにおける解析データの作成手順を模式的に示す図である。 図8Aは、本発明の実施の形態に係る仮想計算機システムの処理の一例を示すフローチャートである(その1)。 図8Bは、本発明の実施の形態に係る仮想計算機システムの処理の一例を示すフローチャートである(その2)。 図8Cは、本発明の実施の形態に係る仮想計算機システムの処理の一例を示すフローチャートである(その3)。 図9は、本発明の第2の実施の形態に係る仮想計算機システムの機能ブロック図である。
発明の目的及び利点は、請求の範囲に具体的に記載された構成要素及び組み合わせによって実現され達成される。
前述の一般的な説明及び以下の詳細な説明は、典型例及び説明のためのものであって、本発明を限定するためのものではない。
(第1の実施の形態)
第1の実施の形態について図面を参照して詳細に説明する。
図1に実施形態の仮想計算機システムとして機能するサーバ装置の概略構成を示す。
サーバ装置1は、複数のCPU2と、メモリ3と、記録装置4と、入力装置5と、出力装置6と、外部記録装置7と、通信制御装置8がバス接続されることでハードウェアが構築されている。そして、ハードウェアに含まれるCPU2が、メモリ3上に展開された所定のプログラムを実行することにより、仮想環境を提供するハイパーバイザー(仮想化レイヤ)が実行される。ここで、ハイパーバイザーは、OS上でアプリケーションソフトとして動作し、ゲストOSが動作できるようにする仮想化ソフトウェアであり、仮想化モニタ、又は仮想化OSと呼ばれることもある。
CPU2には、メモリ3に記録装置4からプログラムやデータを読み出して実行することによって、各種の機能を実現する。この実施の形態において、CPU2は3つ搭載されているが、1つ又は2つでも良いし、4つ以上でも良い。例えば、図1に示す3つのCPU2は、それぞれにCPU番号が付与されており、いずれのCPU2の処理であるのかを特定できるようになっている。
また、CPU2には、ハードウェア関連のイベントのカウントを格納する性能カウンタが実装されている。性能カウンタは、一般的なシステム状況のチェック、及びパフォーマンス基準との比較判断に用いられるもので、1秒当たりのカウント数を取得できる。このために、性能カウンタの機能を用いることによって、サーバ装置1における処理を1m秒〜1μ秒の間隔で測定することが可能になる。この実施の形態では、CPU2の性能カウンタによるサンプリングプロファイラ方式で時間計測をすることによって、ソフトウェア的なオーバーヘッドを発生させず、かつソフトウェアの負荷に依存しない正確なデータの所得が可能になっている。
メモリ3は、ROM(Read Only Memory)やRAM(Random Access Memory)などを有し、データやアプリケーション・プログラムが一時的に格納される。記録装置4は、サーバ装置1のオペレーティング・システム(OS)や各種のアプリケーション・プログラムが保存される。入力装置5は、キーボードやマウスなど、システム管理者がデータを入力するために使用する機器である。入力装置5は、タッチパネル式のディスプレイでも良い。出力装置6は、ディスプレイやプリンタなどがある。外部記録装置7は、不図示の外部記録媒体にデータを読み書きするための装置である。外部記録媒体に記憶させているアプリケーションやデータを外部記録装置7で読み出すことによって、記録装置4にインストールしたり、CPU2に展開させて実行させたりすることが可能になる。
通信制御装置8は、ネットワークを介して他の端末装置との間の通信を制御する。また、ネットワークを介してアプリケーション・プログラムをダウンロードして記録装置4にインストールすることも可能である。ネットワークは、専用回線を用いて構築しても良いし、公衆の回線を利用しても良い。
ここで、通信制御装置8や外部記録装置7は、サーバ装置1にデータを入力するための入力装置としても機能する。また、入力装置5、出力装置6、外部記録装置7は、実施形態に必須の構成要素ではない。また、サーバ装置1は、図1に示す構成要素以外の装置を含んでも良い。
続いて、図2Aを参照して、このサーバ装置1において仮想環境を構築するために用いられるハイパーバイザーについて説明する。図2Aには、一例として、アプリケーションタイプの仮想環境のソフトウェア構成を模式的に示している。
ハイパーバイザー21は、サーバ装置1のハードウェア20によって実現される仮想計算機システムの全体を制御するもので、システム管理者によって提供されるアプリケーション・プログラムである。例えば、ハイパーバイザー21は、第1の仮想マシン(VM;Virtual Machine)22と、第2の仮想マシン23とを提供する。仮想マシンの数は、1つでも良いし、3つ以上でも良い。ここで、仮想マシン22,23は、ゲストと呼ばれることもある。
ハイパーバイザー21上で稼動する複数の仮想マシン22,23は、それぞれのOS(ゲストOS)25,27によって動作する。例えば、第1の仮想マシン22は、第1のゲストOS25上で1つ以上のアプリケーション・プログラム26A,26B,26Cの処理を実現する。同様に、第2の仮想マシン23は、第2のゲストOS27上で1つ以上のアプリケーション・プログラム28A,28B,28Cの処理を実現する。ここで、アプリケーション・プログラム26A〜26C,28A〜28Cは、仮想マシン22,23を使用するユーザが容易するもので、例えばデータベースソフトや、仮想マシンで実行されるプロセスを監視する監視プログラムなどがある。
ハイパーバイザー21は、各ゲストOS25,27のディスパッチ処理、各ゲストOS25,27が実行する特権命令のエミュレート、ハードウェア20の制御などを行う。ハイパーバイザー型の仮想化アプリケーションでは、ハイパーバイザー21が直接にハードウェア20の制御を実行するために、処理の応答性に優れる。
また、図2Bを参照して仮想計算機システムの機能について説明する。仮想計算機システムを実現するサーバ装置1は、トレース情報採取部11と、採取開始指示部12と、シンボルマップ情報採取部13と、データ送信部14と、データ受信部15と、解析処理部16と、プロファイル処理部17とに機能分割できる。
トレース情報採取部11は、トレース情報を採取する。トレース情報は、サンプリング割り込み処理発生時に動作していた仮想マシン22,23上の処理を特定する仮想マシン番号と、その仮想マシン22,23の実行アドレス値及びページテーブルアドレス値と、プロセスの実行時間とを含む。実行アドレス値及びページテーブルアドレス値は、コンテキスト退避領域から採取される。
シンボルマップ情報採取部13は、シンボルマップ情報を採取する。シンボルマップ情報は、各仮想マシン22,23上の各プロセスを特定する情報と、プロセスで実行される関数を特定する情報が含まれる。
データ送信部14は、シンボルマップ情報をデータ受信部15に送信する。
データ受信部15は、シンボルマップ情報を受け取り、対応する仮想マシン22,23の識別情報を付与して保存する。
解析処理部16は、トレース情報とシンボルマップ情報を対応付け、トレース情報のページテーブルアドレス値をプロセスの識別情報に変換し、解析データを作成する。解析データには、仮想マシン22,23を識別する情報と、仮想マシン22,23のプロセスを識別する情報と、関数を特定する情報と、プロセスの実行時間の情報とが含まれる。
プロファイル処理部17は、第3のプロセス情報を使用して既存のプロファイル処理を実行する。既存のプロファイル処理としては、プロセス毎や、関数毎に処理の実行に要する時間を把握するためのデータ処理が含まれる。
ここで、この実施の形態のサーバ装置1は、例えば、CPU2にインテル社製のプロセッサを用いており、CPU2にVMM(Virtual Machine Monitor)と呼ばれるプログラムを走らせ、その上で仮想マシン22,23を動作させる。このような仮想計算機システムにおいては、例えば、各仮想マシン22,23の実行スケジューリングや、仮想マシン22,23又はハイパーバイザー21における処理の過程で、複数の仮想マシン22,23やハイパーバイザー21が同じ物理リソースにアクセスすることがある。この場合には、その物理リソースに割り当てられた内容をコンテキスト退避領域に退避させたり、復元させたりすることによって各仮想マシン22,23における処理の連続性を担保している。
このために、CPU2は、コンテキスト退避領域と、これを制御するためのコントロールレジスタとを有する。例えば、インテル社製のプロセッサにおいてはCR0からCR4までのコントロールレジストを有する。そのうちのCR3レジスタは、ページ・ディレクトリの物理アドレスを指し、ページテーブルアドレスと呼ばれるアドレス領域情報である。実行するユーザープロセスを切り替える毎に、CR3レジスタが書き換えられることによって、そのプロセス用の拡張ページテーブルが指定される。そして、割り込み処理発生時には、動作中の仮想マシン22,23のCR3レジスタ値をコンテキスト退避領域に退避させる。そして、割り込み処理が終了して、元の仮想マシン22,23の処理を再開するときには、コンテキスト退避領域のCR3レジスタ値を再度読み込んで、プロセスを再開する。従って、CR3レジスタを参照することによって、プロセスを区別することができる。
さらに、CPU2のレジスタには、命令ポインタであるプログラムカウンタ(EIP)を有する。プログラムカウンタは、次に実行すべき命令を記憶したメモリ3上のアドレスを一時的に格納する。メモリ3から命令が読み出されると、その分だけプログラムカウンタの値を増やし、次に実行すべき命令が保存されている番地を指し示すようになっている。このために、プログラムカウンタを参照することによって、命令のアドレスを取得することができる。
また、CPU2には、拡張ページテーブル(EPT)と呼ぶVMMの制御によるページテーブル構造が実装されている。拡張ページテーブルは、仮想マシン22,23中の物理アドレスから、VMMの物理アドレス空間(最終的な物理アドレス)への変換をサポートすることで、VMMのページテーブル管理のオーバーヘッドを低減するために設けられている。
この実施の形態におけるCPU2は、ルートモード(カーネルモード)でハイパーバイザー21による処理を実行し、ノンルートモード(ユーザモード)に遷移すると仮想マシン22,23の処理を実行する。例えば、ルートモードからノンルートモードへの遷移は「VM−entry」と言われ、その逆を「VM―exit」と呼ばれる。この場合、ハイパーバイザー21は、「VM―exit命令」によって仮想マシン22,23に制御を渡す。
例えば、VMMが仮想マシン22,23を起動すると、CPU2の動作モードはルートモードからノンルートモードに遷移し、仮想マシン22,23が終了するとノンルートモードからルートモードに遷移する。仮想マシン22,23内で所定の命令を実行した場合も、ノンルートモードからルートモードに遷移する。
そして、このように、ルートモードと、ノンルートモードとを行き来しながら各種の処理を実現するために、サーバ装置1には、CPU2の状態の保存や、モード状態の遷移を制御する仮想制御データ構造体(VMCS; Virtual Machine Control Structure)が作成される。
図4に一例を示すように、仮想制御データ構造体30は、6つの区画で定義されている。6つの区画は、ゲストステートエリア31と、ホストステートエリア32と、VM−execution制御フィールド33と、VM−exit制御フィールド34と、VM−entry制御フィールド35と、VM−exit情報フィールド36である。これら6つの区画のデータをメモリ3に退避させたり、復元させたりすることによって動作モードの切換が可能になる。
ここで、ゲストステートエリア31は、仮想マシン22,23の処理を行うCPU2のコントロールレジスタであるCR3レジスタや、その他のレジスタの一部を保持する。ゲストステートエリア31のデータを取得することによって、CPU2の各種のレジスタの値を取得することが可能になる。
ホストステートエリア32は、仮想マシン22,23用のCPU2のレジスタ値を保存する。
VM−execution制御フィールド33は、ノンルートモードでのCPU2の挙動を制御する。
VM−exit制御フィールド34は、ルートモードでのCPU2の挙動を制御する。
VM−exit情報フィールド35は、最後に発生したVM−exitの情報を保持する。
ここで、CPU2は、インテル社製に限定されず、例えばAMD社などその他のメーカーの製品でも良い。この場合には、CPU2の種類に応じて仮想制御データ構造体の構造も変化する。例えば、AMD社のCPU2の場合の仮想制御データ構造体は、VMCB(Virtual Machine Control Block)データ構造体と呼ばれる。
次に、図4AにプログラムカウンタとCR3レジスタから得られるトレース情報41(第2の情報)の一例を示す。トレース情報41は、メモリ3から仮想制御データ構造体30のデータ、特にゲストステートエリア31を取得することによって形成される。ここで、トレース情報41は、CPU2の性能カウンタを使用して1m秒から1μ秒間隔のサンプリング割り込み処理を実行することによってリアルタイムで取得される。トレース情報41をリアルタイムで採取するのは、サーバ装置1内で命令アドレスで特定されるプロセスが実行された時間を正確に把握する必要があるためである。
図4Aに示すように、トレース情報41は、データが時系列に配列されたリストからなり、リストの各行にはCPU番号42と、プロセスID43と、スレッドID44,命令アドレス(IP)45と、命令アドレスで特定されるプロセスが実行された時間データ46と、仮想マシン22,23の実行時の追加情報47とが配列され、仮想マシン番号48(仮想マシン22,23の識別番号)と関連付けて作成される。CPU番号42は、複数のCPU2のいずれかを特定する情報である。プロセスID43は、拡張ページテーブルのアドレスを特定する情報であり、仮想制御データ構造体30から取得できる。スレッドID44は、スレッド毎に付与される情報である。命令アドレス45は、実行される命令のアドレスを特定する情報であり、仮想制御データ構造体30から取得できる。時間データ46は、性能カウンタを用いてデータを取得したタイミングを示す。
追加情報47は、ルートモード状態では使用されず、ノンルートモード状態でのみ付加される。追加情報47としては、例えば、仮想CPU番号47Aと、CR3レジスタ情報47B(ページテーブルアドレス値)と、実行アドレス47C(命令のアドレス)があり、これらのデータが順番に配列される。仮想CPU番号47A、CR3レジスタ情報47B、及び実行アドレス47Cは、トレース情報採取部11によってサンプリング割り込み処理の割り込み元のコンテキスト退避領域から採取されるもので、例えば、図3の仮想制御データ構造体30のゲストステートエリア31のCR3レジスタや、プログラムカウンタの値を参照することで得られる。
続いて、図4Bにトレース情報41の具体例を示す。
トレース情報41の一行目は、CPU番号42が「0」になっている。これには物理的なCPU2に付与されている番号に相当する。プロセスID43は、「35965 TGID」である。スレッドID44は、「35965 ADDR」であり、命令アドレス45は、「00000034fdc82b40」になっている。さらに、このデータを取得した時間データ46として、「ITC 00003362f16f4dc」が登録されている。このプロセスは、ハイパーバイザー21で実行される処理なので、追加情報47は付加されていない。
これに対して、リストの9行目及び10行目のデータは、仮想マシン22,23で実行される処理なので、追加情報47が付加されている。リストの10行目のデータは、CPU番号42は「1」になっている、スレッドID44には、ゲストOS25,27であることを示す情報「[guestOS]::RHEL6.2―guest999」が付与されている。この情報は、この実施の形態に必須の要素ではないが、ゲストOS25,27であることを示す情報を付与することは、サーバ装置1における処理の可視化に貢献する。
さらに、リストの10行目の付加情報47である仮想CPU番号47Aは、「VPID 1」になっており、これはハイパーバイザー21によってユーザに提供される仮想CPUの番号が「1」であることを示している。さらに、CR3情報47Bは、「gcr3 00000004106bc000」であり、実行アドレス47Cは「gRiP 00000033bbc09af2」になっている。
ここで、トレース情報41だけでは、具体的な処理の内容を特定することができない。そこで、この実施の形態では、トレース情報41のプロセスID43をプロセス名に、命令アドレス45をプロセスの関数名にそれぞれ変換する。
具体的には、図5に模式的に示すように、サーバ装置1のシンボルマップ情報採取部13は、各仮想マシン22,23において実行されるプロセス名やプロセスIDに関する情報と、プロセスで用いられている関数の情報である関数名59と、関数アドレス58を含むシンボルマップ情報51を作成する。そして、シンボルマップ情報51と、ハイパーバイザー21上で作成されるトレース情報41とをプロセス毎に対応付けることによって、サーバ装置1における処理の流れを可視化する解析データ71を作成する。
図5に示す例で、シンボルマップ情報51は、例えば、第1の仮想マシン22で実行されるアプリケーション26Aで生成されるプロセスについて作成される。即ち、アプリケーション26Aに関するシンボルマップ情報51Aには、アプリケーション26Aから生成されたプロセスのプロセス名56や、関数の実行アドレスである関数アドレス58、当該プロセスで実行される関数名59の情報が含まれる。複数のプロセスが平行して処理されている場合には、それら全てのプロセスについての情報が採取される。例えば、アプリケーション26Bに関するシンボルマップ情報51Bなどが作成される。
また、第2の仮想マシン23で実行されるプロセスについてもシンボルマップ情報51Cが作成される。シンボルマップ情報51に含まれる、プロセス名や関数名の情報は、プロセスの実行時に動的に変更される情報ではないため、リアルタイムで採取する必要はなく、プロセスが存在する間に取得されればよい。従って、シンボルマップ情報51は、例えば、ディレイドタイム処理によって採取される。
図6Aに模式的に示すようにシンボルマップ情報51はプロセス毎に作成され、CPU番号52と、プロセスID53Aと、ページテーブルアドレス53B(アドレス領域情報)と、スレッドID54と、時間55と、プロセス名56と、関数アドレス58と、関数名59とを有する。プロセスID53A、ページテーブルアドレス53B、スレッドID54、プロセス名56は、仮想マシン内でプロセス毎に作成される管理領域53(タスク構造体)から取得される。また、関数アドレス58と、関数名59は、アプリケーション26Aに対応するオブジェクトファイル57から取得される。
さらに、図6Bにシンボルマップ情報51の具体例を示す。この具体例では、CPU番号52、この場合は仮想CPUが「0」であり、プロセス名56が「exe(sda_cmd)」というモジュールであることがわかる。ここで、1つの関数アドレス58から次の関数アドレス58までの間のアドレスが一つの関数に使用される。例えば、関数アドレス58が「4000000000004260」から「400000000001c6e0」の1つ前のアドレスまでが「main」関数に使用されている。
次に、図7Aを参照して、トレース情報41とシンボルマップ情報51と対応付けることによって作成される解析データ71について説明する。トレース情報41と、シンボルマップ情報51は、同じ仮想マシン番号48を有する情報が組み合われるようにして回世紀される。シンボルマップ情報51における仮想マシン番号48は、情報採取後に付与される。
解析データ71は、ルートモード状態では、CPU番号42と、プロセス名56と、関数名59と、時間データ46と、仮想マシン22,23の実行時の追加情報47とが配列される。追加情報47には、仮想CPU番号47Aと、CR3レジスタ情報47Bと、実行アドレス47Cが含まれる。即ち、この実施の形態において、解析データ71は、図4AにおけるプロセスID43及び命令アドレス45が、図6Aにおけるプロセス名56及び関数名59に変換されることによって形成される。なお、解析データ71は、追加情報47を有しなくても良い。
ここで、図7Bに示すように、解析データ71のプロセス名56は、トレース情報47のアドレス領域情報と、シンボルマップ情報51のアドレス領域情報とをプロセス単位で関連付けることによって作成される。具体的には、トレース情報47の追加情報47のCR3レジスタ情報47Bで、シンボルマップ情報51のページテーブルアドレス53Bを検索してプロセスID53を特定し、そのプロセスID53に割り当てられているプロセス名56を取得する。これによって、
また、解析データ71の関数名59は、トレース情報47のアドレス領域情報と、シンボルマップ情報51のアドレス領域情報とをプロセス単位で関連付けることによって作成される。即ち、解析処理部16は、トレース情報41及びシンボルマップ情報51のアドレス領域情報を関連付けると共に、トレース情報41の実行アドレス47Cとシンボルマップ情報51の関数アドレス58及び関数名59を関連付ける。
具体的には、トレース情報41の追加情報47に含まれる実行アドレス47Cで、シンボルマップ情報51のページテーブルアドレス53Bを検索して関数アドレス58を特定し、実行アドレス47Cが含まれる関数アドレス58の領域に割り当てられた関数名59を取得する。
さらに、解析データ71には、トレース情報47に含まれる時間データ46が添付される。これによって、CPU2を用いて取得した時間情報と、プロセス名56、関数名59が関連付けられる。また、ハイパーバイザー21内の処理に関しては、命令アドレス45でシンボルマップ情報51Aを検索して関数名59を特定する。
このような解析データ71は、プロセス名56、関数名59と、時間データ46の情報が関連付けられた構成を有するので、システム管理者がサーバ装置1における処理の流れを把握し易い。例えば、プロセス名56と関数名59から通常の処理に必要な時間がわかるので、解析データ71上で同じプロセス名56及び関数名59の処理時間が異常に多くなっている場合には、そのプロセス及び関数がオーバーヘッドの原因になっていると判定できるようになる。
次に、図8Aのフローチャートを参照してトレース情報41、シンボルマップ情報51の採取処理、及び解析データ71の作成処理について説明する。
ステップS101でハイパーバイザー21が情報採取を開始する。このとき、初期情報として、例えばサンプリング間隔や、情報採取の実行回数、情報採取対象に含まれる仮想マシン22,23の情報を取得する。
続くステップS102では、情報採取プロセスを起動させ、ステップS103で対象として抽出された仮想マシン22,23に情報採取開始の合図を送る。
さらに、ステップS104において、指定時間が経過するまで待機する。指定時間は、ステップS101で取得したサンプリング間隔に相当する。サンプリング間隔は、サーバ装置1において予め設定されている値が用いられる。指定時間の経過は、CPU2の性能カウンタのカウント値によって判断される。そして、指定時間が経過したら(ステップS104でYes)、ステップS105に進んでトレース情報採取部11がトレース情報41を採取する。
さらに、端子Bから進む図8BのステップS106で、シンボルマップ情報採取部13がハイパーバイザー21内のプロセスのExitイベントの有無を確認する。Exitイベントとは、例えば、プロセスの終了処理である。Exitイベントが発生すると、そのプロセスが終了してしまい、その後は当該プロセスについてのシンボルマップ情報51Aを取得できなくなる。そこで、Exitイベントが発生したら(ステップS106でYes)、ステップS107で、シンボルマップ情報採取部13の処理によってExitイベントの対象となるプログラムを処理していたハイパーバイザー21のシンボルマップ情報51を採取する。これに対して、Exitイベントが発生していないときは(ステップS106でNo)、現段階ではシンボルマップ情報51Aを取得せずに、ステップS108に進む。
ステップS108では、シンボルマップ情報採取部13が情報採取の終了を判定する。情報採取を行った実行回数がステップS101で取得した情報採取の実行回数を経過したら(ステップS108でYes)、ステップS109で情報収集を終了する。一方、情報採取の実行回数に到達していなければ、実行回数を1つインクリメントした後、端子AからステップS104に戻り、前記の処理を繰り返す。
そして、ステップS109でシンボルマップ情報収集を終了したら、ステップS110でシンボルマップ情報採取部13が再びシンボルマップ情報51Aを採取する。ここでは、Exitイベントの有無とは関係なく、ハイパーバイザー21で現在実行中の全てのプロセスに関する情報を採取してシンボルマップ情報51Aを作成する。さらに、シンボルマップ情報採取部13は、ステップS108で採取したシンボルマップ情報51Aも付加する。これによって、情報採取プロセスの実行中にハイパーバイザー21で処理された全てのプロセスについてのシンボルマップ情報51Aが得られる。
一方、図8Aに示すように、第1の仮想マシン22は、ステップS103でハイパーバイザー21から出力された開始合図を受け取ったら、ステップS111でシンボルマップ情報51の採取プロセスを起動する。そして、ステップS112でExitイベントの有無を確認する。Exitイベントが発生したら(ステップS112でYes)、ステップS113でシンボルマップ情報採取部13がExitイベントの対象となったプログラムについてのシンボルマップ情報51を採取する。Exitイベントが発生していないときは(ステップS112でNo)、現段階ではシンボルマップ情報51を取得せずに待機する。
同様に、第2の仮想マシン23は、ハイパーバイザー21から出力された開始合図を受け取ったら、ステップS115でシンボルマップ情報採取部13がシンボルマップ情報51の採取プロセスを起動する。この際、ステップS116でExitイベントの有無を確認し、Exitイベントが発生したら(ステップS116でYes)、ステップS117でシンボルマップ情報採取部13がExitイベントの対象となったプログラムについてのシンボルマップ情報51を採取する。Exitイベントが発生していないときは(ステップS116でNo)、現段階ではシンボルマップ情報51を取得せずに待機する。
この後、図8BのステップS120で、シンボルマップ情報採取部13の処理によって、ハイパーバイザー21が仮想マシン22,23に終了合図を出力する。この後、図8Cにおいて、ステップS121として、トレース情報採取部11の処理によって、ハイパーバイザー21がトレース情報41をファイル出力する。続いて、ステップS122で、シンボルマップ情報採取部13の処理によって、ハイパーバイザー21がシンボルマップ情報51Aをファイル出力する。
一方、第1の仮想マシン22は、ハイパーバイザー21から終了合図を受け取ったら、ステップS123でシンボルマップ情報採取部13がシンボルマップ情報51Bを採取する。ここでは、Exitイベントの有無とは関係なく、第1の仮想マシン22で現在実行中の全てのプロセスに関する情報を採取してシンボルマップ情報51Bを作成する。さらに、ステップS113でシンボルマップ情報採取部13が採取したシンボルマップ情報51Bも付加する。これによって、情報採取プロセスの実行中に第1の仮想マシン22で処理された全てのプロセスについてのシンボルマップ情報51Bが得られる。そして、ステップS124で、シンボルマップ情報採取部13の処理により、第1の仮想マシン22でシンボルマップ情報51Bがファイル出力される。
同様に、第2の仮想マシン23は、ハイパーバイザー21から終了合図を受け取ったら、ステップS125でシンボルマップ情報採取部13がシンボルマップ情報51Cを採取する。Exitイベントの有無とは関係なく、第2の仮想マシン23で現在実行中の全てのプロセスに関する情報を採取し、ステップS117で採取したシンボルマップ情報51Cも付加する。これによって、情報採取プロセスの実行中に第2の仮想マシン23で処理された全てのプロセスについてのシンボルマップ情報51Cが得られる。そして、ステップS126で、シンボルマップ情報採取部13の処理により、第2の仮想マシン23でシンボルマップ情報51Cがファイル出力される。
次に、ステップS131で、解析処理部16の処理として、ハイパーバイザー21がデータ収集処理を開始する。これを受けて、ステップS132でデータ送信部14が第1の仮想マシン22のシンボルマップ情報51のファイルをハイパーバイザー21にデータ転送する。同様に、ステップS133でデータ送信部14が第2の仮想マシン23のシンボルマップ情報51のファイルをハイパーバイザー21にデータ転送する。データ転送は、例えば、scp(Secure Copy)や、sshfs(SSH File System)を用いたセキュリティの高いファイル転送システムを用いて受け渡される。これによって、仮想マシン22,23の情報漏洩を防止できる。
ハイパーバイザー21は、データ受信部15で仮想マシン22,23のシンボルマップ情報51のファイルを受け取ったら、各シンボルマップ情報51に対応する仮想マシン番号48を付与する。さらに、ステップS134でデータの受け取り通知を仮想マシン22,23に出力する。その結果、ステップS135で第1の仮想マシン22がシンボル採取プロセスを終了する。同様に、ステップS136で第2の仮想マシン23がシンボル採取プロセスを終了する。さらに、ステップS141で解析処理部16がハイパーバイザー21上で各データファイルを結合させ、ステップS142でデータ分析を行い、ステップS143で解析データ71を作成する。この後、ここでの処理を終了する。
以上、説明したように、この実施の形態では、ハイパーバイザー21の処理を時系列に従って配列したトレース情報41に、仮想マシン22,23に指令した処理の情報を追加情報47として取得するようにした。これによって、ハイパーバイザー21の処理の中で、仮想マシン22,23が実行する処理を把握することが可能になる。仮想マシン22,23毎に仮想割り込み処理を行う場合に比べて、システム全体の負荷を低減できる。
ここで、追加情報47の取得には、仮想環境を提供するためにCPU2に用意されたコンテキスト退避領域を参照するようにしたので、仮想マシン22,22のセキュリティを担保しつつ、追加情報47を確実に所得できる。さらに、サンプリング周期をCPU2の性能カウンタを用いて管理し、ハイパーバイザー21で一元的にデータを採取するようにしたので共通時間軸によるデータ採集が可能になる。こんために、ソフトウェア毎のカウンタで時間を管理する場合に比べて、プロセスが実行された時間の情報の正確さを高められる。
さらに、各仮想マシン22,23では、ゲストOS25,27におけるプロセスID53、命令アドレス45、プロセス名56、及び関数名59をシンボルマップ情報51B,51Cとして取得するようにした。そして、これらのデータを用いてハイパーバイザー21で作成されるトレース情報41の一部のデータを置き換えることによって、解析データ71を作成するようにした。解析データ71を利用することによって、システム管理者がサーバ装置1の処理の流れを容易に確認でき、サーバ装置1におけるオーバーヘッドの原因などを解析できる。各仮想マシン22,23で実行されるアプリケーション・プログラム26A〜26C,28A〜28cは、システム管理者が用意にしたものではないので、処理の詳細を把握することは困難である。この実施の形態では、プロファイル処理部17で解析データ71を参照したり、処理したりすることで、ハイパーバイザー21や各仮想マシン22,23における処理の実行に要する時間を、プロセス毎や、関数毎に把握することができる。例えば、システム管理者が、解析データ71の時間データ46のデータを調べて通常処理に比べて実行時間が長いプロセスを探せば、オーバーヘッドの原因を特定することが可能になり、解析作業の効率が向上する。これに加えて、ハイパーバイザー21内の処理についても、同様に置き換え処理を実施するようにしたので、システム管理者によるサーバ装置1の処理の流れの確認作業がさらに容易になる。
ここで、サーバ装置1に接続され、解析データ71を作成するコンピュータ端末を解析装置として設けても良い。この場合、解析装置は、図1に示す解析処理部16を少なくとも有し、サーバ装置1からトレース情報41とシンボルマップ情報51を受け取って、解析データ71を作成するように構成される。
また、本実施の形態には、コンピュータをトレース情報採取部11と、シンボルマップ情報採取部13と、解析処理部16にして機能させる仮想計算機システムの管理プログラムも含まれる。さらに、仮想計算機システムの管理プログラムをコンピュータにインストール可能にアップロードしたり、記録媒体に記録したりすることも実施形態に含まれる。また、本実施の形態は、OSやハイパーバイザー21、ドライバモジュール、性能測定及び解析ツール、性能管理アプリケーション、キャパシティ管理アプリケーションに適用することが可能である。
(第2の実施の形態)
第2の実施の形態について説明する。以下において、第1の実施の形態と同じ構成要素には同一の符号を付している。また、第1の実施の形態と重複する説明は省略する。
また、図9に示すように、仮想計算機システムを実現するサーバ装置1は、トレース情報採取部11と、採取開始指示部12と、シンボルマップ情報採取部13と、データ送信部14と、データ受信部15と、解析処理部16と、プロファイル処理部17とに機能分割できる。
採取開始指示部12は、トレース情報採取部11におけるデータ採取が終了した後、仮想マシン22,23に対して情報採取を指示する処理を実行する。
シンボルマップ情報採取部13は、サンプリング割り込み処理発生後に採取開始指示部12からの指示を受けてシンボルマップ情報53を採取する。
解析データを作成するときには、最初に、サンプリング割り込み処理の実行に伴い、ホスト側(ハイパーバイザー21側)においてトレース情報採取部11が仮想マシン22,23のコンテキスト退避領域から情報を採取し、仮想マシン番号48と関連付けてトレース情報41を作成する。トレース情報41は、トレース情報採取部11から解析処理部16に受け渡される。
トレース情報採取部11における情報採取が終了したら、採取開始指示部12がゲスト側(仮想マシン22,23側)のシンボルマップ情報採取部13に対し、シンボルマップ情報53の採取を指示する信号を送る。
ここで、 シンボルマップ情報53の採取対象となる仮想マシン22,23では、サンプリング割り込み処理によってプロセス等の情報がコンテキスト退避領域に退避させられているので、シンボルマップ情報採取部13を参照し、対象となる仮想マシン22,23のシンボルマップ情報53を作成する。
シンボルマップ情報53は、仮想マシン22,23側のデータ送信部14からハイパーバイザー21側のデータ受信部15に送信される。データ受信部15は、シンボルマップ情報53に、対応する仮想マシン番号48を付与した後、解析処理部16に受け渡す。
解析処理部16は、仮想ホスト番号48及びCR3レジスタ情報47B(ページテーブルアドレス値)で両者の対応を調べることによって仮想マシン22,23で処理されているプロセス及び関数名を特定する。この後、プロファイル処理部17で仮想マシン22,23の動作を解析する。
以上、説明したように、この実施の形態では、仮想マシン22,23上で採取したシンボルマップ情報53をハイパーバイザー21側で解析処理するようにした。さらに、サンプリング割り込み処理時のホスト側のプロセスの情報と、仮想マシン22,23のプロセスの情報を取得し、両者を対応付けることにより、仮想マシン22,23の処理をシステム管理者が確認できるようにした。これによって、各仮想マシン22,23の状態や、仮想マシン22,23とハイパーバイザー21の処理を含めた仮想計算機システム全体としての処理状況を正確に把握することが可能になり、仮想計算機システムを効率良く運営することができるようになる。
ここで挙げた全ての例及び条件的表現は、発明者が技術促進に貢献した発明及び概念を読者が理解するのを助けるためのものであり、ここで具体的に挙げたそのような例及び条件に限定することなく解釈するものであり、また、明細書におけるそのような例の編成は本発明の優劣を示すこととは関係ない。本発明の実施形態を詳細に説明したが、本発明の精神及び範囲から逸脱することなく、それに対して種々の変更、置換及び変形を施すことができる。
1 仮想計算機システム
11 トレース情報採取部
13 シンボルマップ情報採取部
16 解析処理部
21 ハイパーバイザー
22,23 仮想マシン
41 トレース情報
47B CR3レジスタ情報(アドレス領域情報)
47C 実行アドレス
48 仮想マシン識別番号
51 シンボルマップ情報
53 管理領域
53A プロセスID
53B ページテーブルアドレス(アドレス領域情報)
58 関数アドレス
59 関数名
71 解析データ

Claims (5)

  1. ハイパーバイザー上で動作する複数の仮想マシンを有する仮想計算機システムであって、
    前記ハイパーバイザーにおいて、割り込み発生時に動作していた、前記複数の仮想マシンの1つである第1の仮想マシン上のプロセスの、動作状態と、プロセスが前記複数の仮想マシンそれぞれで動作する際に設定されるアドレス領域情報と、を含むトレース情報を、前記第1の仮想マシンに対応するコンテキスト退避領域から採取するトレース情報採取部と、
    前記複数の仮想マシンそれぞれにおいて、前記複数の仮想マシンそれぞれで動作するプロセスの識別番号と、前記アドレス領域情報と、を含むシンボルマップ情報を前記複数の仮想マシンそれぞれが有する管理領域からそれぞれ採取し、前記ハイパーバイザーに送信する、複数のシンボルマップ情報採取部と、
    前記ハイパーバイザーにおいて、前記トレース情報と前記シンボルマップ情報をプロセス毎に関連付ける解析処理部と、
    を含むことを特徴とする仮想計算機システム。
  2. 請求項1記載の仮想計算機システムであって、
    記解析処理部は、それぞれの前記アドレス領域情報に基づき、前記トレース情報と前記シンボルマップ情報をプロセス単位で関連付けることを特徴とする仮想計算機システム。
  3. 請求項2記載の仮想計算機システムであって、
    前記トレース情報は、前記第1の仮想マシンの識別番号と、前記割込み発生時に動作していたプロセスに割り当てられていた前記アドレス領域情報及び実行アドレスと、を含み、
    前記シンボルマップ情報は、前記複数の仮想マシンそれぞれで動作するプロセスの識別番号と、前記アドレス領域情報と、当該プロセスで実行される関数の関数名およびアドレスと、を含み、
    前記解析処理部は、前記トレース情報及び前記シンボルマップ情報の前記アドレス領域情報を関連付けると共に、前記トレース情報の前記実行アドレスと前記シンボルマップ情報の前記関数の関数名及びアドレスを関連付けることを特徴とする仮想計算機システム。
  4. 物理CPU毎に割り込みの設定が可能なハイパーバイザー上で動作する複数の仮想マシンを有する仮想計算機システムにおいて、定期的にCPU割り込みを発生させ、
    割り込みにより前記ハイパーバイザー上のコンテキスト退避領域に退避された、前記複数の仮想マシンの1つである第1の仮想マシン上のプロセスの、動作状態と、プロセスが前記複数の仮想マシンそれぞれで動作する際に設定されるアドレス領域情報と、を含むトレース情報を採取し、
    前記複数の仮想マシンそれぞれにおいて、前記複数の仮想マシンそれぞれで動作するプロセスの識別番号と、前記アドレス領域情報と、を含むシンボルマップ情報を前記複数の仮想マシンがそれぞれ有する管理領域から採取し、
    前記トレース情報と前記シンボルマップ情報をプロセス毎に関連付ける、
    処理を有することを特徴とする仮想計算機システムの管理方法。
  5. 物理CPU毎に割り込みの設定が可能なハイパーバイザー上で動作する複数の仮想マシンを有する仮想計算機システムにおいて、定期的にCPU割り込みを発生させる処理と
    割り込みにより前記ハイパーバイザー上のコンテキスト退避領域に退避された、前記複数の仮想マシンの1つである第1の仮想マシン上のプロセスの、動作状態と、プロセスが前記複数の仮想マシンそれぞれで動作する際に設定されるアドレス領域情報と、を含むトレース情報を採取する処理と、
    前記複数の仮想マシンそれぞれにおいて、前記複数の仮想マシンそれぞれで動作するプロセスの識別番号と、前記アドレス領域情報と、を含むシンボルマップ情報を前記複数の仮想マシンがそれぞれ有する管理領域から採取する処理と、
    前記トレース情報と前記シンボルマップ情報をプロセス毎に関連付ける処理と、
    をコンピュータに実行させることを特徴とする仮想計算機システムの管理プログラム。
JP2013043158A 2013-03-05 2013-03-05 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム Active JP6079317B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013043158A JP6079317B2 (ja) 2013-03-05 2013-03-05 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム
US14/070,766 US9524180B2 (en) 2013-03-05 2013-11-04 Managing virtual machines using tracing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013043158A JP6079317B2 (ja) 2013-03-05 2013-03-05 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム

Publications (2)

Publication Number Publication Date
JP2014170482A JP2014170482A (ja) 2014-09-18
JP6079317B2 true JP6079317B2 (ja) 2017-02-15

Family

ID=51489564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013043158A Active JP6079317B2 (ja) 2013-03-05 2013-03-05 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム

Country Status (2)

Country Link
US (1) US9524180B2 (ja)
JP (1) JP6079317B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767004B2 (en) * 2014-06-16 2017-09-19 Symantec Corporation Dynamic call tracking method based on CPU interrupt instructions to improve disassembly quality of indirect calls
CN105512014B (zh) * 2015-12-10 2018-09-25 北京金山安全管理系统技术有限公司 一种应用程序使用情况数据采集的方法和装置
US9858167B2 (en) * 2015-12-17 2018-01-02 Intel Corporation Monitoring the operation of a processor
JP6672808B2 (ja) 2016-01-13 2020-03-25 富士通株式会社 情報処理装置、実行時間補正方法、および実行時間補正プログラム
US9965375B2 (en) * 2016-06-28 2018-05-08 Intel Corporation Virtualizing precise event based sampling
JP6691295B2 (ja) * 2016-07-01 2020-04-28 富士通株式会社 情報処理装置、プログラム実行状態表示方法およびプログラム実行状態表示プログラム
US10140143B2 (en) 2016-07-05 2018-11-27 Red Hat Israel, Ltd. Collection of guest status
US10459748B2 (en) 2016-07-05 2019-10-29 Red Hat Israel, Ltd. Transparent guest based notification overlay
JP6693308B2 (ja) 2016-07-05 2020-05-13 富士通株式会社 負荷推定プログラム、負荷推定方法及び負荷推定装置
JP6904049B2 (ja) * 2017-05-16 2021-07-14 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
CN109144671A (zh) * 2018-08-21 2019-01-04 郑州云海信息技术有限公司 云数据系统中虚拟机的管理方法和装置
JP7135831B2 (ja) 2018-12-20 2022-09-13 富士通株式会社 分析プログラム、および分析装置
JP2022049825A (ja) * 2020-09-17 2022-03-30 富士通株式会社 性能分析方法及び性能分析プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63201840A (ja) 1987-02-18 1988-08-19 Fujitsu Ltd プログラム実行命令トレ−ス出力処理方式
JPH10240581A (ja) * 1997-02-28 1998-09-11 Fujitsu Ltd Cpu時間測定装置
JP2005352669A (ja) 2004-06-09 2005-12-22 Denso Corp コンピュータシステム
US7640539B2 (en) * 2005-04-12 2009-12-29 International Business Machines Corporation Instruction profiling using multiple metrics
US8832682B2 (en) * 2008-03-28 2014-09-09 Vmware, Inc. Trace collection for a virtual machine
WO2009147738A1 (ja) * 2008-06-05 2009-12-10 富士通株式会社 情報処理装置及びその制御方法並びにモニタプログラム

Also Published As

Publication number Publication date
US20140259011A1 (en) 2014-09-11
JP2014170482A (ja) 2014-09-18
US9524180B2 (en) 2016-12-20

Similar Documents

Publication Publication Date Title
JP6079317B2 (ja) 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム
JP5353227B2 (ja) 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
TWI453582B (zh) 中央處理單元量測設備之虛擬化
US7174274B2 (en) Gathering I/O measurement data during an I/O operation process
WO2014033945A1 (ja) 複数の監視対象デバイスを有する計算機システムの管理を行う管理システム
US10733009B2 (en) Information processing apparatus and information processing method
US9436586B1 (en) Determining code coverage on Z/OS® server
JP6194016B2 (ja) 計算機および負荷測定方法
US9852007B2 (en) System management method, management computer, and non-transitory computer-readable storage medium
JP6009089B2 (ja) 計算機システムを管理する管理システム及びその管理方法
Wildstrom et al. Towards self-configuring hardware for distributed computer systems
Nemati et al. Fine-grained nested virtual machine performance analysis through first level hypervisor tracing
Khandual Performance monitoring in linux kvm cloud environment
US9092205B2 (en) Non-interrupting performance tuning using runtime reset
Volk et al. Towards intelligent management of very large computing systems
JP4973149B2 (ja) 仮想計算機の性能モニタ方法および計算機システム
JP7135831B2 (ja) 分析プログラム、および分析装置
Yang et al. Radio: Reconciling Disk I/O Interference in a Para-virtualized Cloud
Oh et al. Effective hotspot removal system using neural network predictor
JP5993052B2 (ja) 複数の監視対象デバイスを有する計算機システムの管理を行う管理システム
Luo et al. Optimizing the Memory Management of a Virtual Machine Monitor on a NUMA System
Nemati Titre
Xie et al. Benchmark object for virtual machines
Smeds A PAPI implementation for BlueGene
JP2015166896A (ja) 情報処理装置、情報処理装置の性能情報採取プログラム及び情報処理装置の性能情報採取方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170102

R150 Certificate of patent or registration of utility model

Ref document number: 6079317

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150