JP4973149B2 - 仮想計算機の性能モニタ方法および計算機システム - Google Patents

仮想計算機の性能モニタ方法および計算機システム Download PDF

Info

Publication number
JP4973149B2
JP4973149B2 JP2006315820A JP2006315820A JP4973149B2 JP 4973149 B2 JP4973149 B2 JP 4973149B2 JP 2006315820 A JP2006315820 A JP 2006315820A JP 2006315820 A JP2006315820 A JP 2006315820A JP 4973149 B2 JP4973149 B2 JP 4973149B2
Authority
JP
Japan
Prior art keywords
switching
counter
virtual
computer system
computer
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.)
Expired - Fee Related
Application number
JP2006315820A
Other languages
English (en)
Other versions
JP2008129931A (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 JP2006315820A priority Critical patent/JP4973149B2/ja
Publication of JP2008129931A publication Critical patent/JP2008129931A/ja
Application granted granted Critical
Publication of JP4973149B2 publication Critical patent/JP4973149B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、異なる種類の計算機として機能する計算機システムにおける性能モニタ技術に関する。
従来から計算機システムの性能測定を行う手段として、被測定システムへの影響が少ないハードウェアモニタがよく利用されてきた。特に、現在のプロセッサはパフォーマンスモニタを内蔵しているものがほとんどであり、それを利用する性能評価ツールも少なくない。
例えば、Intel VTuneやOprofileなどのツールでは、プロセッサのパフォーマンスモニタリング機能を使うことにより、実行命令数やキャッシュミス数などのイベントをサンプリングし、計算機システムの性能解析を行っている。
しかし、いわゆる仮想計算機と呼ばれるシステムでは、単一の計算機システム(実計算機ともいう)を複数の異なる仮想計算機として利用できる。このため、それぞれの仮想計算機単位での性能測定や解析を行うことが困難であった。ここで、仮想計算機とは、例えば、複数のOSを切り替えて実行することで、そのOSに対応する機能を提供する計算機をいう。
また、従来、このような仮想計算機は、比較的規模の大きいホスト計算機において構成されることがほとんどであった。しかし、最近では、マイクロプロセッサのメーカが、身近なパーソナルコンピュータ用のプロセッサにおいても、ハードウェアにより複数種類の計算機として機能させる仮想化技術を実現している。そうなると、企業向けの大規模システムから個人レベルのパーソナルコンピュータまで、今後ますます多数の仮想計算機上で、性能評価が必要となる。
そのような仮想計算機を実現する計算機システムの性能評価手段としては、ソフトウェアモニタと、ハードウェアモニタを考えることができる。
まず、ソフトウェアモニタとしては、OSや仮想計算機モニタ(VMM)の一部として、パフォーマンスモニタのエミュレーションプログラムが性能データを収集していた。
この方式の場合は、プログラム変更による機能変更などの柔軟性はあるが、そもそもソフトウェアモニタ自身は被測定システムにとっては余分なプログラムで「オーバーヘッド」要因となる。
一方、ハードウェアモニタによる従来方式の例として、例えば、特開昭63−301334のような方式がある。この技術では、測定プログラムが仮想計算機の実行状態に応じてハードウェアモニタを制御する必要があった。これは、プログラマが仮想計算機の実行状態、仮想計算機の切替タイミング等を理解した上で性能評価用のプログラムを記述する必要があることを意味する。そうしないと、ハードウェアモニタの測定結果が複数の仮想計算機間で衝突してしまう可能性があるからである。
特開昭63−301334号公報 特開平2−211548号公報
上述したソフトウェアモニタによる場合には、オーバーヘッドが問題となる。一方、ハードウェアモニタでは、複数種類の計算機を切り替えて機能を提供する仮想計算機システムにおいて、仮想計算機ごとの性能評価が困難であった。
本発明の目的は、複数種類の計算機を切り替えて機能を提供する仮想計算機システムにおいて、簡易かつ高精度に計算機の性能を評価できる技術を提供することである。
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、計算機システムの性能指標を計数する複数の計数器を備える計算機システムの性能モニタ技術に関するものである。本計算機システムは、現在動作している仮想計算機を識別し、現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える。これにより、本計算機システムは、計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記計数動作中に計数された計数結果を保持することを特徴とする。
本計算機システムは、現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える機能を有するので、計算機システムで実行されるプログラムが、動作している仮想計算機を意識することなく、個々の仮想計算機について、性能モニタを実行できる。
本計算機システムは、上記切替動作の有効・無効の指示の設定を受け付け、切替動作の有効・無効を制御する。これにより、本計算機システムは、切替動作が無効の場合に、計算機の種類によらず継続して単一の計数器を動作させることを特徴とする。この場合には、異なる種類の計算機を組み合わせた計算機システム全体の性能モニタが実現される。
また、本発明は、計算機の性能を評価するための性能指標を計数する計数器と前記計数器の計数結果を保存する保存手段とを備えるものでもよい。すなわち、本計算機システムは、現在動作している仮想計算機の切替を検知し、その切替検知をトリガとして、現在動作している仮想計算機に対する計数結果を前記保存手段に保存し、さらに、切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を保存手段から前記計数器に復元する復元することを特徴とする。このような構成により、計数器と保存手段の組み合わせによって、複数の仮想計算機に対する性能モニタを実現できる。
また、本発明は、以上のような機能を組み合わせた計算機システムでもよい。すなわち、計算機システムが、現在動作している仮想計算機を識別し、現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える。これにより、計数動作が許可された計数器によって性能指標を計数するとともに、計数動作が許可されていない計数器については、動作中に計数された計数結果を保持するとともに、さらに、以下の機能を実現する。すなわち、仮想計算機に対応して決定される計数器の数が不足した場合に切替動作を無効に設定し、現在動作している仮想計算機の切替を検知する。
そして、切替動作が無効に設定されているときに、切替検知をトリガとして、現在動作している仮想計算機に対するすでに計数済みの計数結果を保存手段に保存し、切替後に動作する仮想計算機に対する切替前に計数済みの計数結果を保存手段から計数器に復元する復元する。
このような構成により、計算機システムで動作する仮想計算機に応じて柔軟に、計数器の実効的な数を拡張できる。そして、計算機システムで実現される仮想計算機の数に変動
があった場合でも、計算機システムに本来設けられた構成要素を用いて、簡易にそれぞれの仮想計算機に対する性能モニタを実現できる。
本発明によれば、複数の仮想計算機を切り替えて動作する仮想計算機システムにおいて、簡易かつ高精度に計算機の性能を評価できる。
以下、図面を参照して本発明を実施するための最良の形態(以下、実施形態という)に係る計算機システムについて説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
以下の実施形態はすべて、1つのプロセッサコア(または1台の計算機)上で複数の仮想計算機が動作していることを前提とする。その場合、各仮想計算機は、プロセッサコア(または1台の計算機)上で1つずつ切り替わりながら動作することになる。なお、本実施形態において、仮想計算機とは、同一の計算機上で複数のOSを実行することにより、仮想的に異なる複数の計算機環境が提供される場合のそれぞれの仮想計算機環境をいうものとする。例えば、1つの計算機上に、パーソナルコンピュータ専用ベンダから提供される第1OSと、フリーソフトウェアである第2OSとがインストールされている場合が相当する。この場合、第1OSが実行されているとき、計算機は、第1の仮想計算機として機能し、第2OSが実行されているとき、同一の計算機が第2の仮想計算機として機能する。
また、本計算機システムは、プロセッサコア上で仮想計算機モニタを実行する。仮想計算機モニタは、本計算機システムで複数のOSの下層で機能し、複数のOSを切り替えて実行する。本計算機システムは、仮想計算機モニタが実行するそれぞれのOSによって、それぞれの異なる仮想計算機として機能する。
<第1実施形態>
ここでは、図1および図2を使用して本発明の第1実施形態を説明する。本計算機システムは、一般的なコンピュータの構成、例えば、プロセッサコア(例えば、CPU)、メモリ、外部記憶装置(例えば、ハードディスク、取り外し可能な可搬記録媒体の駆動装置等)、外部記憶装置とのインターフェース、通信インターフェース、入出力装置(例えば、キーボード、マウス等のポインティングデバイス等)を有する。
本計算機システムのプロセッサコア1は、一般的なCPUの機能に加えて、パフォーマンスモニタリングユニット(以下、PMUという)およびPMUへのアクセスを制御する有効ユニット切替器2を有している。
図1は、本実施形態に係る計算機システムのプロセッサコア1の機能を示している。図1に示すように、本計算機システムのプロセッサコア1は、複数のバンク6(バンクを個々に呼ぶ場合には、バンク6−1、6−2、6−Nのように呼ぶ)を含むPMU5と、PMU5のバンク6のうち使用すべきバンク6を切り替える有効ユニット切替器2(本発明の切替手段に相当)と、有効ユニット切替器2が現在動作している仮想計算機を識別するために使用する情報となる仮想計算機IDレジスタ3とプログラムカウンタ4(これらが本発明の仮想計算機を識別する手段に相当)とを有している。
実行仮想計算機IDレジスタ3には、実行中の仮想計算機を識別するIDが、仮想計算機モニタによって設定される。
ここで、PMU5は、CPUの性能指標となる情報をバンク6に蓄積する。ここで、性能指標となる情報とは、例えば、実行命令数である。バンク6は、例えば、プロセッサコア1内のレジスタセットによって構成される。PMU5は、複数のバンク6を有するので、PMUセットとも呼ばれる。
図2に、PMU5の1つのバンク6の構成例を示す。1つのバンク6は、図2に示す通り一般的に、性能イベントのカウンタレジスタ(カウントレジスタを個々に呼ぶ場合には、カウントレジスタ8−1、8−2、8−Nのように呼ぶ)8と設定レジスタ(設定レジスタを個々に呼ぶ場合には、設定レジスタ7−1、7−2、7−Nのように呼ぶ)7との1個以上の対で構成されている。設定レジスタ7とカウンタレジスタ8の対が本発明の計数器に相当にする。
ここで、設定レジスタ7には、収集すべき情報の種類(実行命令数等)を指定する。カウントレジスタ8には、設定レジスタ7で指定された情報が積算される。例えば、設定レジスタ7−1の設定値に応じて、プログラムカウンタ4への更新信号を抽出し、その更新信号トリガとして、カウンタレジスタ8−1をインクリメントする論理回路を構成すればよい。
本計算機システムの特徴は、このPMU5を複数バンク設けて、実行中の仮想計算機に応じて有効ユニット切替器2により、使用するPMU5のバンク6を選択動作させるところにある。
次に、図1の構成による動作例を説明する。以下は一連の流れであるが、便宜上4つの部分に区切って説明する。
[処理例1−1]
まず、図1に示すプロセッサコア1上でN個の仮想計算機が動作しているとする。今、各仮想計算機には識別IDとして#1〜#Nが割り振られているとする。そのうち、現在動作中の仮想計算機を#2とすると、仮想計算機IDレジスタ3には「2」という値が保持されていることになる。
仮想計算機IDレジスタ3への値設定(書込み)は、例えば、仮想計算機が切り替わるときに、仮想計算機モニタが行う。ただし、個々のOSが切り替え時に仮想計算機IDレジスタ3への値を設定するようにしてもよい。
今、仮想計算機IDレジスタ3の保持値が「2」なので、有効ユニット切替器2は有効なPMUセットをBANK#2に切替える。
[処理例1−2]
次に、この状態で仮想計算機#2からパフォーマンスモニタを使った性能測定を行うとする。例えば、実行命令数を測定しようとする。そこで、仮想計算機#2の上で実行される性能測定プログラムがPMU5の設定レジスタ7−1に実行命令数イベントの設定を行い、カウントを開始させるとする。例えば、設定レジスタ7−1の値に応じて、所定のスイッチがオンとなるように構成し、プログラムカウンタ4に入力される更新信号を抽出すればよい。この更新信号から1パルスを発生させ、カウンタレジスタ8−1をインクリメントするようにすればよい。
この場合、測定プログラムは仮想計算機であることは全く意識しない。したがって、プログラマは、従来通りのPMUプログラミングを行うだけである。しかし、ハードウェア上ではPMU5のバンク6−2の設定レジスタ7−1とカウンタレジスタ8−1が使用さ
れることになる。すなわち、仮想計算機#2が動作している限りPMU5のバンク6−2のカウンタレジスタ8−1で仮想計算機#2の実行命令数が計測され続けることになる。
[処理例1−3]
ここで、一旦仮想計算機が#3に切り替わったとすると、先の[処理例1−1]の動作例にしたがって、有効ユニット切替器2により動作可能なPMU5がバンク6−2からバンク6−3に切り替わる。
そうすると、PMU5のバンク6−2によるイベント計測は一旦停止状態となる。このようにして、IDが#2以外の仮想計算機が動作している間は、設定レジスタ7の値やカウンタレジスタ8の値は保持しつつも、PMU5のバンク6−2による実行命令数の計測は一時停止状態となる。
[処理例1−4]
そして再び仮想計算機#2の実行が再開されると、PMU5は再びバンク6−2に切り替わり、バンク6−2の設定レジスタ7−1のイベント設定に基づき、バンク6−2のカウンタレジスタ8−1による実行命令数の計測が再開される。ここでは、設定レジスタ7−1への設定とカウンタレジスタ8−1での計測とによって実行命令数を計測する例を示すが、他の設定レジスタ7−2、7−3等と、他のカウンタレジスタ8−2、8−3等との組み合わせを用いて、他の性能指標を並行して計測することもできる。
最後に、仮想計算機#2の測定プログラムが測定を停止することにより、PMU5のバンク6−2のカウンタレジスタ8−1の計測が停止する。このとき、仮想計算機のIDに対応するバンク6−2のカウンタレジスタ8−1に計測されているカウント値は仮想計算機#2の実行時のみの実行命令数となる。また、以上より測定プログラムからは、全く仮想計算機環境を意識する必要がないことも分かる。
以上述べたように、本実施形態の計算機システムは、プロセッサコア1上で、複数のOSを切り替えて起動することによって、そのOSに対応する複数の仮想計算機として機能する。
そして、現在機能中の仮想計算機IDが仮想計算機IDレジスタ3に保持され、かつ、仮想計算機IDレジスタ3が有効ユニット切替器2を制御し、現在動作している仮想計算機における実行命令数がPMU5の中の仮想計算機IDで識別されるバンク6にて計測される。
したがって、本計算機システムが、次々に仮想計算機を切り替えても、オーバーヘッドを増加させることなく、それぞれの仮想計算機の実行命令数が計測されることになる。
<第2実施形態>
さらに図3を使用して、本発明の第2実施形態を示す。本実施形態では、図3に示すように、第1実施形態の構成に加えて、有効ユニット切替器2の動作自体の有効・無効を制御する切替有効・無効制御部9(本発明の有効・無効を制御する手段に相当)が設けられている。切替有効・無効制御部9への設定と、切替有効・無効制御部9による有効ユニット切替器2の制御もまたハードウェア(論理回路)で構成できる。例えば、有効・無効を保持するフリップフロップと、ANDゲートとによって構成できる。ANDゲートによって、仮想計算機IDレジスタ3から有効ユニット切替器2への接続をオンまたはオフにすればよい。また、複数のANDゲートを含む選択回路によって、有効ユニット切替器2の出力を1つのバンクに固定してもよい。
上記[処理例1−2]において、測定プログラムが設定レジスタ7に対するイベント設定と同時に、有効ユニット切替器2を「Disable」(切替無効)に設定したとする(なお、Enableの場合は上記の[処理例1−1」から[処理例1−3]までの動作と同様となる)。このようなこのような有効ユニット切替器2の有効・無効の値の設定部(例えば、フリップフロップの入力端子)が本発明の有効・無効の設定を受け付ける手段に相当する。
この場合には、[処理例1−3]のように仮想計算機IDが#3に切り替わっても、有効なPMU5のバンク6は切り替わらない。すなわち、実行中の仮想計算機の種類に関わらず、引き続きPMU5のバンク6−2が動作可能のままとなり、仮想計算機#3の実行命令数もそのままPMU5のバンク6−2のカウンタレジスタ8−1に追加して計数されることとなる。
このように、このカウンタレジスタ8−1では、動作する仮想計算機の種類に関わりなく該当イベントをカウントし続けることとなり、その結果、計算機システム全体としての実行命令数(これを実計算機の実行命令数という)が仮想計算機上からも計測可能となる。カウンタレジスタ8−2以下による計測も同様である。
以上説明したような切替有効・無効制御部9に対する設定は、設定プログラムがユーザ操作を受け付けて実行してもよい。例えば、設定プログラムのユーザインターフェースが、ユーザ操作を受け付けて、切替有効・無効制御部9を有効または無効に設定すればよい。また、例えば、計算機システムのシステムパラメータの設定にしたがって、仮想計算機モニタが切替有効・無効制御部9を有効または無効に設定してもよい。システムパラメータの設定は、一般的には、計算機システムに用意されている。このようなユーザインターフェース、または、システムパラメータの設定手段を本発明の有効・無効の設定を受け付ける手段とすることもできる。
<第3実施形態>
ここでは図4を使用して第3実施形態を示す。本実施形態では、仮想計算機の切り替え時に、その時点のPMU5の内容(コンテキストと呼ぶ)を自動退避・復元する計算機システムを説明する。
図4に示すように、本計算機システムでは、第1実施形態の場合と異なり、PMU5は1セットのバンクからなっている。一方、本計算機システムは、第1実施形態(図1)の構成に加えて、プロセッサコア1内にPMU自動待避・復元装置10と、PMU自動待避・復元装置10(本発明の保存制御手段および復元制御手段に相当)に仮想計算機の切替タイミングを通知する仮想計算機の切替トリガ通知手段12を有している。また、本計算機システムは、プロセッサコア1の外部の記憶装置11(本発明の保存手段に相当)に、「PMUコンテキスト保存エリア」が設けられている。本実施形態の他の構成および作用は、第1実施形態、第2実施形態の場合と同様である。そこで、必要に応じて、図1から図3の図面を参照する。
本計算機システムの特徴は、複数のPMUコンテキストを保存するPMUコンテキスト保存エリアを記憶装置11上に設けて、仮想計算機の切替信号をトリガとして、PMUコンテキストの退避・復元を行うことにある。
ここで、記憶装置11は、例えば、コンピュータの主記憶装置である。また、PMUコンテキスト保存エリアは、それぞれ、図2に示した設定レジスタ7とカウンタレジスタ8の値を格納するメモリ領域に相当する。
次に図4による動作例を説明する。
[処理例3−1]
まず、図4に示すプロセッサコア1上でN個の仮想計算機が動作しているとする。このとき、各仮想計算機には識別IDとして#1〜#Nが割り振られているとする。
この状態で仮想計算機#2からパフォーマンスモニタ機能を使った性能測定を行うとする。例えば、実行命令数を測定しようとする。そこで、仮想計算機#2上で性能測定プログラムがPMU5の設定レジスタ7−1に実行命令数イベントの設定を行い、カウントレジスタ8−1を用いてカウントを開始させるとする。
この場合、測定プログラムは仮想計算機であることは全く意識しない。したがって、プログラマは、従来通りのPMUプログラミングを行うだけである。そしてハードウェア上でも従来通りに1セットのみ存在するPMU5の設定レジスタ7−1とカウンタレジスタ8−1が使用されることになる(図2参照)。
[処理例3−2]
ここで、一旦仮想計算機が#3に切り替わるとすると、切替トリガ通知手段12(本発明の仮想計算機の切替を検知する手段に相当)から、切替信号がトリガとしてPMU自動退避・復元装置10に通知される。PMU自動退避・復元装置10がその切替通知をトリガとして受け取り、まず現在のPMUコンテキストを記憶装置11内のPMUコンテキストの保存エリアの1つであるVM#2用エリアに保存する。
なお、仮想計算機の切替通知の例としては、図1で示した様な仮想計算機IDレジスタ3が書き換えられたとき、プログラムカウンタ4の値が異なる仮想計算機の実行アドレス範囲に移ったとき、または、ページテーブルが異なる仮想計算機のものに変わったときなどが挙げられる。これらの状態の変化は、仮想計算機モニタが検知してもよい。その場合には、仮想計算機モニタが切替トリガ通知手段12として機能し、PMU自動待避・復元装置10にトリガを通知すればよい。
また、プロセッサコア1内に、これらの状態を検知する専用のハードウェア(論理回路)を設けてもよい。例えば、仮想計算機IDレジスタ3の値の変化、または、ページテーブルを識別するレジスタの値の変化を検知する比較器を設ければよい。また、プログラムカウンタ4の値と、特定のアドレス値(仮想計算機に対応する実行アドレスの境界値)とを比較する比較器を設ければよい。そして、いずれかの比較器から出力があった場合に、切替トリガ通知手段12からトリガを通知するようにすればよい。
次に、PMU自動退避・復元装置10は、記憶装置11内のVM#3用エリアからPMUコンテキストを抽出し、PMU5にコピーする。この処理により、PMU5の設定が仮想計算機#3に対応するものに復元される。そして、仮想計算機#2で測定していた実行命令数イベントの計測は一旦停止状態となる。
このようにして、#2以外の仮想計算機が動作している間は、設定レジスタ7の値やカウンタレジスタ8の値は記憶装置上に保存されたまま、仮想計算機#2による実行命令数の計測は一時停止状態となる。
[処理例3−3]
そして再び仮想計算機#2に切り替わるとき、今度は、VM#2用エリアからPMUコンテキストが復元され、設定レジスタ7−1のイベント設定に基づき、カウンタレジスタ8−1による実行命令数の計測も再開される。
最後に、仮想計算機#2の測定プログラムが測定を停止することにより(例えば、所定のゲートを遮断する)、バンク6−2のカウンタレジスタ8−1の計測が停止する。そして、カウントレジスタ8−1に計測されているカウント値は仮想計算機#2の実行時のみの実行命令数となる。
また、以上より測定プログラムからは全く仮想計算機環境を意識する必要がないことも分かる。
<第4実施形態>
さらに図5を使用して、本発明の第4実施形態を示す。本実施形態では、PMU自動退避・復元装置10の動作の有効・無効の制御が可能な計算機システムを示す。図5に示すように、本実施形態では、PMU自動退避・復元装置10の有効・無効を制御する切替有効・無効制御部9A(本発明の保存制御手段と復元手段とにおける動作の有効・無効を制御する手段に相当)が設けられている。
この場合も、切替有効・無効制御部9Aへの設定と、切替有効・無効制御部9AによるPMU自動退避・復元装置10の動作の有効・無効の制御もまたハードウェア(論理回路)で構成できる。例えば、有効・無効を保持するフリップフロップと、ANDゲートとによって構成できる。ANDゲートによって、切替トリガ通知手段12からPMU自動退避・復元装置10への通知をオンまたはオフにすればよい。
ここでは、上記[処理例3−1]において、測定プログラムがイベント設定と同時に、PMU自動退避・復元装置を「Disable」(切替無効)に設定したとする(なお、切替有効の場合は上記の第3実施形態の動作と同様である)。
この場合、仮想計算機が#3に切り替わっても、PMUコンテキストの退避・復元は行われず、引き続き、仮想計算機#3の実行命令数もそのままPMU5のカウンタレジスタ8−1に追加して計数されることとなる。
このように同カウンタレジスタ8−1では仮想計算機に関係なく該当イベントをカウントし続けることとなり、その結果、計算機システム全体としての実行命令数(すなわち、実計算機の実行命令数)が仮想計算機上からも計測可能となる。
<第5実施形態>
ここでは図6を使用して本発明の第5実施形態を示す。図6は、図3のユニット切替方式と図5のPMU退避復元方式の混合方式を表している。
本実施形態で、第1実施形態から第4実施形態の場合と異なる構成要素について簡単に説明する。
まず、有効ユニット切替器2からPMU自動退避・復元装置10に送信されている切替有効・無効の信号線13が、PMU5の枯渇時に有効ユニット切替器2からPMU自動退避復元装置10に動作依頼を通知する信号となる。ここで、PMU5の枯渇とは、PMU5のすべてのバンク6が異なる仮想計算機のパフォーマンスモニタ機能に使用されている状態をいう。上記切替有効・無効の信号線13がEnable(切替有効)の場合のみ、すなわち動作依頼が出ている間のみ、PMU自動退避・復元装置10は作動する。
以下、本実施形態では、PMU5の複数のバンク6について、有効ユニット切替器2用のPMU5の複数のバンク6(例えば、バンク6−1、6−2)とPMU自動退避・復元
装置10が使用するPMU5のバンク6−Xを完全に分けて使用する例を説明する。具体的には、仮想計算機#1と#2はそれぞれ専用のPMU5のバンク6−1、6−2を持ち、ユニット切替方式で切り替えて測定が実行される。
一方、仮想計算機が#3以上構成された場合、IDが#3以上の仮想計算機に対しては、PMU5のバンク6−Xを使って、PMUコンテキスト退避・復元方式で測定が行われることとなる。図6では、本実施形態でのPMUコンテキスト保存エリアは仮想計算機#3以上のみ対応として図示してある。ただし、3以上のバンクをユニット切替方式で切り替えてもよい。次に図6による動作例を説明する。
[処理例5−1]
まず、図6に示すプロセッサコア1上でN個の仮想計算機が動作しているとする。そのうち、現在動作中の仮想計算機を#2とすると、[処理例1−1]の動作例にしたがって、有効ユニット切替器2は有効なPMU5をバンク6−2に切り替えている状態となる。
[処理例5−2]
次に、この状態で仮想計算機#2からパフォーマンスモニタ機能を使った性能測定を行うとする。例えば、実行命令数の測定を開始したとする。すると、[処理例1−2]で述べた様に、PMU5のバンク6−2の設定レジスタ7−1とカウンタレジスタ8−1が使用されることになる。
[例5−3]
ここで、一旦仮想計算機が#3に切り替わるとする(仮想計算機IDレジスタ3の設定値が例えば仮想計算機モニタによって変更される)。ところが本実施例では仮想計算機#3用のPMU5のバンク6は用意されていない。
そこで、ユニット切替器2は、PMU5のバンク6−1、6−2の切替を停止する(仮想計算機IDレジスタ3、および有効ユニット切替器2が本発明の無効に設定する手段に相当する。また、仮想計算機IDレジスタ3が本発明の仮想計算機の切替を検知する手段に相当する)。そして、ユニット切替器2は、PMU自動退避・復元装置10への動作依頼信号をEnable(切替有効)にし、PMU5をバンク6−Xに切り替える。これにより、動作依頼を受信し、動作が可能となったPMU退避・復元装置10は、VM#3用エリアからPMUコンテキストをBANK#Xに復元コピーする。
さらに今度は、仮想計算機#4に切り替わるとすると、仮想計算機#4用のPMU5のバンクも用意されていないので、ユニット切替器2はPMU自動退避・復元装置へ引き続き動作依頼信号をEnableとしたままで、有効なPMU5もバンク6−Xのままとする。
PMU自動退避・復元装置10は仮想計算機IDレジスタ3からの切替トリガを受け、まず現在のPMUコンテキストを図3のVM#3用エリアに保存する。そしてVM#4用エリアからPMUコンテキストをバンク6−Xに復元コピーする。
その後、また仮想計算機#2に切り替わるとすると、やはりまずPMU自動退避・復元装置10は切替トリガを受け、まず現在のPMUコンテキストをVM#4用エリアに保存する。
ところが今度は#2専用のPMU BANKがあるので、ユニット切替器2はPMU自動退避・復元装置10への動作依頼信号をDisable(切替不能)に変更し、PMU5をバンク6−2に切り替える。
Disableを受信したPMU自動退避・復元装置10はPMUコンテキストの退避だけ完了して、復元動作は行わず(行えない)動作を停止する。
以上より、本実施形態でも、第1実施形態から第4実施形態と同様、測定プログラムからは全く仮想計算機環境を意識する必要なく、仮想計算機単位の性能測定が可能となることが分かる。
また、本実施例でも、図6に示した動作有効・無効制御部9Bに対する設定によってユニット切替器2とPMU自動退避・復元装置10を「Disable」に設定することにより、実計算機システム全体の性能測定も仮想計算機上から可能となる。以上のようなユニット切替器2、あるいは、PMU自動退避・復元装置10は、ハードウェア(論理回路)で実現することができる。また、動作有効・無効制御部9Bの構成・および作用は、図5で説明した切替有効・無効制御部9Aの構成と同様である。ただし、図6に示しように、動作有効・無効制御部9Bは、ユニット切替器2、および、PMU自動退避・復元装置10の双方について、それらの動作の有効・無効を制御する。
<実施形態の効果>
本計算機システムにより、カウンタ単位ではなくPMU単位での、ハードウェアによるパフォーマンスモニタの仮想化が可能となる。
これによりまず、使用するパフォーマンスモニタを、実行仮想計算機に対応したものにハードウェアが自動的に切り替えてくれるので、「仮想計算機単位の性能測定」が可能となると同時に、測定結果が「より高精度」になる効果が期待される。
また、切替がPMU単位であることから、性能測定プログラムなどソフトウェア側からは「仮想計算機を意識する必要がない」という効果も得られ、さらにその結果、「従来通りの測定方法や既存の性能ツールをそのまま流用」しても、対象となる仮想計算機だけの性能測定や評価が可能となる。
本計算機システムにより、仮想計算機単位の測定をソフトウェアから無効にすることもできる。それにより、測定プログラムから測定対象を、仮想計算機単位か計算機システム全体とするか、実計算機単位とするかが選択可能となる。すなわち、「実計算機システムの性能監視」も仮想計算機上から可能となる。
また、第5実施形態の本計算機システムにより、記憶装置11のPMUコンテキスト保存エリアの使用エリア数を増減することで、仮想化対応可能なPMU5の個数を動的に変動させることができる。よって、仮想計算機の生成消滅による増減にもより柔軟に対応可能となる。その結果、性能測定可能な仮想計算機の「個数制限をなくす」効果が得られる。
<その他>
本実施形態は、以下の態様(付記という)を含む。なお、以下の付記を組み合わせて実施形態の態様としてもよい。
(付記1)
計算機システムの性能指標を計数する複数の計数器を備え、1個以上の仮想計算機がその上で切り替え動作している計算機システムが、
現在動作している仮想計算機を識別するステップと、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替ステップとを実行し、
前記切替ステップにおいて計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記計数動作中に計数された計数結果を保持することを特徴とする計算機システムの性能モニタ方法。(5、図1、図2)
(付記2)
前記計算機システムが、前記切替ステップでの切替動作の有効・無効の指示の設定を受け付けるステップと、
前記切替動作の有効・無効を制御するステップと、を実行し、
前記切替動作が無効の場合に、前記計算機の種類によらず継続して単一の計数器を動作させることを特徴とする付記1に記載の計算機システムの性能モニタ方法。(図3)
(付記3)
計算機システムの性能指標を計数する計数器と前記計数器の計数結果を保存する保存手段とを備える計算機システムが、
その計算機システム上で動作する仮想計算機の切替を検知するステップと、
前記切替検知をトリガとして、現在動作している仮想計算機に対する計数結果を前記保存手段に保存する保存ステップと、
前記切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を前記保存手段から前記計数器に復元する復元ステップと、を実行することを特徴とする計算機システムの性能モニタ方法。(図4)
(付記4)
前記保存ステップと復元ステップとにおける動作の有効・無効を設定するステップをさらに実行し、
前記動作が無効の場合には、計算機の種類によらず継続して計数器を動作させることを特徴とする付記3に記載の計算機システムの性能モニタ方法。(図5)
(付記5)
計算機システムの性能指標を計数する複数の計数器と前記計数器の計数結果を保存する保存手段とを備える計算機システムが、
その計算機システム上で現在動作している仮想計算機を識別するステップと、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替ステップとを実行し、
前記切替ステップにおいて計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記動作中に計数された計数結果を保持するとともに、
前記計算機の種類に対応して決定される計数器の数が不足した場合に前記切替手段による切替動作を無効に設定するステップと、
動作している仮想計算機の切替を検知するステップと、
前記切替動作が無効に設定されているときに、前記切替検知をトリガとして、現在動作している仮想計算機に対するすでに計数済みの計数結果を前記保存手段に保存する保存ステップと、
前記切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を前記保存手段から前記計数器に復元する復元ステップと、を実行することを特徴とする計算機システムの性能モニタ方法。(図6)
(付記6)
仮想計算機をその上で実行中の計算機システムにおいて、
前記計算機システムの性能指標を計数する複数の計数器と、
現在動作している仮想計算機を識別する手段と、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替手段と、を備え、
前記切替手段によって、計数動作が許可された計数器は前記性能指標を計数するとともに、計数動作が許可されていない計数器は前記計数動作中に計数された計数結果を保持す
ることを特徴とする計算機システム。(1、図1、図2)
(付記7)
前記切替手段の切替動作の有効・無効の指示の設定を受け付ける手段と、
前記切替動作の有効・無効を制御する手段と、をさらに備え、
前記切替動作が無効の場合に、前記計算機の種類によらず継続して単一の計数器を動作させることを特徴とする付記6に記載の計算機システム。(2、図3)
(付記8)
仮想計算機をその上で実行中の計算機システムにおいて、
前記計算機システムの性能指標を計数する計数器と、
前記計数器の計数結果を保存する保存手段と、
その計算機システム上で動作する仮想計算機の切替を検知する手段と、
前記切替検知をトリガとして、現在動作している仮想計算機に対する計数結果を前記保存手段に保存する保存制御手段と、
前記切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を前記保存手段から前記計数器に復元する復元手段と、を備えることを特徴とする計算機システム。(3、図4)
(付記9)
前記保存制御手段と復元手段とにおける動作の有効・無効を設定する手段をさらに備え、
前記動作が無効の場合には、計算機の種類によらず継続して計数器を動作させることを特徴とする付記8に記載の計算機システム。(図5)
(付記10)
仮想計算機をその上で実行中の計算機システムにおいて、
計算機システムの性能指標を計数する複数の計数器と、
前記計数器の計数結果を保存する保存手段と、
その計算機システム上で現在動作している仮想計算機を識別する手段と、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替手段と、を備え
前記切替手段によって計数動作が許可された計数器は前記性能指標を計数するとともに、計数動作が許可されていない計数器は前記動作中に計数された計数結果を保持し、
前記計算機の種類に対応して決定される計数器の数が不足した場合に前記切替手段による切替動作を無効に設定する手段と、
その計算機システム上で動作する仮想計算機の切替を検知する手段と、
前記切替動作が無効に設定されているときに、仮想計算機の切替検知をトリガとして、現在動作している仮想計算機に対するすでに計数済みの計数結果を前記保存手段に保存する保存制御手段と、
前記切替によって動作する仮想計算機に対するすでに計数済みの計数結果を前記保存手段から前記計数器に復元する復元制御手段と、をさらに備えることを特徴とする計算機システム。(4、図6)
第1実施形態に係る計算機システムのプロセッサコアの機能を示す図である。 バンクの構成例を示す図である。 第2実施形態に係る計算機システムのプロセッサコアの機能を示す図である。 第3実施形態に係る計算機システムのプロセッサコアの機能を示す図である。 第4実施形態に係る計算機システムのプロセッサコアの機能を示す図である。 第5実施形態に係る計算機システムのプロセッサコアの機能を示す図である。
符号の説明
1 プロセッサコア
2 有効ユニット切替器
3 仮想計算機IDレジスタ
4 プログラムカウンタ
5 PMU
6 バンク
7 設定レジスタ
8 カウンタレジスタ
9、9A 切替有効・無効制御部
12 切替トリガ通知手段
13 切替有効・無効の信号線

Claims (4)

  1. 実行させる仮想計算機を複数の仮想計算機間で切替可能な計算機システムにおいて、
    前記計算機システムの性能指標を計数する複数の計数器と、
    仮想計算機の切替の後に動作させる仮想計算機に対応した計数器に動作させる計数器を切り替える切替手段と、を備え、
    前記動作させる計数器は、前記切替後に動作させる仮想計算機についての性能指標を計数するとともに、前記切替手段による切替前まで動作していた計数器は前記計数動作中に計数した前記切替前の仮想計算機についての計数結果を前記切替前まで動作していた計数器に保持することを特徴とする計算機システム。
  2. 前記切替手段の切替動作の有効・無効の指示の設定を受け付ける手段と、
    前記切替動作の有効・無効を制御する手段と、をさらに備え、
    前記切替動作が無効の場合に、前記仮想計算機の種類によらず継続して単一の計数器を動作させることを特徴とする請求項1に記載の計算機システム。
  3. 実行させる仮想計算機を複数の仮想計算機間で切替可能な計算機システムにおいて、
    前記計算機システムの性能指標を計数する複数の計数器と、
    前記計数器の計数結果を保存する保存手段と、
    仮想計算機の切替の後に動作させる仮想計算機に対応した計数器に動作させる計数器を切り替える切替手段と、を備え
    前記動作させる計数器は、前記切替後に動作させる仮想計算機についての性能指標を計数するとともに、前記切替手段による切替前まで動作していた計数器は前記動作中に計数した前記切替前の仮想計算機についての計数結果を前記切替前まで動作していた計数器に保持し、
    前記仮想計算機の種類に対応した計数器の数が不足した場合に前記切替手段による計数器の切替動作を無効に設定する手段と、
    その計算機システム上で動作する仮想計算機の切替を検知する手段と、
    前記計数器の切替動作が無効に設定されているときに、前記仮想計算機の切替検知をトリガとして、切替前に動作していた仮想計算機に対するすでに計数済みの計数結果を前記
    保存手段に保存する保存制御手段と、
    前記切替によって動作させる仮想計算機に対するすでに計数済みの計数結果を前記保存手段から前記計数器に復元する復元制御手段と、をさらに備えることを特徴とする計算機システム。
  4. 計算機システムの性能指標を計数する複数の計数器を備え、実行させる仮想計算機を複数の仮想計算機間で切替可能な計算機システムが、
    仮想計算機の切替の後に動作させる仮想計算機に対応した計数器に動作させる計数器を切り替える切替ステップとを実行し、
    前記切替ステップにおいて動作させる計数器は、前記切替後に動作させる仮想計算機についての性能指標を計数するとともに、前記切替ステップによる切替前まで動作していた計数器は、前記計数動作中に計数した前記切替前の仮想計算機についての計数結果を前記切替前まで動作していた計数器に保持することを特徴とする計算機システムの性能モニタ方法。
JP2006315820A 2006-11-22 2006-11-22 仮想計算機の性能モニタ方法および計算機システム Expired - Fee Related JP4973149B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006315820A JP4973149B2 (ja) 2006-11-22 2006-11-22 仮想計算機の性能モニタ方法および計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006315820A JP4973149B2 (ja) 2006-11-22 2006-11-22 仮想計算機の性能モニタ方法および計算機システム

Publications (2)

Publication Number Publication Date
JP2008129931A JP2008129931A (ja) 2008-06-05
JP4973149B2 true JP4973149B2 (ja) 2012-07-11

Family

ID=39555669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006315820A Expired - Fee Related JP4973149B2 (ja) 2006-11-22 2006-11-22 仮想計算機の性能モニタ方法および計算機システム

Country Status (1)

Country Link
JP (1) JP4973149B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760302B2 (en) 2014-10-03 2017-09-12 International Business Machines Corporation Servicing multiple counters based on a single access check

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0833851B2 (ja) * 1986-03-15 1996-03-29 株式会社日立製作所 仮想計算機のモニタリング方式

Also Published As

Publication number Publication date
JP2008129931A (ja) 2008-06-05

Similar Documents

Publication Publication Date Title
US7788664B1 (en) Method of virtualizing counter in computer system
US8443175B2 (en) Microprocessor with first processor for debugging second processor
US8245199B2 (en) Selectively marking and executing instrumentation code
JP5551269B2 (ja) 無制限トランザクショナル・メモリ(utm)モードでのオペレーティング・システム(os)トランザクションの処理
US7814466B2 (en) Method and apparatus for graphically marking instructions for instrumentation with hardware assistance
CN108475236B (zh) 测量地址转换延迟
JP5353227B2 (ja) 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
US20060242389A1 (en) Job level control of simultaneous multi-threading functionality in a processor
US20070260849A1 (en) Method and apparatus for executing instrumentation code using a target processor
US20070261032A1 (en) Method and apparatus for hardware assisted profiling of code
JP2008518367A (ja) 仮想マシン環境におけるタイマ・オフセット機構
CN101452423A (zh) 控制硬件加速器内数据值的清除
US8286192B2 (en) Kernel subsystem for handling performance counters and events
US7865703B2 (en) Method and apparatus for executing instrumentation code within alternative processor resources
EP3123318A1 (en) Idle time accumulation in a multithreading computer system
US10613895B2 (en) Virtualization of storage buffers used by asynchronous processes
US8209681B1 (en) Method of sampling hardware events in computer system
Inam et al. Bandwidth measurement using performance counters for predictable multicore software
US7783866B2 (en) Method and apparatus for executing instrumentation code using processor instructions
JP4973149B2 (ja) 仮想計算機の性能モニタ方法および計算機システム
Becker et al. Measuring software performance on linux
US7490206B2 (en) Method and structure for low memory relocation for dynamic memory reconfiguration
JP2015166952A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
Larysch Fine-grained estimation of memory bandwidth utilization
Cui et al. A virtual machine replay system based on para-virtualized Xen

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120223

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120326

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees