計算機システム及び計算機システムにおける統計情報取得方法
【課題】仮想計算機における統計処理を最小のO/Hで実行し、かつ取得した統計情報をユーザが自由に加工・出力する機能を提供する。
【解決手段】RAS機能の1つであるトレース機能により、トレースバッファに仮想化イベントに関する情報が記録されることを利用し、エミュレーション処理とは別プロセスでトレースバッファを監視して、トレースバッファにおける情報を基に統計処理を行う。また、ハイパバイザ内で採取した統計情報をゲストOS上でユーザが自由に加工・出力できるインターフェイスを備える。
【解決手段】RAS機能の1つであるトレース機能により、トレースバッファに仮想化イベントに関する情報が記録されることを利用し、エミュレーション処理とは別プロセスでトレースバッファを監視して、トレースバッファにおける情報を基に統計処理を行う。また、ハイパバイザ内で採取した統計情報をゲストOS上でユーザが自由に加工・出力できるインターフェイスを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想計算機システムに関し、統計情報を取得する技術に関する。
【背景技術】
【0002】
近年、サーバ台数の増加と共に、運用に関する複雑さが増加し、運用コストが問題化している。そのような状況の中、運用コストを低減する技術の一つとして、複数サーバを1台にまとめるサーバ統合が注目を集めている。サーバ統合を実現する技術として、一つのコンピュータを任意の割合で論理的に分割する仮想計算機技術が知られている。
【0003】
仮想計算機技術では、例えば、ハイパバイザなどのファームウェア(またはミドルウェア)が、物理計算機を複数の論理区画(LPAR:Logical PARtition)に分割し、各LPARに対して計算機資源(CPU、主記憶、I/O)を割り当て、各LPAR上でそれぞれOSを動作させる。あるいは、一つのサーバ上で一つのホストOS(物理計算機を直接使用するOS)を実行し、このホストOS上稼動するハイパバイザが同様の分割処理を行って、複数のゲストOS(ホストOS上で稼動するOS)を稼動させる。仮想計算機技術は、従来複数のサーバで稼動していたOS及びOS上で稼動するプログラムを1台のサーバで稼動させることを可能にしており、サーバ統合を実現している。
【0004】
上記サーバ統合を実現させる上で、仮想化技術における重要な点はいくつかあるが、特に性能面が重要である。すなわち、論理サーバにおける性能が物理サーバにおける性能と比較して、大幅な性能劣化が発生しないことが求められる。したがって、仮にそのような性能劣化が発生した場合には、対策を行う必要があり、そのための手段として統計処理を行う。具体的には、統計処理を行うことにより、以下の2点の目的に役立つ。
【0005】
第1に、性能劣化の調査・改善の目的である。統計処理を行うことにより、どのような仮想化イベントが性能劣化の要因になったかを特定することが可能となる。それにより、性能劣化の原因を究明し、解決策を打ち出し、今後の性能改善へとつながっていく。第2に、運用の仕方・利用方法のチューニングを考える目的である。統計処理を行うことにより、実際の運用時(アプリケーション実行時)において、どのような仮想化イベントが数多く発生するかなどを知ることができる。それにより、性能問題となるアプリケーション・サービスの特定が可能となり、具体的には、統合するサーバの計画、アプリケーションにおけるパラメタの調整、負荷の調整等を考える上で役立つ。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平08-050556
【特許文献2】特開平05-061719
【特許文献3】特開平02-064833
【発明の概要】
【発明が解決しようとする課題】
【0007】
ハイパバイザ上で仮想計算機(LPAR1)が定義され、LPAR1上でゲストOS、及びゲストプログラムが起動し、ゲストプログラムに対して統計処理を行う場合を考える。
【0008】
ゲストプログラムの実行中、ハイパバイザの介入が必要な状況(特権命令や割り込み等)になると、ハイパバイザに処理が移行される。このようなイベントを仮想化イベントと呼ぶ。仮想化イベントに対して、ハイパバイザは必要な処理(特権命令エミュレーション等)を実行すると、ゲストに処理を戻す。そして、ゲストプログラムでは、次の命令が実行される。
【0009】
統計処理は、仮想化イベントが発生した際に、仮想化イベントに関する情報をハイパバイザ内で集計する処理である。従来の統計処理では、図1に示す通り、以下の(1)〜(4)の処理が行われる。
(1)ある命令で仮想化イベントが発生する。
(2)上記の仮想化イベントに対して、エミュレーション処理(51-A-1〜51-Z-1)を行う。
(3)仮想化イベントに関する情報を、ハイパバイザ(50)内で集計する(エミュレーション処理部(51)内の統計処理(51-A-3〜51-Z-3)により、統計テーブル(54)に統計情報が書き込まれた後、統計結果(300)が出力される。図1では、イベントA、イベントB、…、イベントZの発生回数がそれぞれ50、120、…、10という結果が得られる)。
(4)ゲストプログラムにおいて、次の命令が実行される。
【0010】
従来の統計処理では、ハイパバイザにおけるエミュレーション処理部内で、エミュレーション処理と統計処理の両方を行っている。したがって、エミュレーション処理と統計処理とを別プロセスで行うことは不可能である。その結果、統計処理を行うと、(3)によるO/Hが発生し、ゲストプログラムで次の命令が実行されるまでの時間が延びる。このようなレイテンシーの延びにより、性能劣化が発生し、ユーザプログラムの実行に影響を与える。
【0011】
また、性能測定などを行う際などには、同時に統計処理を行うと、統計処理による性能劣化の分が性能に影響を与えてしまい、正しい性能値を得ることができなくなってしまう。評価作業では、性能測定を行い、性能について調べ、そこから原因を特定するために統計情報を取得するというプロセスがよく行われるので、性能測定と統計情報の取得を同時に行えるようになれば、評価効率という点において、大きく改善されると考えられる。
【0012】
一方、ユーザサイドにおいては、上記における効率性に加えて、利便性についても考慮する必要がある。すなわち、「ユーザサイド(OS上)において、統計処理を行うことができる。」「ユーザサイド(OS上)において、統計情報を取得できる。」「ユーザサイド(OS上)において、得られた統計情報を加工できる。」「ユーザサイド(OS上)から、ネットワークで外部に結果を出力できる。」といったように、ユーザが状況に応じて、統計情報をゲストOS上で自由に加工・出力できる環境が準備されていることが重要である。
【0013】
そこで、本発明では、上記のような背景を踏まえ、評価効率の改善、及びユーザにおける利便性の向上を目的とし、最小のO/Hで統計処理を行うことができ、かつユーザが統計情報を自由に加工・出力できる仮想計算機上での統計情報取得システムを構築することを目的とする。
【課題を解決するための手段】
【0014】
従来の統計処理では、図1に示すように、ゲストOS上で起動しているゲストプログラムからの仮想化イベントに対してエミュレーション処理を行い、さらにそのエミュレーション処理と同プロセスで統計処理も行っている。この仕組みがO/Hを発生させる要因となるので、本発明では、エミュレーション処理と統計処理を独立させて、別プロセスで処理を行うような仕組みを構築する。
【0015】
上記の仕組みを構築するに当たり、本発明では、仮想化におけるRAS機能の1つであるトレース機能を利用する。トレース機能とは、障害などが発生した時のために、ハイパバイザ内のトレースバッファから必要に応じて情報を取り出せるようにする機能である。
【0016】
トレースバッファは、ハイパバイザに対して割り込んだ様々な仮想化イベントに関する情報について記憶している。このような情報を取得することにより、障害の原因究明に役立つ。本発明では、上記のトレース機能におけるトレース情報を別プロセスから読み込み、その情報を基に統計処理を行うことで統計情報を取得する。
【0017】
このような、統計処理を別プロセスで行う仕組みを構築する上で、物理CPUが余っているという条件が必要になる。すなわち、統計処理を行うために使用可能な物理CPUが存在する(ある物理CPUにおける処理能力に余裕がある、又は使用可能な物理CPU自体が他に存在する)ことが必須である。この点に関しては、近年、CPUが高性能・複数プロセッサになっている状況を踏まえると、特に問題はないと考える。
【0018】
また、上記で取得した統計情報をユーザが自由に加工・出力できるようにするために、本発明では、採取した統計情報をゲストOS上でユーザが自由に加工・出力するためのインターフェイスを提供する。そのようなインターフェイスを用いることによって、ハイパバイザ内の統計情報の取得、及び、加工・出力が可能となる。
【発明の効果】
【0019】
本発明では、エミュレーション処理とは別プロセスでトレースバッファを監視し統計処理を行うことで、統計処理におけるO/Hを最小にする。また、LPAR上からハイパバイザを操作できるインターフェイスを用意することで、上記で取得した統計情報をユーザが自由に加工・出力できる。
【図面の簡単な説明】
【0020】
【図1】統計処理におけるブロック図
【図2】物理サーバの構成図(前提技術)
【図3】論理サーバの構成図(前提技術)
【図4】トレース処理における構成図(前提技術)
【図5】トレース結果取得までの処理を示すブロック図(前提技術)
【図6】トレース処理の概要を示すフローチャート(前提技術)
【図7】本発明を適用した統計処理における構成図
【図8】本発明を適用したエミュレーション処理と統計処理を別プロセスで行うことを示すタイムシーケンス図
【図9】本発明を適用した統計結果取得までの処理を示すブロック図
【図10】本発明を適用した統計処理の概要を示すフローチャート
【図11】本発明を適用することにより、ユーザが統計処理部内の操作を行うことができる仕組みを示したブロック図
【図12】本発明を適用することにより、ユーザが統計情報を自由に加工・出力できる仕組みを示したブロック図
【図13】本発明を適用することにより、ライブラリを利用することによりユーザ作成結果編集プログラムが作成される過程を示したブロック図
【発明を実施するための形態】
【0021】
<1.前提技術>
以下、本発明を実施する上で必要となる前提技術を、添付図面(図2〜図6)に基づいて説明する。
【0022】
<1.1.サーバ>
以下、物理サーバ、及び論理サーバについて説明する。
【0023】
<1.1.1.物理サーバ>
図2は、物理サーバを示した図である。計算機システム(100)は、ハードウェア(1)とソフトウェア(2)で成り立つ。ハードウェア(1)は、物理プロセッサ(10)、及び物理メモリ(20)を備える。また、物理プロセッサ(10)はマルチプロセッサであり、CPU1(11)とCPU2(12)を備えている。ソフトウェア(2)は、ハードウェア(1)を用いて、OS(30)、及びアプリケーション(40)が起動する。
【0024】
<1.1.2.論理サーバ>
図3は、論理サーバを示した図である。計算機システム(100)は、ハードウェア(1)として、物理プロセッサ(10)、及び物理メモリ(20)を備える。また、物理プロセッサ(10)はマルチプロセッサであり、CPU1(11)とCPU2(12)を備えている。上記のハードウェア(1)を用いて、ハイパバイザ(50)が起動する。ハイパバイザ(50)は、物理サーバを複数の論理区間に分割し、各論理区間はLPAR1(60)、LPAR2(70)と定義される。各LPAR(60,70)においては、論理プロセッサ(61,71)、及び論理メモリ(62,72)が割り当てられ、ゲストOS(63,73)、及びゲストプログラム(64,74)が起動する。
【0025】
<1.2.トレース処理>
仮想化において、何か障害が発生した際などのために、トレース機能が備わっている。トレース機能とは、RAS機能の1つであり、障害が起こる直前の情報をハイパバイザ(50)が記憶する事により、障害の原因を解析するための機能である。そして、上記の情報を記憶するバッファを、トレースバッファ(52)と呼び、トレースバッファ(52)から出力される情報を、トレース、又はトレース結果(200)と呼ぶ。以下、トレースの概要(仕組み)について説明する。
【0026】
<1.2.1.全体図(トレース処理)>
図4は、トレースを採取するための全体構成図である。ハイパバイザ(50)上で、LPAR1(60)、及びLPAR2(70)が動作し、各LPAR(60,70)には論理プロセッサ(61,71)が割り当てられている。LPAR1(60)上では、ゲストOS(63)が動作し、その上でゲストプログラム(64)が動作している。
【0027】
ゲストプログラム(64)では、仮想化イベント(Inst_A(64-A) , Inst_B(64-B) , …)が発生し、ハイパバイザ(50)に対して割り込む。
【0028】
ハイパバイザ(50)では、それらの割り込みに対して、エミュレーション処理部(51)でエミュレーション処理(51-A〜51-Z)を行い、トレースバッファ(52)に仮想化イベントに関する情報が記憶された後、トレース結果(200)が出力(採取)される。
【0029】
また、CPU割り当て方法に関しては、エミュレーション処理部(51)内の各処理は同一プロセスで行われ、エミュレーション処理部(51)はCPU1(11)のみを使用している。
【0030】
<1.2.2.トレース結果出力までの流れ>
図5は、トレースを採取する仕組みを示した図である。ハイパバイザ(50)に対して仮想化イベントが割り込むと、エミュレーション処理部(51)が各仮想化イベントに対応した処理を行う(エミュレーション処理(51-A-1〜51-Z-1))。その処理の後、仮想化イベントに関する情報をトレースバッファ(52)に書き込む(イベント情報書き込み(51-A-2〜51-Z-2))。
【0031】
ここで、トレースバッファ(52)に書き込まれる仮想化イベントに関するイベント情報とは、仮想化イベントの発生した時刻、発生した仮想化イベントのイベントID、他データ(LPAR番号、CPU番号、アドレス、etc)等である。
【0032】
<1.2.3.フローチャート(トレース処理)>
図6は、エミュレーション処理部(51)で、Inst_A(64-A)のイベント情報をトレースバッファ(52)に書き込む場合の例であり、エミュレーション処理部(51)からトレースバッファ(52)に対して書き込み処理が行われる際の流れを示したフローチャート(51-A-2)である。
【0033】
最初に、ポインタ(入力)(52-1)として、p_in(52-1)を用意し、p_in(52-1)で指定されたエントリーにイベント情報を書き込む(51-A-2-1)。書き込む情報は、イベントに関する情報であり、時刻、イベントID、その他(CPU番号、LPAR番号、アドレス、etc)である。情報が書き込まれた後、ポインタ(入力)(52-1)は更新される(51-A-2-2)。ただし、最終エントリーとなっている場合は、先頭エントリーに戻る。
【0034】
<2.本発明>
以下、本発明の実施形態を、添付図面(図7〜図13)に基づいて説明する。
【0035】
<2.1.統計処理>
本発明では、仮想化におけるRAS情報(トレース情報)を利用し、エミュレーション処理とは別プロセスでトレースバッファ(52)を監視する事により、最小のO/Hで統計情報を取得する事ができる。以下では、上記における機能の詳細について説明する。
【0036】
<2.1.1.全体図(統計処理)>
図7は、本発明における全体構成図である。統計処理部(53)では、トレースバッファ(52)に書き込まれたイベント情報を利用する事により、統計テーブル(54)を作成し、統計結果(300)として作成した統計テーブル(54)を出力する。統計結果(300)としては、各イベントの発生回数を示したものが生成される。したがって、図7では、イベントA、イベントB、…、イベントZの発生回数がそれぞれ50、120、…、10という結果が得られる。
【0037】
<2.1.2.各処理の独立性(別プロセス)>
図8は、本発明におけるエミュレーション処理部(51)と統計処理部(53)が別プロセスで処理を行っている仕組みを示した図である。本発明では、1つのCPUではなく、複数のCPUを用意している。また、エミュレーション処理部(51)における処理と統計処理部(53)における処理が独立し、別プロセスで処理を行っている。したがって、エミュレーション処理部(51)は、CPU1(11)を使用しつつ、統計処理部(53)は、エミュレーション処理部(51)が使用していないCPU2(12)を統計処理部(53)で使用する。
【0038】
図8では、エミュレーション処理部(51)の処理(プロセス1)でCPU1(11)を使用し、統計処理部(53)の処理(プロセス2)でCPU2(12)を使用していることを示している。エミュレーション処理部にCPU1を割当て、統計処理部53にCPU2を割り当てる、という割り当て処理は、ハイパバイザにより実行される。また、トレースバッファ52、統計テーブル54には、物理メモリが割当てられている。
【0039】
<2.1.3.統計結果出力までの流れ>
図9に示すように、p_out(52-2)で指定されたアドレスにおけるイベント情報を統計処理部(53)が読み込み、統計処理部(53)はそのイベント情報に応じて、統計テーブル(54)を作成する。その後、必要に応じて、統計結果(300)として統計テーブル(54)が出力される。
【0040】
<2.1.4.フローチャート(統計処理)>
図10は、統計処理部(53)の処理内容を示したフローチャート(53)である。統計処理部(53)では、トレースバッファ(52)からイベント情報を読み込むために、ポインタ(出力) (52-2)として、p_out(52-2)を用意する。p_in(52-1)がp_out(52-2)よりも進んでいる場合、すなわち、読み込むデータが存在する場合に、統計処理部(53)はイベント情報をトレースバッファ(52)から読み込むので、p_in(52-1)とp_out(52-2)が等しい場合は何も処理を行わない(53-1)。p_in(52-1)とp_out(52-2)が異なるときに、トレースバッファ(52)のp_out(52-2)で指定されたエントリー内のイベント情報(イベントID)を読み込む(53-2)。その後、統計テーブル(54)において、上記のイベントIDの発生回数(Count)を1つ増やすことにより、統計テーブル(54)の更新を行う(53-2)。そして、p_out(52-2)を次エントリーに進める(53-3)。ただし、最終エントリーの場合は、先頭エントリーに戻る。
【0041】
従来の統計処理においては、LPAR1の統計情報を取得する場合、エミュレーション処理部(51)内で統計処理を行っていた。したがって、LPAR1(60)のレイテンシーが延び、O/Hが発生し、性能に影響を与えていた。
【0042】
これに対し、本発明においては、LPAR1(60)の統計情報を取得する上で、仮想化固有の機能である“RAS機能”を利用することで、LPAR1(60)のトレース情報からLPAR1(60)の統計情報を取得する。そして、ハイパバイザ50内に新たに統計処理部53を設け、統計処理部(53)内の処理におけるCPUと、エミュレーション処理部(51)内の処理におけるCPUとを別プロセスで動作させるので、各処理は独立している。これにより、LPAR1(60)のレイテンシーは変わることなく、O/Hも見かけ上0となり、性能にも影響を与えない。
【0043】
すなわち、本願発明によれば、ハイパバイザにおいて、エミュレーション処理とは別プロセスでトレースバッファを監視し統計処理を行うので、統計処理による性能劣化を最小にしつつ、仮想計算機における統計情報を取得することができる。
【0044】
<2.2.加工処理>
本発明では、最小のO/Hで統計結果を取得することができる。さて、ユーザが、得られた統計結果を自由に加工・出力できたら、ユーザにおける利便性は向上する。そこで、本発明では、上記のことを行うために、統計処理部における操作を、LPAR2(70)におけるゲストOS(73)上で、ユーザが自由に行うことができる。統計テーブル(54)内のデータを、LPAR2(70)におけるゲストOS(73)上で、ユーザが自由に加工・出力できる。というような機能を考える。そして、このような機能を実現するために、LPAR2(70)とハイパバイザ(50)をつなぐインターフェイスを準備する。以下では、上記における機能の詳細について説明する。
【0045】
<2.2.1.開始・終了>
図11は、インターフェイスが準備されていることにより、LPAR2(70)においてユーザが、ハイパバイザ(50)における統計処理部(53)内の操作を行うことができる仕組みを示した図である。主な処理の流れは、以下の通りである。
(1)“開始・終了”という入力指示(400)をLPAR2(70)に与える。
(2)LPAR2(70)において、“開始・終了”という入力の受付処理(75-1)を行う。
(3)LPAR2(70)において、ハイパバイザ(50)におけるハイパバイザ制御部(55)内の統計機能制御(55-1)を呼び出す(75-2)。
(4)ハイパバイザ(50)において、統計機能制御手段55-1が、“統計処理の開始・終了を行う”という指示を、統計処理部(53)に出す(55-1)。
【0046】
<2.2.2.更新処理>
図12は、インターフェイスが準備されていることにより、LPAR2(70)においてユーザが、ハイパバイザ(50)における統計テーブル(54)内のデータを自由に加工・出力することができる仕組みを示した図である。
【0047】
主な処理の流れは、以下の通りである。
(1)“更新”という入力指示(400)をLPAR2(70)に与える。
(2)LPAR2(70)において、“更新”という入力の受付処理(75-1)を行う。
(3)LPAR2(70)において、ハイパバイザ(50)におけるハイパバイザ制御部(55)内の統計機能制御(55-1)を呼び出す(75-3)。
(4)ハイパバイザ(50)において、“データをLPAR2(70)に送る”という指示を統計テーブル(54)に出す(55-1)。
(5)ハイパバイザ(50)において、統計機能制御手段55-1が、統計テーブル(54)内のデータをLPAR2(70)に送る。
(6)LPAR2(70)において、送られてきた統計テーブル(54)内のデータを、加工処理する(75-4)。
(7)LPAR2(70)において、加工処理されたデータを、統計結果(加工後)(500)として出力する(75-5)。
【0048】
<2.2.3.ユーザ作成結果編集プログラム作成方法>
統計処理を行うに当たり、LPAR2(70)からハイパバイザ制御部(55)内の統計機能制御(55-1)を呼び出すために、インターフェイスが必要となる。本発明では、ユーザが開発環境を容易に利用できるようにするために、ライブラリ(800)を準備する。このライブラリ(800)を用いることで、LPAR2(70)におけるユーザ作成結果編集プログラム(75)は統計処理を行うことができる。図13に、ユーザ作成結果編集プログラム(75)の作成過程を示す。
【0049】
図13に示したように、上記のソースプログラム(600)のコンパイル(700)時に、統計処理取得ライブラリ(800)を利用し、プログラムに取り込まれる。統計処理取得ライブラリ(800)内の各関数は、以下の通りの意味を持つ。
startmeasure 関数 → “統計処理の開始”
stopmeasure 関数 → “統計処理の終了”
getmeasure 関数 → “統計データの更新”
コンパイル(700)後、上記プログラムは実行形式となり(75)、統計処理を行う上で使用される。
【符号の説明】
【0050】
1 ハードウェア
2 ソフトウェア
10 物理プロセッサ
11 物理プロセッサにおけるCPU1
12 物理プロセッサにおけるCPU2
20 物理メモリ
30 OS
40 アプリケーション
50 ハイパバイザ
51 エミュレーション処理部
51−A 命令Aのエミュレーター
51−A−1 命令Aのエミュレーション処理
51−A−2 命令Aのイベント情報書き込み
51−A−2−1 トレースバッファへの書き込み
51−A−2−2 入力ポインタの更新
51−A−3 命令Aの統計処理
51−B 命令Bのエミュレーター
51−B−1 命令Bのエミュレーション処理
51−B−2 命令Bのイベント情報書き込み
51−B−3 命令Bの統計処理
51−Z 命令Zのエミュレーター
51−Z−1 命令Zのエミュレーション処理
51−Z−2 命令Zのイベント情報書き込み
51−Z−3 命令Zの統計処理
52 トレースバッファ
52−1 入力ポインタ
52−2 出力ポインタ
53 統計処理部
53−1 入力ポインタと出力ポインタの比較
53−2 トレースバッファからの読み込み、及び統計テーブルの値更新
53−3 出力ポインタの更新
54 統計テーブル
55 ハイパバイザ制御部
55−1 統計機能制御
60 LPAR1
61 LPAR1における論理プロセッサ
62 LPAR1における論理メモリ
63 LPAR1上で起動しているゲストOS
64 LPAR1上で起動しているゲストプログラム
64−A 命令A
64−B 命令B
70 LPAR2
71 LPAR2における論理プロセッサ
72 LPAR2における論理メモリ
73 LPAR2上で起動しているゲストOS
74 LPAR2上で起動しているゲストプログラム
75 ユーザ作成結果編集プログラム(実行形式)
75−1 入力受付処理
75−2 起動・停止要求処理
75−3 データ要求処理
75−4 データ加工処理
75−5 結果出力処理
100 計算機システム
200 トレース結果
300 統計結果
400 入力指示
500 統計結果(加工後)
600 ユーザ作成結果編集プログラム(ソース)
700 コンパイラ
800 統計処理取得ライブラリ
【技術分野】
【0001】
本発明は、仮想計算機システムに関し、統計情報を取得する技術に関する。
【背景技術】
【0002】
近年、サーバ台数の増加と共に、運用に関する複雑さが増加し、運用コストが問題化している。そのような状況の中、運用コストを低減する技術の一つとして、複数サーバを1台にまとめるサーバ統合が注目を集めている。サーバ統合を実現する技術として、一つのコンピュータを任意の割合で論理的に分割する仮想計算機技術が知られている。
【0003】
仮想計算機技術では、例えば、ハイパバイザなどのファームウェア(またはミドルウェア)が、物理計算機を複数の論理区画(LPAR:Logical PARtition)に分割し、各LPARに対して計算機資源(CPU、主記憶、I/O)を割り当て、各LPAR上でそれぞれOSを動作させる。あるいは、一つのサーバ上で一つのホストOS(物理計算機を直接使用するOS)を実行し、このホストOS上稼動するハイパバイザが同様の分割処理を行って、複数のゲストOS(ホストOS上で稼動するOS)を稼動させる。仮想計算機技術は、従来複数のサーバで稼動していたOS及びOS上で稼動するプログラムを1台のサーバで稼動させることを可能にしており、サーバ統合を実現している。
【0004】
上記サーバ統合を実現させる上で、仮想化技術における重要な点はいくつかあるが、特に性能面が重要である。すなわち、論理サーバにおける性能が物理サーバにおける性能と比較して、大幅な性能劣化が発生しないことが求められる。したがって、仮にそのような性能劣化が発生した場合には、対策を行う必要があり、そのための手段として統計処理を行う。具体的には、統計処理を行うことにより、以下の2点の目的に役立つ。
【0005】
第1に、性能劣化の調査・改善の目的である。統計処理を行うことにより、どのような仮想化イベントが性能劣化の要因になったかを特定することが可能となる。それにより、性能劣化の原因を究明し、解決策を打ち出し、今後の性能改善へとつながっていく。第2に、運用の仕方・利用方法のチューニングを考える目的である。統計処理を行うことにより、実際の運用時(アプリケーション実行時)において、どのような仮想化イベントが数多く発生するかなどを知ることができる。それにより、性能問題となるアプリケーション・サービスの特定が可能となり、具体的には、統合するサーバの計画、アプリケーションにおけるパラメタの調整、負荷の調整等を考える上で役立つ。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平08-050556
【特許文献2】特開平05-061719
【特許文献3】特開平02-064833
【発明の概要】
【発明が解決しようとする課題】
【0007】
ハイパバイザ上で仮想計算機(LPAR1)が定義され、LPAR1上でゲストOS、及びゲストプログラムが起動し、ゲストプログラムに対して統計処理を行う場合を考える。
【0008】
ゲストプログラムの実行中、ハイパバイザの介入が必要な状況(特権命令や割り込み等)になると、ハイパバイザに処理が移行される。このようなイベントを仮想化イベントと呼ぶ。仮想化イベントに対して、ハイパバイザは必要な処理(特権命令エミュレーション等)を実行すると、ゲストに処理を戻す。そして、ゲストプログラムでは、次の命令が実行される。
【0009】
統計処理は、仮想化イベントが発生した際に、仮想化イベントに関する情報をハイパバイザ内で集計する処理である。従来の統計処理では、図1に示す通り、以下の(1)〜(4)の処理が行われる。
(1)ある命令で仮想化イベントが発生する。
(2)上記の仮想化イベントに対して、エミュレーション処理(51-A-1〜51-Z-1)を行う。
(3)仮想化イベントに関する情報を、ハイパバイザ(50)内で集計する(エミュレーション処理部(51)内の統計処理(51-A-3〜51-Z-3)により、統計テーブル(54)に統計情報が書き込まれた後、統計結果(300)が出力される。図1では、イベントA、イベントB、…、イベントZの発生回数がそれぞれ50、120、…、10という結果が得られる)。
(4)ゲストプログラムにおいて、次の命令が実行される。
【0010】
従来の統計処理では、ハイパバイザにおけるエミュレーション処理部内で、エミュレーション処理と統計処理の両方を行っている。したがって、エミュレーション処理と統計処理とを別プロセスで行うことは不可能である。その結果、統計処理を行うと、(3)によるO/Hが発生し、ゲストプログラムで次の命令が実行されるまでの時間が延びる。このようなレイテンシーの延びにより、性能劣化が発生し、ユーザプログラムの実行に影響を与える。
【0011】
また、性能測定などを行う際などには、同時に統計処理を行うと、統計処理による性能劣化の分が性能に影響を与えてしまい、正しい性能値を得ることができなくなってしまう。評価作業では、性能測定を行い、性能について調べ、そこから原因を特定するために統計情報を取得するというプロセスがよく行われるので、性能測定と統計情報の取得を同時に行えるようになれば、評価効率という点において、大きく改善されると考えられる。
【0012】
一方、ユーザサイドにおいては、上記における効率性に加えて、利便性についても考慮する必要がある。すなわち、「ユーザサイド(OS上)において、統計処理を行うことができる。」「ユーザサイド(OS上)において、統計情報を取得できる。」「ユーザサイド(OS上)において、得られた統計情報を加工できる。」「ユーザサイド(OS上)から、ネットワークで外部に結果を出力できる。」といったように、ユーザが状況に応じて、統計情報をゲストOS上で自由に加工・出力できる環境が準備されていることが重要である。
【0013】
そこで、本発明では、上記のような背景を踏まえ、評価効率の改善、及びユーザにおける利便性の向上を目的とし、最小のO/Hで統計処理を行うことができ、かつユーザが統計情報を自由に加工・出力できる仮想計算機上での統計情報取得システムを構築することを目的とする。
【課題を解決するための手段】
【0014】
従来の統計処理では、図1に示すように、ゲストOS上で起動しているゲストプログラムからの仮想化イベントに対してエミュレーション処理を行い、さらにそのエミュレーション処理と同プロセスで統計処理も行っている。この仕組みがO/Hを発生させる要因となるので、本発明では、エミュレーション処理と統計処理を独立させて、別プロセスで処理を行うような仕組みを構築する。
【0015】
上記の仕組みを構築するに当たり、本発明では、仮想化におけるRAS機能の1つであるトレース機能を利用する。トレース機能とは、障害などが発生した時のために、ハイパバイザ内のトレースバッファから必要に応じて情報を取り出せるようにする機能である。
【0016】
トレースバッファは、ハイパバイザに対して割り込んだ様々な仮想化イベントに関する情報について記憶している。このような情報を取得することにより、障害の原因究明に役立つ。本発明では、上記のトレース機能におけるトレース情報を別プロセスから読み込み、その情報を基に統計処理を行うことで統計情報を取得する。
【0017】
このような、統計処理を別プロセスで行う仕組みを構築する上で、物理CPUが余っているという条件が必要になる。すなわち、統計処理を行うために使用可能な物理CPUが存在する(ある物理CPUにおける処理能力に余裕がある、又は使用可能な物理CPU自体が他に存在する)ことが必須である。この点に関しては、近年、CPUが高性能・複数プロセッサになっている状況を踏まえると、特に問題はないと考える。
【0018】
また、上記で取得した統計情報をユーザが自由に加工・出力できるようにするために、本発明では、採取した統計情報をゲストOS上でユーザが自由に加工・出力するためのインターフェイスを提供する。そのようなインターフェイスを用いることによって、ハイパバイザ内の統計情報の取得、及び、加工・出力が可能となる。
【発明の効果】
【0019】
本発明では、エミュレーション処理とは別プロセスでトレースバッファを監視し統計処理を行うことで、統計処理におけるO/Hを最小にする。また、LPAR上からハイパバイザを操作できるインターフェイスを用意することで、上記で取得した統計情報をユーザが自由に加工・出力できる。
【図面の簡単な説明】
【0020】
【図1】統計処理におけるブロック図
【図2】物理サーバの構成図(前提技術)
【図3】論理サーバの構成図(前提技術)
【図4】トレース処理における構成図(前提技術)
【図5】トレース結果取得までの処理を示すブロック図(前提技術)
【図6】トレース処理の概要を示すフローチャート(前提技術)
【図7】本発明を適用した統計処理における構成図
【図8】本発明を適用したエミュレーション処理と統計処理を別プロセスで行うことを示すタイムシーケンス図
【図9】本発明を適用した統計結果取得までの処理を示すブロック図
【図10】本発明を適用した統計処理の概要を示すフローチャート
【図11】本発明を適用することにより、ユーザが統計処理部内の操作を行うことができる仕組みを示したブロック図
【図12】本発明を適用することにより、ユーザが統計情報を自由に加工・出力できる仕組みを示したブロック図
【図13】本発明を適用することにより、ライブラリを利用することによりユーザ作成結果編集プログラムが作成される過程を示したブロック図
【発明を実施するための形態】
【0021】
<1.前提技術>
以下、本発明を実施する上で必要となる前提技術を、添付図面(図2〜図6)に基づいて説明する。
【0022】
<1.1.サーバ>
以下、物理サーバ、及び論理サーバについて説明する。
【0023】
<1.1.1.物理サーバ>
図2は、物理サーバを示した図である。計算機システム(100)は、ハードウェア(1)とソフトウェア(2)で成り立つ。ハードウェア(1)は、物理プロセッサ(10)、及び物理メモリ(20)を備える。また、物理プロセッサ(10)はマルチプロセッサであり、CPU1(11)とCPU2(12)を備えている。ソフトウェア(2)は、ハードウェア(1)を用いて、OS(30)、及びアプリケーション(40)が起動する。
【0024】
<1.1.2.論理サーバ>
図3は、論理サーバを示した図である。計算機システム(100)は、ハードウェア(1)として、物理プロセッサ(10)、及び物理メモリ(20)を備える。また、物理プロセッサ(10)はマルチプロセッサであり、CPU1(11)とCPU2(12)を備えている。上記のハードウェア(1)を用いて、ハイパバイザ(50)が起動する。ハイパバイザ(50)は、物理サーバを複数の論理区間に分割し、各論理区間はLPAR1(60)、LPAR2(70)と定義される。各LPAR(60,70)においては、論理プロセッサ(61,71)、及び論理メモリ(62,72)が割り当てられ、ゲストOS(63,73)、及びゲストプログラム(64,74)が起動する。
【0025】
<1.2.トレース処理>
仮想化において、何か障害が発生した際などのために、トレース機能が備わっている。トレース機能とは、RAS機能の1つであり、障害が起こる直前の情報をハイパバイザ(50)が記憶する事により、障害の原因を解析するための機能である。そして、上記の情報を記憶するバッファを、トレースバッファ(52)と呼び、トレースバッファ(52)から出力される情報を、トレース、又はトレース結果(200)と呼ぶ。以下、トレースの概要(仕組み)について説明する。
【0026】
<1.2.1.全体図(トレース処理)>
図4は、トレースを採取するための全体構成図である。ハイパバイザ(50)上で、LPAR1(60)、及びLPAR2(70)が動作し、各LPAR(60,70)には論理プロセッサ(61,71)が割り当てられている。LPAR1(60)上では、ゲストOS(63)が動作し、その上でゲストプログラム(64)が動作している。
【0027】
ゲストプログラム(64)では、仮想化イベント(Inst_A(64-A) , Inst_B(64-B) , …)が発生し、ハイパバイザ(50)に対して割り込む。
【0028】
ハイパバイザ(50)では、それらの割り込みに対して、エミュレーション処理部(51)でエミュレーション処理(51-A〜51-Z)を行い、トレースバッファ(52)に仮想化イベントに関する情報が記憶された後、トレース結果(200)が出力(採取)される。
【0029】
また、CPU割り当て方法に関しては、エミュレーション処理部(51)内の各処理は同一プロセスで行われ、エミュレーション処理部(51)はCPU1(11)のみを使用している。
【0030】
<1.2.2.トレース結果出力までの流れ>
図5は、トレースを採取する仕組みを示した図である。ハイパバイザ(50)に対して仮想化イベントが割り込むと、エミュレーション処理部(51)が各仮想化イベントに対応した処理を行う(エミュレーション処理(51-A-1〜51-Z-1))。その処理の後、仮想化イベントに関する情報をトレースバッファ(52)に書き込む(イベント情報書き込み(51-A-2〜51-Z-2))。
【0031】
ここで、トレースバッファ(52)に書き込まれる仮想化イベントに関するイベント情報とは、仮想化イベントの発生した時刻、発生した仮想化イベントのイベントID、他データ(LPAR番号、CPU番号、アドレス、etc)等である。
【0032】
<1.2.3.フローチャート(トレース処理)>
図6は、エミュレーション処理部(51)で、Inst_A(64-A)のイベント情報をトレースバッファ(52)に書き込む場合の例であり、エミュレーション処理部(51)からトレースバッファ(52)に対して書き込み処理が行われる際の流れを示したフローチャート(51-A-2)である。
【0033】
最初に、ポインタ(入力)(52-1)として、p_in(52-1)を用意し、p_in(52-1)で指定されたエントリーにイベント情報を書き込む(51-A-2-1)。書き込む情報は、イベントに関する情報であり、時刻、イベントID、その他(CPU番号、LPAR番号、アドレス、etc)である。情報が書き込まれた後、ポインタ(入力)(52-1)は更新される(51-A-2-2)。ただし、最終エントリーとなっている場合は、先頭エントリーに戻る。
【0034】
<2.本発明>
以下、本発明の実施形態を、添付図面(図7〜図13)に基づいて説明する。
【0035】
<2.1.統計処理>
本発明では、仮想化におけるRAS情報(トレース情報)を利用し、エミュレーション処理とは別プロセスでトレースバッファ(52)を監視する事により、最小のO/Hで統計情報を取得する事ができる。以下では、上記における機能の詳細について説明する。
【0036】
<2.1.1.全体図(統計処理)>
図7は、本発明における全体構成図である。統計処理部(53)では、トレースバッファ(52)に書き込まれたイベント情報を利用する事により、統計テーブル(54)を作成し、統計結果(300)として作成した統計テーブル(54)を出力する。統計結果(300)としては、各イベントの発生回数を示したものが生成される。したがって、図7では、イベントA、イベントB、…、イベントZの発生回数がそれぞれ50、120、…、10という結果が得られる。
【0037】
<2.1.2.各処理の独立性(別プロセス)>
図8は、本発明におけるエミュレーション処理部(51)と統計処理部(53)が別プロセスで処理を行っている仕組みを示した図である。本発明では、1つのCPUではなく、複数のCPUを用意している。また、エミュレーション処理部(51)における処理と統計処理部(53)における処理が独立し、別プロセスで処理を行っている。したがって、エミュレーション処理部(51)は、CPU1(11)を使用しつつ、統計処理部(53)は、エミュレーション処理部(51)が使用していないCPU2(12)を統計処理部(53)で使用する。
【0038】
図8では、エミュレーション処理部(51)の処理(プロセス1)でCPU1(11)を使用し、統計処理部(53)の処理(プロセス2)でCPU2(12)を使用していることを示している。エミュレーション処理部にCPU1を割当て、統計処理部53にCPU2を割り当てる、という割り当て処理は、ハイパバイザにより実行される。また、トレースバッファ52、統計テーブル54には、物理メモリが割当てられている。
【0039】
<2.1.3.統計結果出力までの流れ>
図9に示すように、p_out(52-2)で指定されたアドレスにおけるイベント情報を統計処理部(53)が読み込み、統計処理部(53)はそのイベント情報に応じて、統計テーブル(54)を作成する。その後、必要に応じて、統計結果(300)として統計テーブル(54)が出力される。
【0040】
<2.1.4.フローチャート(統計処理)>
図10は、統計処理部(53)の処理内容を示したフローチャート(53)である。統計処理部(53)では、トレースバッファ(52)からイベント情報を読み込むために、ポインタ(出力) (52-2)として、p_out(52-2)を用意する。p_in(52-1)がp_out(52-2)よりも進んでいる場合、すなわち、読み込むデータが存在する場合に、統計処理部(53)はイベント情報をトレースバッファ(52)から読み込むので、p_in(52-1)とp_out(52-2)が等しい場合は何も処理を行わない(53-1)。p_in(52-1)とp_out(52-2)が異なるときに、トレースバッファ(52)のp_out(52-2)で指定されたエントリー内のイベント情報(イベントID)を読み込む(53-2)。その後、統計テーブル(54)において、上記のイベントIDの発生回数(Count)を1つ増やすことにより、統計テーブル(54)の更新を行う(53-2)。そして、p_out(52-2)を次エントリーに進める(53-3)。ただし、最終エントリーの場合は、先頭エントリーに戻る。
【0041】
従来の統計処理においては、LPAR1の統計情報を取得する場合、エミュレーション処理部(51)内で統計処理を行っていた。したがって、LPAR1(60)のレイテンシーが延び、O/Hが発生し、性能に影響を与えていた。
【0042】
これに対し、本発明においては、LPAR1(60)の統計情報を取得する上で、仮想化固有の機能である“RAS機能”を利用することで、LPAR1(60)のトレース情報からLPAR1(60)の統計情報を取得する。そして、ハイパバイザ50内に新たに統計処理部53を設け、統計処理部(53)内の処理におけるCPUと、エミュレーション処理部(51)内の処理におけるCPUとを別プロセスで動作させるので、各処理は独立している。これにより、LPAR1(60)のレイテンシーは変わることなく、O/Hも見かけ上0となり、性能にも影響を与えない。
【0043】
すなわち、本願発明によれば、ハイパバイザにおいて、エミュレーション処理とは別プロセスでトレースバッファを監視し統計処理を行うので、統計処理による性能劣化を最小にしつつ、仮想計算機における統計情報を取得することができる。
【0044】
<2.2.加工処理>
本発明では、最小のO/Hで統計結果を取得することができる。さて、ユーザが、得られた統計結果を自由に加工・出力できたら、ユーザにおける利便性は向上する。そこで、本発明では、上記のことを行うために、統計処理部における操作を、LPAR2(70)におけるゲストOS(73)上で、ユーザが自由に行うことができる。統計テーブル(54)内のデータを、LPAR2(70)におけるゲストOS(73)上で、ユーザが自由に加工・出力できる。というような機能を考える。そして、このような機能を実現するために、LPAR2(70)とハイパバイザ(50)をつなぐインターフェイスを準備する。以下では、上記における機能の詳細について説明する。
【0045】
<2.2.1.開始・終了>
図11は、インターフェイスが準備されていることにより、LPAR2(70)においてユーザが、ハイパバイザ(50)における統計処理部(53)内の操作を行うことができる仕組みを示した図である。主な処理の流れは、以下の通りである。
(1)“開始・終了”という入力指示(400)をLPAR2(70)に与える。
(2)LPAR2(70)において、“開始・終了”という入力の受付処理(75-1)を行う。
(3)LPAR2(70)において、ハイパバイザ(50)におけるハイパバイザ制御部(55)内の統計機能制御(55-1)を呼び出す(75-2)。
(4)ハイパバイザ(50)において、統計機能制御手段55-1が、“統計処理の開始・終了を行う”という指示を、統計処理部(53)に出す(55-1)。
【0046】
<2.2.2.更新処理>
図12は、インターフェイスが準備されていることにより、LPAR2(70)においてユーザが、ハイパバイザ(50)における統計テーブル(54)内のデータを自由に加工・出力することができる仕組みを示した図である。
【0047】
主な処理の流れは、以下の通りである。
(1)“更新”という入力指示(400)をLPAR2(70)に与える。
(2)LPAR2(70)において、“更新”という入力の受付処理(75-1)を行う。
(3)LPAR2(70)において、ハイパバイザ(50)におけるハイパバイザ制御部(55)内の統計機能制御(55-1)を呼び出す(75-3)。
(4)ハイパバイザ(50)において、“データをLPAR2(70)に送る”という指示を統計テーブル(54)に出す(55-1)。
(5)ハイパバイザ(50)において、統計機能制御手段55-1が、統計テーブル(54)内のデータをLPAR2(70)に送る。
(6)LPAR2(70)において、送られてきた統計テーブル(54)内のデータを、加工処理する(75-4)。
(7)LPAR2(70)において、加工処理されたデータを、統計結果(加工後)(500)として出力する(75-5)。
【0048】
<2.2.3.ユーザ作成結果編集プログラム作成方法>
統計処理を行うに当たり、LPAR2(70)からハイパバイザ制御部(55)内の統計機能制御(55-1)を呼び出すために、インターフェイスが必要となる。本発明では、ユーザが開発環境を容易に利用できるようにするために、ライブラリ(800)を準備する。このライブラリ(800)を用いることで、LPAR2(70)におけるユーザ作成結果編集プログラム(75)は統計処理を行うことができる。図13に、ユーザ作成結果編集プログラム(75)の作成過程を示す。
【0049】
図13に示したように、上記のソースプログラム(600)のコンパイル(700)時に、統計処理取得ライブラリ(800)を利用し、プログラムに取り込まれる。統計処理取得ライブラリ(800)内の各関数は、以下の通りの意味を持つ。
startmeasure 関数 → “統計処理の開始”
stopmeasure 関数 → “統計処理の終了”
getmeasure 関数 → “統計データの更新”
コンパイル(700)後、上記プログラムは実行形式となり(75)、統計処理を行う上で使用される。
【符号の説明】
【0050】
1 ハードウェア
2 ソフトウェア
10 物理プロセッサ
11 物理プロセッサにおけるCPU1
12 物理プロセッサにおけるCPU2
20 物理メモリ
30 OS
40 アプリケーション
50 ハイパバイザ
51 エミュレーション処理部
51−A 命令Aのエミュレーター
51−A−1 命令Aのエミュレーション処理
51−A−2 命令Aのイベント情報書き込み
51−A−2−1 トレースバッファへの書き込み
51−A−2−2 入力ポインタの更新
51−A−3 命令Aの統計処理
51−B 命令Bのエミュレーター
51−B−1 命令Bのエミュレーション処理
51−B−2 命令Bのイベント情報書き込み
51−B−3 命令Bの統計処理
51−Z 命令Zのエミュレーター
51−Z−1 命令Zのエミュレーション処理
51−Z−2 命令Zのイベント情報書き込み
51−Z−3 命令Zの統計処理
52 トレースバッファ
52−1 入力ポインタ
52−2 出力ポインタ
53 統計処理部
53−1 入力ポインタと出力ポインタの比較
53−2 トレースバッファからの読み込み、及び統計テーブルの値更新
53−3 出力ポインタの更新
54 統計テーブル
55 ハイパバイザ制御部
55−1 統計機能制御
60 LPAR1
61 LPAR1における論理プロセッサ
62 LPAR1における論理メモリ
63 LPAR1上で起動しているゲストOS
64 LPAR1上で起動しているゲストプログラム
64−A 命令A
64−B 命令B
70 LPAR2
71 LPAR2における論理プロセッサ
72 LPAR2における論理メモリ
73 LPAR2上で起動しているゲストOS
74 LPAR2上で起動しているゲストプログラム
75 ユーザ作成結果編集プログラム(実行形式)
75−1 入力受付処理
75−2 起動・停止要求処理
75−3 データ要求処理
75−4 データ加工処理
75−5 結果出力処理
100 計算機システム
200 トレース結果
300 統計結果
400 入力指示
500 統計結果(加工後)
600 ユーザ作成結果編集プログラム(ソース)
700 コンパイラ
800 統計処理取得ライブラリ
【特許請求の範囲】
【請求項1】
物理メモリと、複数の物理CPUと、論理区画に前記物理CPUと前記物理メモリとをそれぞれ割り当てるハイパバイザとを備える計算機システムにおいて、
前記ハイパバイザは、
エミュレーション処理を行うエミュレーション処理部と、
前記エミュレーション処理によるイベント情報が記憶されるトレースバッファと、
前記トレースバッファから読み出した前記イベント情報に基づき、統計テーブルを生成しする統計処理を行う統計処理部とを備え、
前記エミュレーション処理部には、ある物理CPUが割り当てられ、前記統計処理部には、他の物理CPUが割り当てられることを特徴とする計算機システム。
【請求項2】
前記イベント情報は、前記エミュレーション処理部が仮想化イベントに対応して処理した仮想化イベントに関する情報であることを特徴とする請求項1記載の計算機システム。
【請求項3】
前記イベント情報は、前記仮想化イベントの発生した時刻、発生した前記仮想化イベントのイベントID、論理区画の番号、CPU番号、アドレスのうち、少なくとも1つ以上であることを特徴とする請求項2記載の計算機システム。
【請求項4】
前記ハイパザイザは、前記統計テーブルに基づく統計結果を出力することを特徴とする請求項1記載の計算機システム。
【請求項5】
前記ハイパバイザは、前記トレースバッファに基づくトレース結果を出力することを特徴とする請求項1記載の計算機システム。
【請求項6】
前記ハイパザイザは、更に統計機能制御手段を備え、
ある論理区画は、前記統計機能制御手段に、前記統計処理部の統計処理に関するコマンドを出力し、
前記統計処理部は、前記コマンドに対応した処理を実行することを特徴とする請求項1記載の計算機システム。
【請求項7】
前記ハイパザイザは、更に統計機能制御手段を備え、
前記論理区画は、
前記統計機能制御手段に、前記統計テーブルに関するコマンドを出力し、
前記統計テーブルは、
前記コマンドに対応して、統計テーブル内のデータを前記論理区画に出力し、
前記論理区画は、
入力された統計テーブル内のデータに基づく統計結果を算出し、
前記算出された統計結果を、表示装置に出力することを特徴とする請求項1記載の計算機システム。
【請求項8】
物理メモリと、複数の物理CPUと、論理区画に前記物理CPUと前記物理メモリとをそれぞれ割り当てるハイパバイザとを備える計算機システムにおける統計情報取得方法であって、
前記ハイパバイザは、
前記エミュレーション処理に、ある物理CPUを割り当て、
前記統計処理に、他の物理CPUを割り当て、
エミュレーション処理を実行し、
前記エミュレーション処理によるイベント情報をトレースバッファに記憶し、
前記トレースバッファから読み出した前記イベント情報に基づき、統計テーブルを生成する統計処理を実行しすることを特徴とする計算機システムにおける統計情報取得方法。
【請求項9】
前記イベント情報は、前記エミュレーション処理部が仮想化イベントに対応して処理した仮想化イベントに関する情報であることを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項10】
前記イベント情報は、前記仮想化イベントの発生した時刻、発生した前記仮想化イベントのイベントID、論理区画の番号、CPU番号、アドレスのうち、少なくとも1つ以上であることを特徴とする請求項9記載の計算機システムにおける統計情報取得方法。
【請求項11】
前記ハイパザイザは、前記統計テーブルに基づく統計結果を出力することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項12】
前記ハイパバイザは、前記トレースバッファに基づくトレース結果を出力することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項13】
前記ハイパザイザは、更に統計機能制御手段を備え、
ある論理区画は、前記統計機能制御手段に、前記統計処理部の統計処理に関するコマンドを出力し、
前記統計処理部は、前記コマンドに対応した処理を実行することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項14】
前記ハイパザイザは、更に統計機能制御手段を備え、
前記論理区画は、
前記統計機能制御手段に、前記統計テーブルに関するコマンドを出力し、
前記統計テーブルは、
前記コマンドに対応して、統計テーブル内のデータを前記論理区画に出力し、
前記論理区画は、
入力された統計テーブル内のデータに基づく統計結果を算出し、
前記算出された統計結果を、表示装置に出力することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項1】
物理メモリと、複数の物理CPUと、論理区画に前記物理CPUと前記物理メモリとをそれぞれ割り当てるハイパバイザとを備える計算機システムにおいて、
前記ハイパバイザは、
エミュレーション処理を行うエミュレーション処理部と、
前記エミュレーション処理によるイベント情報が記憶されるトレースバッファと、
前記トレースバッファから読み出した前記イベント情報に基づき、統計テーブルを生成しする統計処理を行う統計処理部とを備え、
前記エミュレーション処理部には、ある物理CPUが割り当てられ、前記統計処理部には、他の物理CPUが割り当てられることを特徴とする計算機システム。
【請求項2】
前記イベント情報は、前記エミュレーション処理部が仮想化イベントに対応して処理した仮想化イベントに関する情報であることを特徴とする請求項1記載の計算機システム。
【請求項3】
前記イベント情報は、前記仮想化イベントの発生した時刻、発生した前記仮想化イベントのイベントID、論理区画の番号、CPU番号、アドレスのうち、少なくとも1つ以上であることを特徴とする請求項2記載の計算機システム。
【請求項4】
前記ハイパザイザは、前記統計テーブルに基づく統計結果を出力することを特徴とする請求項1記載の計算機システム。
【請求項5】
前記ハイパバイザは、前記トレースバッファに基づくトレース結果を出力することを特徴とする請求項1記載の計算機システム。
【請求項6】
前記ハイパザイザは、更に統計機能制御手段を備え、
ある論理区画は、前記統計機能制御手段に、前記統計処理部の統計処理に関するコマンドを出力し、
前記統計処理部は、前記コマンドに対応した処理を実行することを特徴とする請求項1記載の計算機システム。
【請求項7】
前記ハイパザイザは、更に統計機能制御手段を備え、
前記論理区画は、
前記統計機能制御手段に、前記統計テーブルに関するコマンドを出力し、
前記統計テーブルは、
前記コマンドに対応して、統計テーブル内のデータを前記論理区画に出力し、
前記論理区画は、
入力された統計テーブル内のデータに基づく統計結果を算出し、
前記算出された統計結果を、表示装置に出力することを特徴とする請求項1記載の計算機システム。
【請求項8】
物理メモリと、複数の物理CPUと、論理区画に前記物理CPUと前記物理メモリとをそれぞれ割り当てるハイパバイザとを備える計算機システムにおける統計情報取得方法であって、
前記ハイパバイザは、
前記エミュレーション処理に、ある物理CPUを割り当て、
前記統計処理に、他の物理CPUを割り当て、
エミュレーション処理を実行し、
前記エミュレーション処理によるイベント情報をトレースバッファに記憶し、
前記トレースバッファから読み出した前記イベント情報に基づき、統計テーブルを生成する統計処理を実行しすることを特徴とする計算機システムにおける統計情報取得方法。
【請求項9】
前記イベント情報は、前記エミュレーション処理部が仮想化イベントに対応して処理した仮想化イベントに関する情報であることを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項10】
前記イベント情報は、前記仮想化イベントの発生した時刻、発生した前記仮想化イベントのイベントID、論理区画の番号、CPU番号、アドレスのうち、少なくとも1つ以上であることを特徴とする請求項9記載の計算機システムにおける統計情報取得方法。
【請求項11】
前記ハイパザイザは、前記統計テーブルに基づく統計結果を出力することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項12】
前記ハイパバイザは、前記トレースバッファに基づくトレース結果を出力することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項13】
前記ハイパザイザは、更に統計機能制御手段を備え、
ある論理区画は、前記統計機能制御手段に、前記統計処理部の統計処理に関するコマンドを出力し、
前記統計処理部は、前記コマンドに対応した処理を実行することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【請求項14】
前記ハイパザイザは、更に統計機能制御手段を備え、
前記論理区画は、
前記統計機能制御手段に、前記統計テーブルに関するコマンドを出力し、
前記統計テーブルは、
前記コマンドに対応して、統計テーブル内のデータを前記論理区画に出力し、
前記論理区画は、
入力された統計テーブル内のデータに基づく統計結果を算出し、
前記算出された統計結果を、表示装置に出力することを特徴とする請求項8記載の計算機システムにおける統計情報取得方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−204972(P2010−204972A)
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願番号】特願2009−50086(P2009−50086)
【出願日】平成21年3月4日(2009.3.4)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成22年9月16日(2010.9.16)
【国際特許分類】
【出願日】平成21年3月4日(2009.3.4)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]