JP2008242999A - Information processing apparatus and memory dump method - Google Patents
Information processing apparatus and memory dump method Download PDFInfo
- Publication number
- JP2008242999A JP2008242999A JP2007085162A JP2007085162A JP2008242999A JP 2008242999 A JP2008242999 A JP 2008242999A JP 2007085162 A JP2007085162 A JP 2007085162A JP 2007085162 A JP2007085162 A JP 2007085162A JP 2008242999 A JP2008242999 A JP 2008242999A
- Authority
- JP
- Japan
- Prior art keywords
- dump
- area
- processing unit
- application program
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】メモリをダンプしながら、プログラムを迅速に再起動することができるようにする。
【解決手段】情報処理装置は、プログラムの起動処理中に、メモリへのアクセス要求を取得し、取得したアクセス要求に含まれるアクセス対象の記憶領域を指定する領域指定情報と、アクセス要求の取得順とを記憶し、プログラムの起動処理終了後、実行中のプログラムの実行を停止し、プログラムの実行停止後、アクセスパターン記憶部に記憶されている領域指定情報と上記取得順とを読み出し、上記取得順に、各領域指定情報が示す記憶領域の内容をダンプし、ダンプ中にプログラムを起動する。
【選択図】図1A program can be restarted quickly while dumping memory.
An information processing apparatus acquires an access request to a memory during a program activation process, area specifying information for specifying a storage area to be accessed included in the acquired access request, and an access request acquisition order Is stored, and after the start processing of the program is finished, the execution of the program being executed is stopped, and after the execution of the program is stopped, the area designation information stored in the access pattern storage unit and the acquisition order are read and the acquisition In order, the contents of the storage area indicated by each area designation information are dumped, and the program is started during the dump.
[Selection] Figure 1
Description
本発明は、情報処理装置およびメモリダンプ方法に関する。 The present invention relates to an information processing apparatus and a memory dump method.
情報処理装置においてプログラムの障害時などにメモリの内容をダンプすることが行われている。特許文献1に記載のシステムでは、オペレーティングシステムに障害が発生した際に、オペレーティングシステムのロードに必要なメモリ領域をダンプした後、オペレーティングシステムを再ロードし、使用しようとするメモリ領域がダンプ済みでなければ使用する前にダンプするとともに、ダンプ済みでないメモリ領域を順次ダンプするようにして、プログラムの再起動までの時間を短縮している。
特許文献1に記載のシステムでは、オペレーティングシステムの起動処理とメモリのダンプ処理とが並行して実行される。しかし、特許文献1に記載のシステムでは、オペレーティングシステムの起動処理中にアクセスされるメモリ領域は、必ずしもダンプされているとは限らない。起動処理中にダンプ済みでない領域に対するアクセスされると、アクセスの度にダンプ処理が行われ、そのダンプ処理の後にメモリへのアクセスが行われることになり、オペレーティングシステムの起動処理には時間がかかってしまう。 In the system described in Patent Document 1, the operating system startup process and the memory dump process are executed in parallel. However, in the system described in Patent Document 1, the memory area accessed during the operating system startup process is not always dumped. When an area that has not been dumped is accessed during startup processing, dump processing is performed each time access is performed, and memory is accessed after the dump processing, and the startup processing of the operating system takes time. End up.
本発明は、このような背景を鑑みてなされたものであり、メモリをダンプしながら、プログラムを迅速に再起動することのできる情報処理装置およびメモリダンプ方法を提供することを目的とする。 The present invention has been made in view of such a background, and an object of the present invention is to provide an information processing apparatus and a memory dump method that can quickly restart a program while dumping a memory.
上記課題を解決するための本発明の主たる発明は、情報処理装置であって、CPUと、メモリと、前記CPUにより実行されるアプリケーションプログラムの起動処理中に、前記アプリケーションプログラムから前記メモリへのアクセス要求を複数取得するアクセス要求取得部と、前記アクセス要求に含まれる、アクセス対象の記憶領域を指定する情報である領域指定情報、および前記アクセス要求の取得順を記憶するアクセスパターン記憶部と、前記アプリケーションプログラムの起動処理終了後、実行中の前記アプリケーションプログラムの実行を停止させる停止処理部と、前記アプリケーションプログラムの実行停止後、前記アクセスパターン記憶部から前記領域指定情報および前記取得順を読み出し、前記取得順に、各前記領域指定情報により指定される前記記憶領域の内容をダンプするダンプ処理部と、前記ダンプ処理部によるダンプ中に、前記アプリケーションプログラムを起動する再起動処理部と、を備えることとする。 A main invention of the present invention for solving the above-described problem is an information processing apparatus, wherein a CPU, a memory, and an access to the memory from the application program during a startup process of the application program executed by the CPU An access request acquisition unit that acquires a plurality of requests; an area designation information that is information that specifies an access target storage area included in the access request; and an access pattern storage unit that stores an acquisition order of the access requests; After the start processing of the application program, a stop processing unit that stops the execution of the application program that is being executed, and after the execution of the application program is stopped, the area designation information and the acquisition order are read from the access pattern storage unit, Specify each area in the order of acquisition And dump processor to dump the contents of the storage area specified by the broadcast, during the dump by the dump processing unit, and be provided with a restart processing unit that activates the application program.
本発明によれば、メモリをダンプしながら、プログラムを迅速に再起動することができる。 According to the present invention, it is possible to quickly restart a program while dumping a memory.
図1は、本発明の一実施形態に係る情報処理装置10のハードウェア構成図である。本実施形態の情報処理装置10は、パーソナルコンピュータやワークステーションなどの一般的なコンピュータを想定している。図1に示すように、情報処理装置10は、物理CPU11、物理メモリ12、記憶装置13、入力装置14、出力装置15を備えている。記憶装置13は、各種のプログラムやデータを記憶する、例えばハードディスクドライブやCD−ROMドライブ、フラッシュメモリなどである。物理CPU11は各種の演算処理を行い情報処理装置10の制御を司る。物理CPU11は記憶装置13に記憶されているプログラムを物理メモリ12に読み出して実行することにより各種の機能を実現する。入力装置14は、情報の入力を受け付けるキーボードやマウス、タッチパネル、マイクロフォンなどであり、出力装置15は、情報を出力するディスプレイやプリンタ、スピーカなどである。
FIG. 1 is a hardware configuration diagram of an
本実施形態の情報処理装置10では、物理CPU11や物理メモリ12、記憶装置13などの各種の資源を論理的に分割し、論理区画ごとに異なる資源を割り当てて仮想的なコンピュータを実現する、いわゆるサーバ仮想化(以下、単に仮想化という。)が行われる。なお、以下の説明において、各論理区画において仮想化された物理CPU11を仮想CPUといい、仮想化された物理メモリ12を仮想メモリという。仮想化されたコンピュータ上では、オペレーティングシステム(ゲストオペレーティングシステムと呼ばれる。以下、ゲストOSと略記する。)が動作する。
In the
仮想化が行われた情報処理装置10の論理構成を図2に示す。同図に示すように、本実施形態の情報処理装置10では、ゲストOS20およびハイパバイザ30が実行される。物理メモリ12には、ハイパバイザ30に割り当てられた記憶領域であるハイパバイザ領域121と、ゲストOS20に割り当てられた記憶領域であるゲストOS領域122とが確保される。
FIG. 2 shows a logical configuration of the
ゲストOS20からの仮想CPUに対する演算命令や仮想メモリへのアクセス要求(以下、メモリアクセス要求という。)は、ハイパバイザ30により物理CPU11への演算命令や物理メモリ12に対するアクセス要求に変換される。このようなハイパバイザ30による変換処理により、情報処理装置10における仮想化が実現される。なお、以下の説明ではメモリアクセス要求に係る処理についてのみ説明する。
Arithmetic commands and virtual memory access requests from the guest OS 20 (hereinafter referred to as memory access requests) are converted by the
図3は、本実施形態に係る情報処理装置10の機能ブロック図である。同図に示すように、情報処理装置10は、ゲストOS20およびハイパバイザ30を備えており、ゲストOS20はメモリアクセス要求送信部21および障害通知部22を備え、ハイパバイザ30は、アクセスパターンテーブル31、ダンプ出力テーブル32、サイズ管理テーブル33、アクセスパターンテーブル作成部41、ダンプ出力テーブル作成部42、サイズ管理テーブル登録部43、メモリアクセス要求受信部44、メモリアクセス処理部45、障害検知部46、ゲストOS停止処理部47、ゲストOS起動処理部48、ダンプ処理部49を備えている。
FIG. 3 is a functional block diagram of the
メモリアクセス要求送信部21は、アクセスの対象となる仮想メモリの記憶領域を指定したメモリアクセス要求をハイパバイザ30に送信する。なお、本実施形態では、物理メモリ12および仮想メモリの記憶領域は、物理メモリ12上のアドレス(以下、物理アドレスという。)または仮想メモリ上のアドレス(以下、仮想アドレスという。)と、ブロック数とで表されるものとする。
The memory access
障害通知部22は、ゲストOS20で障害が発生した場合に、その旨をハイパバイザ30に通知する。障害通知部22は、例えば仮想CPUに対する割り込みなどにより障害を通知する。
When a failure occurs in the
サイズ管理テーブル33は、各種のデータサイズについての設定値を管理する。図4にサイズ管理テーブル33の構成例を示す。同図に示すように、サイズ管理テーブル33は、アクセスパターンサイズ331、コアサイズ332およびブロックサイズ333を管理している。アクセスパターンサイズ331は、後述するアクセスパターンテーブル31の大きさを示す。コアサイズ332は、ゲストOS20の起動開始に必要な記憶領域の大きさを示す。コアサイズ332は、例えば、ゲストOS20を実現するためのアプリケーションプログラム(以下、OSプログラムという。)を物理メモリ12上に読み出すためのローダプログラムのデータサイズやOSプログラム自身のデータサイズなどとすることができる。ブロックサイズ333は、物理メモリ12および仮想メモリを構成するブロックの大きさである。なお、本実施形態では、物理メモリ12および仮想メモリはブロック単位で管理されるものとする。
サイズ管理テーブル登録部43は、入力装置14を介して、ユーザからアクセスパターンサイズ331やコアサイズ332、ブロックサイズ333の入力を受け付け、受け付けた値をサイズ管理テーブル33に登録する。
The size management table 33 manages setting values for various data sizes. FIG. 4 shows a configuration example of the size management table 33. As shown in the figure, the size management table 33 manages an
The size management
アクセスパターンテーブル31は、ゲストOS20の起動処理中において、ゲストOS20からアクセスされた物理メモリ12の領域と、そのアクセス順と(以下、アクセスパターンという。)を記憶する。アクセスパターンテーブル31の構成例を図5に示す。図5の例では、アクセスパターンテーブル31には、アクセスされたブロックの物理アドレスが、アクセスされた順に格納されている。本実施形態では、ゲストOS20の起動後、ゲストOS20からメモリアクセス要求を受信するごとに、アクセスの対象となるブロックを示す物理アドレスがアクセスパターンテーブル31の最後尾に追加されていくものとし、同一のメモリアクセス要求に基づいて複数のブロックに対してアクセスが行われた場合には、各ブロックについての物理アドレスのそれぞれをアクセスパターンテーブル31に格納するものとする。
The access pattern table 31 stores the area of the
なお、本実施形態において、ゲストOS20が起動処理中である期間とは、ゲストOS20が起動してから、所定数(サイズ管理テーブル33のアクセスパターンサイズ331に基づいて求められる。)のブロックに対してアクセスが行われるまでの期間とする。起動処理中の期間としては、例えば、ゲストOS20が起動してから、ゲストOS20から送信される仮想CPUへの演算命令の個数が所定の数を超えるまでの期間や、ゲストOS20が起動してから、ユーザのログインを受け付けるプロセスが起動されるまでの期間を採用することもできる。
In the present embodiment, the period during which the
アクセスパターンテーブル作成部41は、アクセスパターンテーブル31を作成する。なお、アクセスパターンテーブル31の作成処理の詳細については後述する。
The access pattern
ダンプ出力テーブル32は、ダンプされたゲストOS領域122中の記憶領域を管理する。本実施形態では、ダンプ出力テーブル32は、ブロックごとにダンプされたかどうかを管理する。ダンプ出力テーブル32の構成例を図6に示す。同図に示すように、ダンプ出力テーブル32には、ブロックの先頭を示す物理アドレス321に対応付けて、ブロックの内容がダンプされたかどうかを示す出力フラグ322が格納される。出力フラグ322には、ブロックの内容が既にダンプされたことを示す「完了」または、未だダンプされていないことを示す「未完了」のいずれかが設定される。
ダンプ出力テーブル作成部42は、ゲストOS領域122に係るダンプ処理の開始時にダンプ出力テーブル32を作成する。なお、ダンプ出力テーブルの作成処理の詳細については後述する。
The dump output table 32 manages the storage area in the
The dump output
メモリアクセス要求受信部44は、ゲストOS20のメモリアクセス要求送信部21が送信したアクセス要求を受信する。
メモリアクセス処理部45は、受信したメモリアクセス要求に応じて物理メモリ12に対するデータの入出力処理を行う。メモリアクセス処理部45による物理メモリ12に対する入出力処理の流れを図7に示す。なお、図7は、ゲストOS領域122のダンプ処理が行われていない場合の入出力処理の流れを示しており、ダンプ処理中における物理メモリ12への入出力処理については後述する。
The memory access
The memory
図7に示すように、メモリアクセス処理部45は、メモリアクセス要求に含まれる仮想アドレスおよびブロック数を取得し(S501)、取得した仮想アドレスを物理アドレスに変換する(S502)。仮想アドレスから物理アドレスへの変換は、例えば、ゲストOS領域122の先頭の物理アドレスに、仮想アドレスを加算することにより求められる。メモリアクセス処理部45は、変数Nを0に初期化し(S503)、Nがブロック数になれば処理を終了する(S504:YES)。
As shown in FIG. 7, the memory
Nがブロック数になっていなければ(S504:NO)、メモリアクセス処理部45は、Nとサイズ管理テーブル33のブロックサイズ333とを乗じた値を上記の物理アドレスに加算してブロックアドレスとする(S505)。メモリアクセス処理部45は、ブロックアドレスが示すブロックに対してデータの入出力を行い(S506)、Nをインクリメントする(S507)。
If N is not the number of blocks (S504: NO), the memory
以上のようにして、メモリアクセス処理部45は、メモリアクセス要求に応じて物理メモリ12に対するデータの入出力を行う。
As described above, the memory
障害検知部46は、ゲストOS20の障害通知部22からの障害通知を検知する。なお、障害検知部46は、ゲストOS20の動作を監視して、例えば処理のタイムアウトなどにより、ゲストOS20の障害を検知するようにしてもよい。
The
ゲストOS停止処理部47は、障害検知部46がゲストOS20の障害を検知した場合に、ゲストOS20の実行を停止する。ゲストOS停止処理部47は、例えば、プログラムを終了するように指示するシグナルをゲストOS20に送信するようにしてもよいし、ハイパバイザ30がゲストOS20からの仮想CPUへの演算命令を処理しないようにして、ゲストOS20に対して仮想CPUが停止したように見せかけることで、ゲストOS20の処理が進まないようにしてもよい。
The guest OS
ゲストOS起動処理部48は、ゲストOS停止処理部47によりゲストOS20の実行が停止された後、ゲストOS20を起動する。すなわち、ゲストOS停止処理部47およびゲストOS起動処理部48により、ゲストOS20が再起動されることになる。
The guest OS
ダンプ処理部49は、ゲストOS停止処理部47によりゲストOS20の実行が停止された後、停止されたゲストOS20に対応するゲストOS領域122の内容をダンプする。なお、本実施形態において、記憶領域の内容をダンプするとは、記憶領域に記憶されているデータを、記憶装置13に書き込んだり、出力装置15に出力したりすることである。ダンプにより出力されたデータは、例えば、プログラムの障害時にプログラムの不具合を解析するために用いられる。
The
以下、ゲストOS20の障害時におけるダンプ処理の詳細について説明する。
図8は、本実施形態の情報処理装置10におけるゲストOS領域122のダンプ処理の流れを説明する図である。
Hereinafter, the details of the dump process when the
FIG. 8 is a diagram for explaining the flow of dump processing of the
まず最初にハイパバイザ30は、ゲストOS20を起動し(S601)、アクセスパターンテーブル31を作成する(S602)。アクセスパターンテーブル31の作成処理の流れを図9に示す。
アクセスパターンテーブル作成部41は、空のアクセスパターンテーブル31を作成する(S621)。次に、アクセスパターンテーブル作成部41は、アクセスパターンテーブル31に登録されているレコード数に、サイズ管理テーブル33のブロックサイズ333を乗じて登録サイズとする(S622)。アクセスパターンテーブル作成部41は、登録サイズがサイズ管理テーブル33のアクセスパターンサイズ331以上であれば(S623:YES)、処理を終了する。
登録サイズがアクセスパターンサイズ331よりも小さい場合に(S623:NO)、メモリアクセス要求受信部44がメモリアクセス要求を受信すると(S624)、メモリアクセス処理部45は、メモリアクセス要求に含まれている仮想アドレスを物理アドレスに変換する(S625)。アクセスパターンテーブル作成部41は、変換された物理アドレスがアクセスパターンテーブル31に登録されているかどうかを判定し(S626)、物理アドレスが登録されていなければ(S626:NO)、物理アドレスをアクセスパターンテーブル31の最後尾に追加し(S627)、ステップS622からの処理を繰り返す。
以上のようにして、アクセスパターンテーブル31が作成される。
First, the
The access pattern
When the registered size is smaller than the access pattern size 331 (S623: NO), when the memory access
The access pattern table 31 is created as described above.
次にハイパバイザ30は、ダンプ出力テーブル32を作成する(S603)。ダンプ出力テーブル32の作成処理の流れを図10に示す。
ダンプ出力テーブル作成部42は、ゲストOS領域122の大きさを、サイズ管理テーブル33のブロックサイズ333で割った商をブロック数とし(S641)、ゲストOS領域122の先頭アドレスをブロックアドレスとする(S642)。ダンプ出力テーブル作成部42は、ダンプ出力テーブル32に登録されているレコード数をカウントし、カウントしたレコード数がブロック数以上になっていれば(S643:YES)処理を終了する。
ダンプ出力テーブル作成部42は、ダンプ出力テーブル32のレコード数がブロック数より小さければ(S643:NO)、ブロックアドレスをダンプ出力テーブル32に追加登録し(S644)、ブロックアドレスに対応する出力フラグ322を「未完了」に設定する(S645)。ダンプ出力テーブル作成部42は、ブロックアドレスにブロックサイズ333を加算し(S646)、ステップS643からの処理を繰り返す。
以上のようにして、ダンプ出力テーブル32が作成される。
Next, the
The dump output
If the number of records in the dump output table 32 is smaller than the number of blocks (S643: NO), the dump output
The dump output table 32 is created as described above.
上記のようにしてゲストOS20が起動され、アクセスパターンテーブル31およびダンプ出力テーブル32が作成された後に、障害検知部46が障害通知を検知すると(S604)、ゲストOS停止処理部47は、ゲストOS20に提供している仮想CPUを停止して(S605)、ゲストOS20の実行を停止する。
After the
ゲストOS20の実行が停止されると、ハイパバイザ30は、ステップS601において起動されたゲストOS20の起動中にアクセスされたゲストOS領域122中の記憶領域(以下、アクセスパターン領域という。)について、ダンプ処理を行う(S606)。アクセスパターン領域についてのダンプ処理の流れを図11に示す。
When the execution of the
ダンプ処理部49は、起動フラグを「偽」に設定し(S661)、ダンプサイズを「0」に設定し(S662)、アクセスパターンテーブル31に記憶されている各物理アドレスについて以下の処理を行う。
起動フラグが「偽」であり、かつダンプサイズがサイズ管理テーブル33のコアサイズ332以上である場合には(S663:YES)、ゲストOS起動処理部48は、ゲストOSを起動し(S664)、ダンプ処理部49は、起動フラグを「真」とする(S665)。
ダンプ処理部49は、物理アドレスに対応する出力フラグ322をダンプ出力テーブル32から読み出し(S666)、読み出した出力フラグ322が「未完了」であれば(S667:YES)、物理アドレスに対応するブロックの内容をダンプする。具体的には、ダンプ処理部49は、物理アドレスからサイズ管理テーブル33のブロックサイズ333分のデータをダンプする(S668)。
ダンプ処理部49は、ブロックの内容をダンプした後、物理アドレスに対応するダンプ出力テーブル32の出力フラグ322に「完了」を設定する(S669)。
The
When the activation flag is “false” and the dump size is equal to or larger than the
The
After dumping the contents of the block, the
以上の処理を繰り返すことにより、ダンプ処理部49は、アクセスパターンテーブル31に記憶されている各物理アドレスに対応するブロックをダンプする。ダンプ処理部49によりダンプされたデータの累計がコアサイズ332以上になったときには、ゲストOS起動処理部48がゲストOS20を起動する。
By repeating the above processing, the
このように、本実施形態のハイパバイザ30は、アクセスパターンテーブル31に記憶されているブロックのアクセスパターンに従って、ブロックの内容をダンプすることができる。したがって、ハイパバイザ30は、ゲストOS20の再起動時において、ゲストOS20の最初の起動時にアクセスされたブロックを優先的にダンプすることができる。ゲストOS20の起動時にアクセスされたブロックは、ゲストOS20の再起動時にもアクセスされる可能性が高いため、上記処理により、ゲストOS20の再起動時にアクセスされる可能性の高いブロックの内容を、ゲストOS20の起動に先だってダンプしておくことができる。したがって、ダンプ処理とゲストOS20の起動処理とを並行して行うことができる。
As described above, the
もっとも、ゲストOS20から、最初の起動時とは異なるブロックに対してアクセスがなされる場合や、ゲストOS20の起動処理がダンプ処理よりも高速に実行されている場合などには、ダンプ処理が終わっていないブロックに対してゲストOS20からのアクセス要求が送信されることがある。
However, when the
この場合に本実施形態のハイパバイザ30は、アクセス要求の対象となるブロックが未だダンプされていなければ、そのブロックをダンプした後に入出力処理を行うようにしている。ダンプ中におけるメモリへの入出力処理の流れを図12に示す。
In this case, the
図12の処理は、上述の図7に示した処理のステップS506の前に、ステップS621〜ステップS623の処理を加えたものである。すなわち、メモリアクセス処理部45が、Nとサイズ管理テーブル33のブロックサイズ333とを乗じた値を上記の物理アドレスに加算してブロックアドレスを算出(S505)した後、ブロックアドレスに対応する出力フラグ322をダンプ出力テーブル32から読み出し、読み出した出力フラグ322が「未完了」であるかどうかを判定する(S681)。出力フラグ322が「未完了」の場合(S681:YES)、ダンプ処理部49は、ブロックアドレスが示すブロックの内容をダンプして(S682)、ブロックアドレスに対応する出力フラグ322を「完了」に設定する(S683)。
The process of FIG. 12 is obtained by adding the processes of steps S621 to S623 to step S506 of the process shown in FIG. That is, the memory
このようにして、ハイパバイザ30は、ダンプ処理中に、未だダンプされていないブロックに対するアクセス要求を受けた場合には、そのブロックの内容をダンプした後に、アクセス要求に応じた物理メモリ12へのアクセス処理を行うことができる。したがって、ダンプ処理とゲストOS20の起動処理とを並行した実行したとしても、ゲストOS20の前回停止時点でのゲストOS領域122の内容を確実にダンプすることができる。
In this way, when the
以上のようにして、アクセスパターン領域のダンプ処理が終わると、次にハイパバイザ30は、ゲストOS領域122のうち未だダンプ処理がなされていない記憶領域(以下、未ダンプ領域という。)についてのダンプ処理を行う(S607)。図13は、未ダンプ領域についてのダンプ処理の流れを示す図である。ダンプ処理部49は、ダンプ出力テーブル32に記憶されている各レコードについて、レコードの出力フラグ322が「未完了」であれば(S701:YES)、物理アドレスに対応するブロックの内容をダンプし(S702)、出力フラグ322に「完了」を設定する(S703)。このようにして、ダンプ処理部49は、未ダンプ領域についてのダンプ処理を行う。
When the access pattern area dump process is completed as described above, the
以上説明したように、本実施形態の情報処理装置10によれば、ゲストOS20の最初の起動時にアクセスされたブロック(記憶領域)のアクセスパターンを記憶しておき、ゲストOS20の再起動時には、アクセスパターンに従ってゲストOS領域122をダンプすることができる。一般に、オペレーティングシステムやその他のアプリケーションプログラムの起動処理において仮想メモリに対するアクセスパターンはほぼ同じになることが多いので、起動時のアクセスパターンに従ってダンプを行うことにより、ゲストOS20の再起動時にアクセスされる可能性の高いブロックについて、優先的にダンプを行っておくことが可能となる。したがって、従来のようにダンプ処理のすべてが終了するまでゲストOS20の起動を行わない場合に比べると、より迅速にゲストOS20の再起動を開始することができる。またこれにより、ゲストOS20により提供されるサービスのダウンタイムを短縮することが可能となる。特に、近年のようにゲストOS20に割り当てられるゲストOS領域122が大容量になっている場合には、ゲストOS領域122のすべての内容をダンプするには長い時間がかかってしまうので効果的である。
As described above, according to the
また、本実施形態の情報処理装置10では、ゲストOS領域122のダンプ中に、未だダンプされていないブロックに対してアクセスされた場合には、そのブロックの内容をダンプした後、ブロックに対するアクセス処理を行うようにしているので、ゲストOS20の再起動時に、最初の起動時とは異なるブロックに対するアクセスを行った場合でも、確実にゲストOS領域122をダンプすることができる。
In the
その一方で、上記の処理では、アクセスの対象となるブロックのダンプが未完了である場合に、そのブロックの内容をダンプし、そのブロックについてのダンプが完了した後にデータの入出力を行うようにしているため、オーバーヘッドが大きいが、本実施形態の情報処理装置10では、上述のようにゲストOS20の再起動時にアクセスされる可能性の高いブロックを優先的にダンプすることができるので、ダンプが未完了であるブロックにアクセスされる可能性を低減することができる。したがって、ゲストOS領域122のダンプ処理に係るオーバーヘッドを低減し、情報処理装置10の処理負荷を抑えることができる。また、これによりゲストOS20も迅速に起動することができるので、ゲストOS20が提供するサービスのダウンタイムを短縮することができる。
On the other hand, in the above processing, when the dump of the block to be accessed is incomplete, the contents of the block are dumped, and data input / output is performed after the dump for the block is completed. Therefore, the
なお、本実施形態の情報処理装置10では、1つのゲストOS20のみが実行されるものとしたが、これに限らず、複数のゲストOS20が実行されるようにしてもよい。この場合、ハイパバイザ30は、ゲストOS20ごとに、アクセスパターンテーブル31やダンプ出力テーブル32、サイズ管理テーブル33などを設けるようにする。
In the
また、本実施形態の情報処理装置10では、物理アドレスのパターンをアクセスパターンテーブル31に格納するものとしたが、仮想アドレスのパターンを格納するようにしてもよい。この場合、ゲストOS領域122に割り当てられる物理メモリ12上の領域が変更になった場合にも対応することができる。
In the
また、本実施形態において、アクセスパターンテーブル31には、ブロックごとに物理アドレスが格納されるものとしたが、物理アドレスとブロック数とを対応付けて格納するようにしてもよい。この場合、メモリアクセス要求に含まれている仮想アドレスを物理アドレスに変換し、物理アドレスと、メモリアクセス要求に含まれるブロック数とを対応付けてアクセスパターンテーブル31に登録するようにする。 In the present embodiment, the physical address is stored for each block in the access pattern table 31, but the physical address and the number of blocks may be stored in association with each other. In this case, the virtual address included in the memory access request is converted into a physical address, and the physical address and the number of blocks included in the memory access request are associated with each other and registered in the access pattern table 31.
また、本実施形態では、アクセスパターンテーブル31には、ゲストOS20からのアクセス順にブロックの物理アドレスが格納されるものとしたが、アクセス順と、アクセスされた領域とが格納されればよい。例えば、アクセスパターンテーブル31は、アクセスされた順を示す番号と、物理アドレスとを対応付けて記憶するようにしてもよい。この場合、レコードの記憶順を管理しないリレーショナルデータベース管理システムにおけるテーブルとして、アクセスパターンテーブル31を実現することもできる。
In the present embodiment, the physical address of the block is stored in the access pattern table 31 in the order of access from the
また、本実施形態において、ダンプ出力テーブル32は、物理アドレスに対応付けて出力フラグ322を管理するものとしたが、仮想アドレスに対応付けて出力フラグ322を管理するようにしてもよい。
In the present embodiment, the dump output table 32 manages the
また、本実施形態では、ブロック単位でアクセスパターンを記憶するものとしたが、これに限らず、可変長の記憶領域単位で記憶するようにしてもよい。この場合、例えば、アクセスパターンテーブル31には、物理アドレスとデータ長とを対応付けて登録するようにする。 In this embodiment, the access pattern is stored in units of blocks. However, the present invention is not limited to this, and may be stored in units of variable-length storage areas. In this case, for example, the physical address and the data length are registered in the access pattern table 31 in association with each other.
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。 Although the present embodiment has been described above, the above embodiment is intended to facilitate understanding of the present invention and is not intended to limit the present invention. The present invention can be changed and improved without departing from the gist thereof, and the present invention includes equivalents thereof.
10 情報処理装置
11 物理CPU
12 物理メモリ
13 記憶装置
14 入力装置
15 出力装置
20 ゲストOS
21 メモリアクセス要求送信部
22 障害通知部
30 ハイパバイザ
31 アクセスパターンテーブル
32 ダンプ出力テーブル
321 物理アドレス
322 出力フラグ
33 サイズ管理テーブル
331 アクセスパターンサイズ
332 コアサイズ
333 ブロックサイズ
41 アクセスパターンテーブル作成部
42 ダンプ出力テーブル作成部
43 サイズ管理テーブル登録部
44 メモリアクセス要求受信部
45 メモリアクセス処理部
46 障害検知部
47 ゲストOS停止処理部
48 ゲストOS起動処理部
49 ダンプ処理部
121 ハイパバイザ領域
122 ゲストOS領域
10
12
DESCRIPTION OF
Claims (6)
前記CPUにより実行されるアプリケーションプログラムの起動処理中に、前記アプリケーションプログラムから前記メモリへのアクセス要求を複数取得するアクセス要求取得部と、
前記アクセス要求に含まれる、アクセス対象の記憶領域を指定する情報である領域指定情報、および前記アクセス要求の取得順を記憶するアクセスパターン記憶部と、
前記アプリケーションプログラムの起動処理終了後、実行中の前記アプリケーションプログラムの実行を停止させる停止処理部と、
前記アプリケーションプログラムの実行停止後、前記アクセスパターン記憶部から前記領域指定情報および前記取得順を読み出し、前記取得順に、各前記領域指定情報により指定される前記記憶領域の内容をダンプするダンプ処理部と、
前記ダンプ処理部によるダンプ中に、前記アプリケーションプログラムを起動する再起動処理部と、
を備えることを特徴とする情報処理装置。 CPU, memory,
An access request acquisition unit that acquires a plurality of access requests to the memory from the application program during the startup process of the application program executed by the CPU;
Area specification information that is information for specifying a storage area to be accessed, included in the access request, and an access pattern storage unit that stores the acquisition order of the access requests;
A stop processing unit for stopping execution of the application program being executed after the start processing of the application program;
After the execution of the application program is stopped, a dump processing unit that reads out the area designation information and the acquisition order from the access pattern storage unit, and dumps the contents of the storage area designated by the area designation information in the acquisition order; ,
During a dump by the dump processing unit, a restart processing unit that starts the application program,
An information processing apparatus comprising:
前記アプリケーションプログラムを起動するために必要な記憶領域の大きさであるコアサイズを記憶するコアサイズ記憶部を備え、
前記ダンプ処理部は、前記記憶領域の内容をダンプするごとに、ダンプした前記記憶領域の大きさの累計値であるダンプサイズを算出し、
前記再起動処理部は、前記累計値が前記コアサイズ以上になったときに、前記アプリケーションプログラムを起動すること、
を特徴とする情報処理装置。 The information processing apparatus according to claim 1,
A core size storage unit that stores a core size that is a size of a storage area necessary for starting the application program;
Each time the dump processing unit dumps the contents of the storage area, it calculates a dump size that is a cumulative value of the size of the dumped storage area,
The restart processing unit starts the application program when the cumulative value is equal to or larger than the core size;
An information processing apparatus characterized by the above.
前記アクセス要求に含まれる前記領域指定情報により特定される前記記憶領域に対するデータの入出力を行うアクセス処理部と、
前記領域指定情報に対応付けて、前記記憶領域の内容がダンプされたかどうかを示すフラグ値を記憶するダンプ出力テーブルと、
を備え、
前記ダンプ処理部は、前記記憶領域の内容をダンプした際に、前記領域指定情報に対応付けて、ダンプしたことを示す前記フラグ値を前記ダンプ出力テーブルに登録し、
前記アクセス処理部は、前記アクセス要求に含まれる前記領域指定情報に対応する前記ダンプ出力テーブルの前記フラグ値を前記ダンプ出力テーブルから取得し、取得した前記フラグ値により、前記記憶領域の内容がダンプされているかどうかを判断し、当該記憶領域の内容がダンプされていない場合には、当該記憶領域の内容がダンプされるまで待機すること、
を特徴とする情報処理装置。 The information processing apparatus according to claim 1,
An access processing unit for inputting / outputting data to / from the storage area specified by the area specifying information included in the access request;
A dump output table that stores a flag value indicating whether or not the contents of the storage area are dumped in association with the area designation information;
With
When the dump processing unit dumps the contents of the storage area, the dump processing unit registers the flag value indicating that the dump is associated with the area designation information in the dump output table,
The access processing unit obtains the flag value of the dump output table corresponding to the area specifying information included in the access request from the dump output table, and the contents of the storage area are dumped by the obtained flag value. Waiting for the contents of the storage area to be dumped if the contents of the storage area have not been dumped,
An information processing apparatus characterized by the above.
前記アプリケーションプログラムに障害が発生したことを検知する障害検知部を備え、
前記停止処理部は、前記障害の検知を契機として、前記アプリケーションプログラムの実行を停止すること、
を特徴とする情報処理装置。 The information processing apparatus according to claim 1,
A failure detection unit that detects that a failure has occurred in the application program;
The stop processing unit stops the execution of the application program triggered by the detection of the failure;
An information processing apparatus characterized by the above.
仮想マシン上で実行されるオペレーティングシステムの起動処理中に、前記オペレーティングシステムから前記メモリへのアクセス要求を複数取得するアクセス要求取得部と、
前記アクセス要求に含まれるアクセス対象の記憶領域を指定する情報である領域指定情報、および前記アクセス要求の取得順を記憶するアクセスパターン記憶部と、
前記オペレーティングシステムの起動処理終了後、実行中の前記オペレーティングシステムの実行を停止させる停止処理部と、
前記オペレーティングシステムの実行停止後、前記アクセスパターン記憶部に記憶されている前記領域指定情報および前記取得順を読み出し、前記取得順に、各前記領域指定情報により指定される前記記憶領域の内容をダンプするダンプ処理部と、
前記ダンプ処理部によるダンプ中に、前記オペレーティングシステムを起動する再起動処理部と、
を備えることを特徴とする情報処理装置。 CPU, memory,
An access request acquisition unit that acquires a plurality of access requests to the memory from the operating system during startup processing of the operating system executed on the virtual machine;
Area specification information that is information for specifying a storage area to be accessed included in the access request, and an access pattern storage unit that stores the access request acquisition order;
A stop processing unit that stops execution of the operating system that is being executed after the start-up process of the operating system;
After the execution of the operating system is stopped, the area designation information and the acquisition order stored in the access pattern storage unit are read, and the contents of the storage areas designated by the area designation information are dumped in the acquisition order. A dump processing unit;
During a dump by the dump processing unit, a restart processing unit for starting the operating system,
An information processing apparatus comprising:
CPUと、メモリとを備えるコンピュータが、
前記CPUにより実行されるアプリケーションプログラムの起動処理中に、前記アプリケーションプログラムから前記メモリへのアクセス要求を複数取得し、
前記アクセス要求に含まれるアクセス対象の記憶領域を指定する情報である領域指定情報、および前記アクセス要求の取得順を記憶し、
前記アプリケーションプログラムの起動処理終了後、実行中の前記アプリケーションプログラムの実行を停止させ、
前記アプリケーションプログラムの実行停止後、前記アクセスパターン記憶部から前記領域指定情報および前記取得順を読み出し、読み出した前記取得順に、各前記領域指定情報により特定される前記記憶領域の内容をダンプし、
ダンプ処理中に、前記アプリケーションプログラムを起動すること、
を特徴とするメモリダンプ方法。 A method for dumping memory contents,
A computer including a CPU and a memory
During the startup process of the application program executed by the CPU, a plurality of access requests to the memory from the application program are acquired,
Storing area designation information, which is information for designating a storage area to be accessed, included in the access request, and the access request acquisition order;
After the startup process of the application program is finished, stop the execution of the application program being executed,
After stopping execution of the application program, the area designation information and the acquisition order are read from the access pattern storage unit, and the contents of the storage areas specified by the area designation information are dumped in the read acquisition order,
Launching the application program during dump processing;
A memory dump method characterized by the above.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007085162A JP2008242999A (en) | 2007-03-28 | 2007-03-28 | Information processing apparatus and memory dump method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007085162A JP2008242999A (en) | 2007-03-28 | 2007-03-28 | Information processing apparatus and memory dump method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008242999A true JP2008242999A (en) | 2008-10-09 |
Family
ID=39914233
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007085162A Withdrawn JP2008242999A (en) | 2007-03-28 | 2007-03-28 | Information processing apparatus and memory dump method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008242999A (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015011749A1 (en) * | 2013-07-22 | 2015-01-29 | 株式会社日立製作所 | Storage system and fault management method for storage system |
| WO2015015589A1 (en) * | 2013-07-31 | 2015-02-05 | 富士通株式会社 | Information processing device, memory dump method, and memory dump program |
| US10846233B2 (en) | 2018-02-12 | 2020-11-24 | Samsung Electronics Co., Ltd. | Memory controller and application processor for controlling utilization and performance of input/output device and method of operating the memory controller |
| US11663064B1 (en) * | 2019-09-02 | 2023-05-30 | Virtuozzo International Gmbh | System and method for generating a guest operating system crash dump |
-
2007
- 2007-03-28 JP JP2007085162A patent/JP2008242999A/en not_active Withdrawn
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015011749A1 (en) * | 2013-07-22 | 2015-01-29 | 株式会社日立製作所 | Storage system and fault management method for storage system |
| US9471434B2 (en) | 2013-07-22 | 2016-10-18 | Hitachi, Ltd. | Storage system and storage system failure management method |
| WO2015015589A1 (en) * | 2013-07-31 | 2015-02-05 | 富士通株式会社 | Information processing device, memory dump method, and memory dump program |
| JPWO2015015589A1 (en) * | 2013-07-31 | 2017-03-02 | 富士通株式会社 | Information processing apparatus, memory dump method, and memory dump program |
| US10025670B2 (en) | 2013-07-31 | 2018-07-17 | Fujitsu Limited | Information processing apparatus, memory dump method, and storage medium |
| US10846233B2 (en) | 2018-02-12 | 2020-11-24 | Samsung Electronics Co., Ltd. | Memory controller and application processor for controlling utilization and performance of input/output device and method of operating the memory controller |
| US11663064B1 (en) * | 2019-09-02 | 2023-05-30 | Virtuozzo International Gmbh | System and method for generating a guest operating system crash dump |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5176837B2 (en) | Information processing system, management method thereof, control program, and recording medium | |
| US9870288B2 (en) | Container-based processing method, apparatus, and system | |
| JP5212360B2 (en) | Control program, control system, and control method | |
| JP2007226413A (en) | Memory dump method, memory dump program, and computer system | |
| JP6273034B2 (en) | Virtualization computing apparatus and method | |
| US20090276205A1 (en) | Stablizing operation of an emulated system | |
| KR20080031150A (en) | Intelligent storage engine for disk drive operations with reduced local bus traffic | |
| JP6594452B2 (en) | Method, terminal, apparatus, and program for improving virtual machine performance | |
| JP2014178913A (en) | Electronic apparatus, method of creating snapshot image, and program | |
| JP2008242999A (en) | Information processing apparatus and memory dump method | |
| KR20160134750A (en) | Asynchronously prefetching sharable memory pages | |
| US20190377612A1 (en) | VCPU Thread Scheduling Method and Apparatus | |
| CN110941516B (en) | Operating system restoration method, device, equipment and storage medium | |
| JP2011060225A (en) | Operating system booting method | |
| CN102968323B (en) | Terminal and the method that realizes computer system power-on acceleration | |
| EP4632566A1 (en) | Virtual machine memory management method and computing device | |
| WO2017097176A1 (en) | Operating system starting method, apparatus and system | |
| US10210035B2 (en) | Computer system and memory dump method | |
| JP6725662B2 (en) | Computer system and processing method | |
| JP5533005B2 (en) | Information processing apparatus, computer system, and program | |
| JP2011165093A (en) | Memory access examination device, memory access examination method and program | |
| JP2006172100A (en) | Operating system fast switching method and method | |
| JP5948416B2 (en) | Information processing apparatus, information storage processing program, and information storage processing method | |
| CN102968324B (en) | The method for sorting of computer system power-on file and device | |
| JP2011192131A (en) | Control device, image forming apparatus, and control program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091204 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110217 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110704 |