JP2002333998A - System for acquiring inside information of virtual machine - Google Patents
System for acquiring inside information of virtual machineInfo
- Publication number
- JP2002333998A JP2002333998A JP2001138233A JP2001138233A JP2002333998A JP 2002333998 A JP2002333998 A JP 2002333998A JP 2001138233 A JP2001138233 A JP 2001138233A JP 2001138233 A JP2001138233 A JP 2001138233A JP 2002333998 A JP2002333998 A JP 2002333998A
- Authority
- JP
- Japan
- Prior art keywords
- data
- internal information
- virtual machine
- output
- compression
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は,デジタルコンピュ
ータハードウェアおよびソフトウェアの分野において仮
想マシンの内部状態を取得する仮想マシン内部状態取得
システムに関し,特に,収集された仮想マシンの内部状
態データを圧縮して出力できるシステムに関する。[0001] 1. Field of the Invention [0002] The present invention relates to a virtual machine internal state acquisition system for acquiring the internal state of a virtual machine in the field of digital computer hardware and software, and more particularly, to compressing the collected internal state data of a virtual machine. Related to a system that can output data.
【0002】[0002]
【従来の技術】仮想マシンとは,ソフトウェアで作成さ
れた仮想的なハードウェアであり,その一つの例とし
て,Java仮想マシンがある。2. Description of the Related Art A virtual machine is virtual hardware created by software, and one example is a Java virtual machine.
【0003】Java(サンマイクロシステムズ社の登
録商標)は,オブジェクト指向のプログラミング言語の
一つであり,Javaで書かれたコードはアーキテクチ
ャに依存しないバイトコードにコンパイルされ,Jav
a仮想マシンで実行することができる。[0003] Java (registered trademark of Sun Microsystems, Inc.) is one of object-oriented programming languages. Code written in Java is compiled into an architecture-independent bytecode.
a Can be executed on a virtual machine.
【0004】近年,Java仮想マシンをサーバ用途に
利用する場合が増え,Java仮想マシンおよびJav
aアプリケーションのパフォーマンスの向上が望まれて
いる。パフォーマンスのボトルネックを検出するため,
仮想マシンの内部情報を取得できる仮想マシン内部状態
取得システムが用いられている。[0004] In recent years, the use of Java virtual machines for server applications has increased, and Java virtual machines and Java virtual machines have been used.
a It is desired to improve the performance of the application. To detect performance bottlenecks,
A virtual machine internal state acquisition system capable of acquiring internal information of a virtual machine is used.
【0005】仮想マシン内部情報取得システムには,例
えば,JVMPI(Java Virtual Machine Profiler In
terface )を用いたシステムがある。JVMPIは,J
ava仮想マシンとプロセス中の内部情報の取得を行う
プロファイラエージェントとの間の双方向の関数呼び出
しインタフェースであり,プロファイラは,JVMPI
を用いてコントロール要求をJava仮想マシンへ発行
する。一方,Java仮想マシンは,プロファイラに対
して,ヒープ割り当て,メソッド呼び出しなどに対応す
るさまざまなイベントを通知する。これにより,プロフ
ァイラは,クラス,メソッド,ヒープ,モニタ,スレッ
ドに関する情報を収集することができる。The virtual machine internal information acquisition system includes, for example, a Java Virtual Machine Profiler In (JVMPI).
terface). JVMPI is J
A bidirectional function call interface between an ava virtual machine and a profiler agent that acquires internal information in a process. The profiler is a JVMPI
To issue a control request to the Java virtual machine. On the other hand, the Java virtual machine notifies the profiler of various events corresponding to heap allocation, method invocation, and the like. This allows the profiler to collect information about classes, methods, heaps, monitors, and threads.
【0006】プロファイラは,JVMPIにより,例え
ばメソッドに関して,Javaアプリケーション実行中
に,どのメソッドが,いつ,どのスレッドによって呼び
出されたかという内部情報を収集できる。内部情報を用
いれば,どのメソッドがパフォーマンスのボトルネック
になっているかを特定することができる。このような内
部情報を,Java仮想マシンがアプリケーションを実
行している時にリアルタイムで解析するのは現実的でな
いため,通常,別プロセスにデータを送るとか,ファイ
ル等に保存して解析する。[0006] The profiler can collect internal information on, for example, which method was called by which thread during execution of a Java application by using JVMPI. Using the internal information, it is possible to identify which method is the performance bottleneck. Since it is not realistic to analyze such internal information in real time when the Java virtual machine is executing an application, it is usually analyzed by sending data to another process or storing it in a file or the like.
【0007】[0007]
【発明が解決しようとする課題】Java仮想マシンを
サーバ用途に利用している場合など,大規模なサーバ用
アプリケーションでは膨大な回数のメソッド呼び出しが
起こるので,前述のとおりプロファイラが取得したメソ
ッドの情報をそのまま出力すると,例えばファイルに保
存した場合に出力ファイルのサイズが巨大になり,ディ
スク容量を圧迫してしまうという問題がある。また別の
マシン(コンピュータ)に取得したメソッドの情報デー
タを持っていって解析しようとした場合に記憶媒体の容
量を越えてしまい,データの持ち運びに不便という問題
がある。In a large-scale server application, for example, when a Java virtual machine is used for a server, an enormous number of method calls occur. As described above, information on a method obtained by a profiler is used. If the file is output as it is, there is a problem that, for example, when the file is saved in a file, the size of the output file becomes huge and the disk capacity is reduced. Another problem is that when the information data of the method acquired in another machine (computer) is to be analyzed, the data exceeds the capacity of the storage medium and it is inconvenient to carry the data.
【0008】本発明は,かかる問題に鑑みてなされたも
のであり,Java仮想マシンのような仮想マシン内部
情報取得システムに関し,特に取得された情報を圧縮し
て出力できるシステムを提供することを目的とする。The present invention has been made in view of such a problem, and relates to a virtual machine internal information acquisition system such as a Java virtual machine, and in particular, to provide a system capable of compressing and outputting acquired information. And
【0009】[0009]
【課題を解決するための手段】上記課題を解決し目的を
達成するため,本発明は図1に示すような手段を備え
る。図1は,本発明の原理を説明するための図である。
本発明にかかる仮想マシンの内部情報取得システム1
は,内部情報取得手段11と,データ圧縮手段12と,
データ出力手段13とを備える。In order to solve the above-mentioned problems and achieve the object, the present invention comprises means as shown in FIG. FIG. 1 is a diagram for explaining the principle of the present invention.
A virtual machine internal information acquisition system 1 according to the present invention
Are internal information acquisition means 11, data compression means 12,
Data output means 13.
【0010】内部情報取得手段11は,仮想マシン2の
内部情報を取得する手段である。内部情報取得手段11
では,仮想マシン2へ制御要求(コントロール)を行
い,仮想マシン2からイベントとして内部情報データを
取得する。The internal information acquiring means 11 is means for acquiring internal information of the virtual machine 2. Internal information acquisition means 11
Then, a control request (control) is made to the virtual machine 2 and internal information data is acquired from the virtual machine 2 as an event.
【0011】図2に,取得した内部情報データの例を示
す。内部情報データとして,例えばイベントIDごと
に,そのイベントが発生した時刻,メソッドID,スレ
ッドID,CPU消費時間などを取得する。例えば,内
部情報取得手段11は,メソッド呼び出しに関しては,
メソッド呼び出しのID,EnterまたはExitが
起きた場合の時刻,そのメソッドのID,そのメソッド
を呼び出したスレッドのID,そのスレッドの使用した
CPU時間を1レコードとして取得する。FIG. 2 shows an example of the acquired internal information data. As the internal information data, for example, for each event ID, the time at which the event occurred, the method ID, the thread ID, the CPU consumption time, and the like are acquired. For example, the internal information acquisition means 11 has
The ID of the method call, the time when the Enter or Exit occurs, the ID of the method, the ID of the thread that called the method, and the CPU time used by the thread are acquired as one record.
【0012】データ圧縮手段12は,取得された内部情
報データを圧縮する手段である。データ圧縮手段12で
は,内部情報取得手段11から取得した内部情報データ
を所定のデータ量まで保持する入力バッファ121と,
入力バッファ121に保持された内部情報データに対し
て,所定のデータ圧縮方法によりデータを圧縮してデー
タ出力手段へ渡す。データ圧縮部122では,ハフマン
(Huffman)符号化などの可変長符号化方法,ま
たは,LZ77圧縮法,LZ78圧縮法などの辞書ベー
ス圧縮方法などを用いる。ハフマン符号化方法や辞書ベ
ース圧縮方法では,従来は一つのファイルについて圧縮
処理を行うが,本発明のデータ圧縮部122では,内部
情報取得手段11から入力バッファ121に入力された
複数レコードごとに圧縮処理を行う。The data compression means 12 is means for compressing the acquired internal information data. The data compression unit 12 includes an input buffer 121 for holding the internal information data acquired from the internal information acquisition unit 11 up to a predetermined data amount,
The internal information data held in the input buffer 121 is compressed by a predetermined data compression method and passed to the data output means. The data compression unit 122 uses a variable length coding method such as Huffman coding, or a dictionary-based compression method such as LZ77 compression method or LZ78 compression method. Conventionally, in the Huffman encoding method and the dictionary-based compression method, compression processing is performed on one file. However, the data compression unit 122 of the present invention compresses a plurality of records input from the internal information acquisition unit 11 into the input buffer 121. Perform processing.
【0013】例えばメソッド呼び出し情報に関しては,
仮想マシン2において特定のメソッドが何回も呼び出さ
れることが多いため,内部情報データには同じパターン
が繰り返されることが頻繁に起きるので,本発明にかか
るシステムのように,内部情報データを圧縮してデータ
を出力することは効果が高い。特に辞書ベース圧縮法を
圧縮処理として用いることは有効である。また,ハフマ
ン符号化方法と辞書ベース圧縮方法を組み合わせて用い
ることができる。For example, regarding the method call information,
Since a specific method is often called many times in the virtual machine 2, the same pattern is frequently repeated in the internal information data. Therefore, the internal information data is compressed as in the system according to the present invention. It is highly effective to output the data. In particular, it is effective to use the dictionary-based compression method as the compression processing. Further, the Huffman encoding method and the dictionary-based compression method can be used in combination.
【0014】データ出力手段13は,データ圧縮手段1
2で圧縮された内部情報データを出力する手段である。
データ出力手段13では,データ圧縮部122から受け
取った圧縮された内部情報データを出力バッファで保持
し出力ファイル3に書き出すなどの方法で出力する。The data output means 13 is a data compression means 1
This is a means for outputting the internal information data compressed in step 2.
The data output means 13 outputs the compressed internal information data received from the data compression section 122 by a method such as holding the data in an output buffer and writing it to the output file 3.
【0015】このように,本発明のシステムによれば,
仮想マシン2の内部情報データを圧縮して出力すること
ができるので,出力されるデータのサイズを低減するこ
とができる。As described above, according to the system of the present invention,
Since the internal information data of the virtual machine 2 can be compressed and output, the size of the output data can be reduced.
【0016】[0016]
【発明の実施の形態】以下に,本発明の実施の形態とし
て,本発明のシステムをJava仮想マシンの内部情報
を取得する場合を例にして説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, as an embodiment of the present invention, a system according to the present invention will be described with an example in which internal information of a Java virtual machine is obtained.
【0017】本発明の実施の形態におけるシステムの構
成例を,図1を用いて説明する。本発明の内部情報取得
システム1は内部情報取得手段11とデータ圧縮手段1
2と,データ出力手段13とを備える。仮想マシン内部
情報取得システム1は,Java仮想マシン(仮想マシ
ン)2と同じプロセスで動作する。An example of a system configuration according to an embodiment of the present invention will be described with reference to FIG. The internal information acquisition system 1 of the present invention comprises an internal information acquisition unit 11 and a data compression unit 1
2 and data output means 13. The virtual machine internal information acquisition system 1 operates in the same process as the Java virtual machine (virtual machine) 2.
【0018】初期状態では,まず仮想マシン2が起動さ
れ,続いて内部情報取得システム1がロードされ,仮想
マシン2と内部情報取得システム1のインタフェース
(JVMPI)が初期化される。続いて仮想マシン2に
よってJavaアプリケーションのクラスファイルがロ
ードされ,Javaアプリケーションが実行される。In the initial state, first, the virtual machine 2 is started, then the internal information acquisition system 1 is loaded, and the interface between the virtual machine 2 and the internal information acquisition system 1 is started.
(JVMPI) is initialized. Subsequently, the class file of the Java application is loaded by the virtual machine 2, and the Java application is executed.
【0019】内部情報取得システム1は起動時にデータ
の出力先の初期化(例えば,ファイルのオープン)とそ
の他の初期化(例えば,データ圧縮パラメータの初期
化)を行う。起動時にオプション等でメソッド呼び出し
情報を取得するように指定すると,仮想マシン2は,メ
ソッドのEnter,Exitで発行されるイベントを
イネーブルにし,メソッドのEnter,Exit時に
JVMPIを通じて内部情報取得システム1にイベント
を通知する。イベントの詳細,すなわち,イベント内容
(この場合EnterまたはExit),時刻,メソッ
ドID,スレッドID,CPU時間はイベント構造体に
記述される。The internal information acquisition system 1 performs initialization of a data output destination (for example, opening of a file) and other initialization (for example, initialization of a data compression parameter) at the time of startup. If it is specified that the method call information is acquired at the time of activation, the virtual machine 2 enables the event issued by the method Enter and Exit, and sends the event to the internal information acquisition system 1 through JVMPI at the time of the method Enter and Exit. Notify. Details of the event, that is, the content of the event (in this case, Enter or Exit), time, method ID, thread ID, and CPU time are described in the event structure.
【0020】Javaアプリケーションが実行され,上
記のイベントが通知されると,内部情報取得手段11は
イベント構造体の中からイベント内容を取り出し,決ま
った形式,例えば,フォーマットされた文字列にしてデ
ータ圧縮手段12へ送る。具体的には,文字列をパラメ
ータとしてデータ圧縮の関数呼び出しを行う。When the Java application is executed and the above-mentioned event is notified, the internal information acquisition means 11 extracts the event content from the event structure and converts the content into a predetermined format, for example, a formatted character string, and performs data compression. Send to means 12. Specifically, a data compression function call is performed using a character string as a parameter.
【0021】データ圧縮手段12では,上記のデータを
入力バッファ121へ保持し,保持したデータを圧縮し
てデータ出力手段13へ出力する。The data compressing means 12 holds the above data in the input buffer 121, compresses the held data and outputs it to the data output means 13.
【0022】〔第1の実施の形態〕図3に,第1の実施
の形態としてハフマン符号化によるデータ圧縮法を用い
たデータ圧縮手段の構成例を示す。[First Embodiment] FIG. 3 shows an example of the configuration of data compression means using a data compression method based on Huffman coding as a first embodiment.
【0023】ハフマン符号化は整数ビット数で構成され
る可変長符号を生成し,高い出現頻度を持つ記号ほど短
い符号で符号化するアルゴリズムである。Huffman coding is an algorithm that generates a variable length code composed of an integer number of bits, and encodes a symbol having a higher appearance frequency with a shorter code.
【0024】ハフマン符号化によるデータ圧縮法を用い
た場合に,データ圧縮手段200は,入力バッファ20
1と,入力バッファ201のデータの記号(文字)の出
現頻度をカウントする出現頻度カウント部202と,記
号の出現頻度から符号表204を生成する符号生成部2
03と,入力データを符号化して出力バッファ206に
出力する符号化部205と,出力バッファ206とを備
える。When a data compression method based on Huffman coding is used, the data compression means 200
1, an appearance frequency counting unit 202 that counts the appearance frequency of symbols (characters) in the data in the input buffer 201, and a code generation unit 2 that generates a code table 204 from the appearance frequency of the symbols.
03, an encoding unit 205 for encoding input data and outputting the encoded data to the output buffer 206, and an output buffer 206.
【0025】ハフマン符号化ではデータの中の記号の出
現度数からハフマン符号表を作るために,まずデータを
一回読み込み,二回目の読み込みの時に符号化を行う。
本実施の形態では,すべてのデータを2回読み込むこと
は不可能なので,内部情報データを入力バッファ201
に読み込む時に出現頻度カウント部202により出現度
数をカウントして符号表204を作り,入力バッファ2
01がいっぱいになった時に符号化部205により符号
表204を参照してデータを符号化し,符号表204と
符号化されたデータを出力バッファ206へ出力する構
成とする。In Huffman coding, first, data is read once, and coding is performed at the time of second reading in order to create a Huffman code table from the frequency of appearance of symbols in the data.
In this embodiment, it is impossible to read all the data twice, so that the internal information data is stored in the input buffer 201.
When the data is read into the input buffer 2, the occurrence frequency is counted by the appearance frequency counting unit 202 to create a code table 204.
When 01 becomes full, the encoding unit 205 encodes the data with reference to the code table 204, and outputs the code table 204 and the encoded data to the output buffer 206.
【0026】データ出力手段13では,出力バッファ2
06の圧縮されたデータと符号表204を出力ファイル
3へ書き込むことによりデータを出力する。In the data output means 13, the output buffer 2
The data is output by writing the 06 compressed data and the code table 204 to the output file 3.
【0027】〔第2の実施の形態〕図4に,第2の実施
の形態としてLZ77圧縮法によるデータ圧縮法を用い
たデータ圧縮手段の構成例を示す。[Second Embodiment] FIG. 4 shows a configuration example of data compression means using a data compression method based on the LZ77 compression method as a second embodiment.
【0028】LZ77圧縮法は,一つの記号を可変長の
ビット列に符号化するのではなく,可変長の記号列を一
つのトークンとして符号化する辞書ベース圧縮法の一つ
である。LZ77圧縮法では,過去のデータ列を辞書と
して利用し,入力データ中のデータ列を過去のデータ列
へのポインタで置き換えて圧縮を行う。The LZ77 compression method is a dictionary-based compression method in which one symbol is not encoded into a variable-length bit string, but a variable-length symbol string is encoded as one token. In the LZ77 compression method, past data strings are used as a dictionary, and data strings in input data are replaced with pointers to past data strings to perform compression.
【0029】LZ77圧縮法を用いた場合に,データ圧
縮手段300は,移動するデータの窓として構成された
入力バッファ301と,これから符号化されるデータの
先頭を示す変数302と,これから符号化されるデータ
列303と今までに出現したデータ列を比較して,これ
から符号化されるデータ列303が今までに出現したか
否か,出現したならば何バイト前に何バイト長で同じデ
ータ列304が出現したかを検索するデータ列検索部3
05と,データ列の比較を行って入力データを符号化し
た結果を出力する出力バッファ306とを備える。When the LZ77 compression method is used, the data compression means 300 includes an input buffer 301 configured as a window for moving data, a variable 302 indicating the head of data to be encoded, and a variable 302 indicating the head of data to be encoded. The data string 303 that has been generated so far is compared with the data string that has appeared so far, and whether or not the data string 303 to be coded from now has ever appeared, and if so, how many bytes before and how long the same data string is Data string search unit 3 for searching whether 304 has appeared
05, and an output buffer 306 that outputs the result of encoding the input data by comparing the data strings.
【0030】例えば,これから符号されるデータ列30
3が「163908190145864」という,長さ
19バイトの文字列であり,同じデータ列304が22
バイト前に出現していたならば,「22,19」という
符号化データを出力バッファ306へ出力する。For example, a data sequence 30 to be encoded
3 is a character string of “163908190145864” having a length of 19 bytes, and the same data string 304 is 22 characters.
If it appears before the byte, the coded data “22, 19” is output to the output buffer 306.
【0031】入力バッファにまだ符号化されていないデ
ータが少なくなったら,窓を移動する。例えば,入力バ
ッファの前半分を捨て,後半分を前半分に移動し,後半
分に新たにデータを読み込み,同様に,これから符号化
されるデータ列303が今までに出現したかどうかを検
索する。When the amount of uncoded data in the input buffer decreases, the window is moved. For example, the first half of the input buffer is discarded, the second half is moved to the first half, new data is read in the second half, and similarly, it is searched whether or not the data sequence 303 to be encoded has ever appeared. .
【0032】データ出力手段13では,出力バッファ3
06のデータを出力ファイル3へ書き込むことによりデ
ータを出力する。In the data output means 13, the output buffer 3
The data is output by writing the data 06 in the output file 3.
【0033】〔第3の実施の形態〕図5に,第3の実施
の形態として,異なるデータ圧縮法を組み合わせてデー
タ圧縮を行うデータ圧縮手段の構成例を示す。Third Embodiment FIG. 5 shows, as a third embodiment, an example of the configuration of data compression means for performing data compression by combining different data compression methods.
【0034】第3の実施の形態では,第1の圧縮法とし
てLZ77圧縮法を用いて入力された内部情報データを
圧縮した後,第1の圧縮処理後のデータに対しさらに第
2の圧縮法としてハフマン符号化を行う方法である。In the third embodiment, after the internal information data input by using the LZ77 compression method as the first compression method, the data after the first compression processing is further compressed by the second compression method. To perform Huffman coding.
【0035】データ圧縮手段400は,LZ77圧縮法
によるデータ圧縮を行う第1のデータ圧縮部410とハ
フマン符号化によるデータ圧縮を行う第2のデータ圧縮
部420とを備える。The data compression means 400 includes a first data compression section 410 for performing data compression by the LZ77 compression method and a second data compression section 420 for performing data compression by Huffman coding.
【0036】第1の圧縮部410は,移動窓式の入力バ
ッファA411と,これから符号化されるデータの先頭
を示す変数412と,過去に現れたデータ列から,これ
から符号化されるデータ列と同じデータ列を検索するデ
ータ列検索部413とを備える。The first compression unit 410 includes a moving window type input buffer A 411, a variable 412 indicating the head of the data to be encoded from now on, and a data string to be encoded from the data string which appeared in the past. A data string search unit 413 for searching the same data string.
【0037】第2のデータ圧縮部420は,第1のデー
タ圧縮(LZ77圧縮法)による出力をバッファリング
する入力バッファB421と,入力されるデータの記号
の出現頻度をカウントする出現頻度カウント部422
と,記号の出現頻度から符号表424を生成する符号生
成部423と,符号表424と,入力バッファB421
のデータを符号化して出力バッファ426に出力する符
号化部425とを備える。The second data compression section 420 has an input buffer B421 for buffering the output of the first data compression (LZ77 compression method), and an appearance frequency counting section 422 for counting the appearance frequency of the symbol of the input data.
And a code generation unit 423 that generates a code table 424 from the appearance frequency of symbols, a code table 424, and an input buffer B421.
And an encoding unit 425 that encodes the data of.
【0038】内部情報取得手段11からのデータは逐
次,第1のデータ圧縮部410の移動窓式の入力バッフ
ァA411に入力され,データ列検索部413により,
LZ77圧縮法により圧縮される。その結果は,ハフマ
ン符号化によるデータ圧縮法を用いた第2のデータ圧縮
部420に送られ,記号の出現頻度をカウントしながら
入力バッファB421に格納され,入力バッファB42
1が一杯になった時,符号生成部423により出現頻度
をもとに符号表424が生成され,符号化部425によ
り入力バッファB421の内容は符号化して出力バッフ
ァ426へ出力される。The data from the internal information acquisition means 11 is sequentially input to the moving window type input buffer A 411 of the first data compression section 410,
It is compressed by the LZ77 compression method. The result is sent to the second data compression unit 420 using the data compression method based on Huffman coding, and is stored in the input buffer B421 while counting the appearance frequency of the symbol.
When 1 is full, a code table 424 is generated by the code generation unit 423 based on the appearance frequency, and the contents of the input buffer B 421 are coded by the coding unit 425 and output to the output buffer 426.
【0039】データ出力手段13では,出力バッファ4
26の内容を出力ファイル3へ書き込む。In the data output means 13, the output buffer 4
26 is written to the output file 3.
【0040】図6に,第3の実施の形態における本発明
の処理フローチャートを示す。本発明にかかる内部情報
取得システム1では,出力ファイル3をオープンし(ス
テップS1),仮想マシン2からイベント通知があった
ら(ステップS2),そのイベントが仮想マシン(V
M)終了イベントかどうかを判断して(ステップS
3),仮想マシン(VM)終了イベントでなければ,さ
らにメソッドがEnter,またはExitイベントか
どうかを判断する(ステップS4)。メソッドがEnt
er,またはExitイベントでなければその他の処理
を行うが,メソッドがEnter,またはExitイベ
ントであれば,イベント内容を取得し,1レコード分を
入力バッファA411へ読み込む(ステップS5)。入
力バッファA411がいっぱいかどうかを調べて(ステ
ップS6),入力バッファA411がいっぱいになるま
でステップS2〜ステップS5までの処理を繰り返す。
入力バッファA411がいっぱいであれば(ステップS
6),入力バッファA411のデータを第1のデータ圧
縮法(LZ77圧縮法)によりデータ圧縮し(ステップ
S7),1回の処理結果を入力バッファB421へ出力
する(ステップS8)。入力バッファA411のデータ
をすべて処理したかどうかを調べ(ステップS9),す
べてのデータを処理してるときは入力バッファA411
のデータをスライドさせ(ステップS10),入力バッ
ファB421がいっぱいになるまでステップS7〜ステ
ップS10の処理を繰り返す。FIG. 6 shows a processing flowchart of the present invention in the third embodiment. In the internal information acquisition system 1 according to the present invention, the output file 3 is opened (step S1), and when an event is notified from the virtual machine 2 (step S2), the event is transmitted to the virtual machine (V
M) Determine whether the event is an end event (step S
3) If it is not a virtual machine (VM) end event, it is further determined whether the method is an Enter event or an Exit event (step S4). Method is Ent
If the method is not an er or Exit event, other processing is performed. If the method is an Enter or Exit event, the contents of the event are acquired and one record is read into the input buffer A 411 (step S5). It is checked whether or not the input buffer A411 is full (step S6), and the processing from step S2 to step S5 is repeated until the input buffer A411 becomes full.
If the input buffer A411 is full (step S
6) The data in the input buffer A 411 is compressed by the first data compression method (LZ77 compression method) (step S7), and the result of one processing is output to the input buffer B 421 (step S8). It is checked whether all the data in the input buffer A411 has been processed (step S9). If all the data has been processed, the input buffer A411 is checked.
Is slid (step S10), and the processing of steps S7 to S10 is repeated until the input buffer B421 becomes full.
【0041】入力バッファB421がいっぱいであれば
(ステップS11),入力バッファB421のデータを
第2のデータ圧縮法(ハフマン符号化法)により符号化
し(ステップS12),符号化結果を出力バッファ42
6へ出力する(ステップS13)。その後,出力バッフ
ァ426の内容をすべて出力ファイル3へ出力し(ステ
ップS14),ステップS2の処理へ戻る。If the input buffer B421 is full (step S11), the data in the input buffer B421 is encoded by the second data compression method (Huffman encoding method) (step S12), and the encoded result is output to the output buffer 42.
6 (step S13). Thereafter, the entire contents of the output buffer 426 are output to the output file 3 (step S14), and the process returns to step S2.
【0042】ステップS3の処理で,通知されたイベン
トが仮想マシン(VM)終了イベントである場合には,
入力バッファA411の内容を,すべて圧縮して入力バ
ッファB421へ出力し(ステップS15),続いて入
力バッファB421のデータをすべて符号化して出力バ
ッファ426へ出力する(ステップS16)。その後,
出力バッファ426の内容をすべて出力ファイル3へ出
力して,出力ファイル3をクローズする(ステップS1
7)。In the process of step S3, if the notified event is a virtual machine (VM) end event,
The contents of the input buffer A 411 are all compressed and output to the input buffer B 421 (step S15), and then all the data in the input buffer B 421 are encoded and output to the output buffer 426 (step S16). afterwards,
The entire contents of the output buffer 426 are output to the output file 3, and the output file 3 is closed (step S1).
7).
【0043】以上,本発明をその実施の態様により説明
したが,本発明はその主旨の範囲において種々の変形が
可能である。例えば,本発明にかかる内部情報取得シス
テム1のデータ圧縮手段12では,可変長符号化による
圧縮法,辞書ベース圧縮法に限らず,他のデータ圧縮法
を用いてデータ圧縮を行うことも可能である。Although the present invention has been described with reference to the embodiments, the present invention can be variously modified within the scope of the gist. For example, the data compression means 12 of the internal information acquisition system 1 according to the present invention is not limited to the compression method using variable-length coding and the dictionary-based compression method, but can also perform data compression using other data compression methods. is there.
【0044】本発明の形態および実施例の特徴を列記す
ると以下のとおりである。 (付記1) 仮想マシンの内部情報データを取得し出力
する内部情報取得システムにおいて,仮想マシンの内部
情報データを取得する内部情報取得手段と,前記内部情
報データを圧縮するデータ圧縮手段と,前記圧縮したデ
ータを出力するデータ出力手段とを備えることを特徴と
する仮想マシン内部情報取得システム。 (付記2) 付記1に記載の仮想マシン内部情報取得シ
ステムにおいて,前記データ圧縮手段では,ハフマン符
号化のアルゴリズムを用いて前記内部情報データを圧縮
することを特徴とする仮想マシン内部情報取得システ
ム。 (付記3) 付記1に記載の仮想マシン内部情報取得シ
ステムにおいて,前記データ圧縮手段では,辞書ベース
圧縮法のアルゴリズムを用いて前記内部情報データを圧
縮することを特徴とする仮想マシン内部情報取得システ
ム。 (付記4) 付記1に記載の仮想マシン内部情報取得シ
ステムにおいて,前記データ圧縮手段では,辞書ベース
圧縮法のアルゴリズムを用いて前記内部情報データを圧
縮し,その後,ハフマン符号化のアルゴリズムを用いて
前記圧縮したデータを圧縮することを特徴とする仮想マ
シン内部情報取得システム。 (付記5) 仮想マシンの内部情報データを取得し出力
する内部情報取得システムをコンピュータにより実現さ
せるための内部情報取得プログラムにおいて,仮想マシ
ンの内部情報データを取得する内部情報取得手段と,前
記内部情報データを圧縮するデータ圧縮手段と,前記圧
縮したデータを出力するデータ出力手段とをコンピュー
タにより実現させることを特徴とする仮想マシン内部情
報取得プログラム。 (付記6) 付記5に記載の内部情報取得プログラムで
あって,前記内部情報取得手段では,仮想マシンの内部
情報データをリアルタイムに取得して第1のバッファに
書き込む処理と,前記データ圧縮手段では,前記第1の
バッファのデータ量がフルになったとき,または,所定
量を超えたとき,前記第1のバッファのデータに対し辞
書ベース圧縮法のアルゴリズムを用いてデータ圧縮し,
圧縮したデータを第2のバッファに書き込み,その後,
第2のバッファの前記圧縮したデータに対しハフマン符
号化のアルゴリズムを用いてデータ圧縮し,圧縮したデ
ータを出力バッファへ書き込む処理と,前記データ出力
手段では,前記出力バッファに保持された前記圧縮され
たデータを出力する処理とをコンピュータにより実現さ
せることを特徴とする仮想マシン内部情報取得プログラ
ム。The features of the embodiments and examples of the present invention are listed below. (Supplementary Note 1) In an internal information acquisition system that acquires and outputs internal information data of a virtual machine, an internal information acquisition unit that acquires internal information data of a virtual machine; a data compression unit that compresses the internal information data; And a data output means for outputting the converted data. (Supplementary Note 2) The virtual machine internal information acquisition system according to supplementary note 1, wherein the data compression means compresses the internal information data using a Huffman coding algorithm. (Supplementary note 3) The virtual machine internal information acquisition system according to supplementary note 1, wherein the data compression means compresses the internal information data using a dictionary-based compression algorithm. . (Supplementary Note 4) In the virtual machine internal information acquisition system according to supplementary note 1, the data compression unit compresses the internal information data using a dictionary-based compression algorithm, and then uses a Huffman coding algorithm. A virtual machine internal information acquisition system, wherein the compressed data is compressed. (Supplementary Note 5) In an internal information acquisition program for causing a computer to implement an internal information acquisition system that acquires and outputs internal information data of a virtual machine, an internal information acquisition unit that acquires internal information data of a virtual machine; A virtual machine internal information acquisition program, wherein a computer implements data compression means for compressing data and data output means for outputting the compressed data. (Supplementary Note 6) The internal information acquisition program according to Supplementary Note 5, wherein the internal information acquisition unit acquires the internal information data of the virtual machine in real time and writes the data into the first buffer; , When the data amount of the first buffer becomes full or exceeds a predetermined amount, the data of the first buffer is compressed using a dictionary-based compression algorithm,
Write the compressed data to the second buffer, and then
A process of compressing the compressed data in the second buffer using a Huffman coding algorithm and writing the compressed data to an output buffer; and a step of outputting the compressed data held in the output buffer by the data output unit. A virtual machine internal information acquisition program that causes a computer to execute the process of outputting the extracted data.
【0045】[0045]
【発明の効果】以上説明したように,本発明によれば,
仮想マシンから取得した内部情報データを圧縮して出力
することができ,出力されるデータ量を低減することが
できる。これにより,出力データのファイルによりディ
スク容量を圧迫することを防止し,または,別のコンピ
ュータにデータを転送する場合の不便さを解消すること
ができるという効果を奏する。As described above, according to the present invention,
The internal information data acquired from the virtual machine can be compressed and output, and the amount of output data can be reduced. This has the effect of preventing the output data file from squeezing the disk capacity or eliminating the inconvenience of transferring data to another computer.
【図1】本発明の原理を説明するための図である。FIG. 1 is a diagram for explaining the principle of the present invention.
【図2】内部情報データの例を示す図である。FIG. 2 is a diagram showing an example of internal information data.
【図3】第1の実施の形態におけるデータ圧縮手段の構
成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of a data compression unit according to the first embodiment.
【図4】第2の実施の形態におけるデータ圧縮手段の構
成例を示す図である。FIG. 4 is a diagram illustrating a configuration example of a data compression unit according to a second embodiment.
【図5】第3の実施の形態におけるデータ圧縮手段の構
成例を示す図である。FIG. 5 is a diagram illustrating a configuration example of a data compression unit according to a third embodiment.
【図6】第3の実施の形態における本発明の処理フロー
チャートである。FIG. 6 is a processing flowchart of the present invention in the third embodiment.
1 内部情報取得システム 11 内部情報取得手段 12 データ圧縮手段 13 データ出力手段 2 仮想マシン 3 出力ファイル DESCRIPTION OF SYMBOLS 1 Internal information acquisition system 11 Internal information acquisition means 12 Data compression means 13 Data output means 2 Virtual machine 3 Output file
Claims (4)
力する内部情報取得システムにおいて,仮想マシンの内
部情報データを取得する内部情報取得手段と,前記内部
情報データを圧縮するデータ圧縮手段と,前記圧縮した
データを出力するデータ出力手段とを備えることを特徴
とする仮想マシン内部情報取得システム。An internal information acquisition system for acquiring and outputting internal information data of a virtual machine; an internal information acquisition unit for acquiring internal information data of a virtual machine; a data compression unit for compressing the internal information data; A virtual machine internal information acquisition system, comprising: data output means for outputting compressed data.
得システムにおいて,前記データ圧縮手段では,ハフマ
ン符号化のアルゴリズムを用いて前記内部情報データを
圧縮することを特徴とする仮想マシン内部情報取得シス
テム。2. The virtual machine internal information acquisition system according to claim 1, wherein said data compression means compresses said internal information data by using a Huffman coding algorithm. system.
得システムにおいて,前記データ圧縮手段では,辞書ベ
ース圧縮法のアルゴリズムを用いて前記内部情報データ
を圧縮することを特徴とする仮想マシン内部情報取得シ
ステム。3. The virtual machine internal information according to claim 1, wherein the data compression means compresses the internal information data using an algorithm of a dictionary-based compression method. Acquisition system.
得システムにおいて,前記データ圧縮手段では,辞書ベ
ース圧縮法のアルゴリズムを用いて前記内部情報データ
を圧縮し,その後,ハフマン符号化のアルゴリズムを用
いて前記圧縮したデータを圧縮することを特徴とする仮
想マシン内部情報取得システム。4. The virtual machine internal information acquisition system according to claim 1, wherein said data compression means compresses said internal information data using an algorithm of a dictionary-based compression method, and thereafter executes an algorithm of Huffman encoding. A virtual machine internal information acquisition system, wherein the compressed data is compressed by using the compressed data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001138233A JP2002333998A (en) | 2001-05-09 | 2001-05-09 | System for acquiring inside information of virtual machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001138233A JP2002333998A (en) | 2001-05-09 | 2001-05-09 | System for acquiring inside information of virtual machine |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002333998A true JP2002333998A (en) | 2002-11-22 |
Family
ID=18985204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001138233A Withdrawn JP2002333998A (en) | 2001-05-09 | 2001-05-09 | System for acquiring inside information of virtual machine |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002333998A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007213490A (en) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | Application server system and virtual machine program |
JP2009169474A (en) * | 2008-01-10 | 2009-07-30 | Mitsubishi Electric Corp | System log management support device and system log management support method |
WO2009099045A1 (en) * | 2008-02-04 | 2009-08-13 | Nec Corporation | Trace/failure observation system, trace/failure observation method, and trace/failure observation program |
WO2012049863A1 (en) * | 2010-10-14 | 2012-04-19 | 株式会社日立製作所 | Operation log storage system, device, and program |
JP2015534770A (en) * | 2012-09-26 | 2015-12-03 | クアルコム,インコーポレイテッド | Method and apparatus for memory-based packet compression encoding |
-
2001
- 2001-05-09 JP JP2001138233A patent/JP2002333998A/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007213490A (en) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | Application server system and virtual machine program |
US8332845B2 (en) | 2006-02-13 | 2012-12-11 | Fujitsu Limited | Compile timing based on execution frequency of a procedure |
JP2009169474A (en) * | 2008-01-10 | 2009-07-30 | Mitsubishi Electric Corp | System log management support device and system log management support method |
WO2009099045A1 (en) * | 2008-02-04 | 2009-08-13 | Nec Corporation | Trace/failure observation system, trace/failure observation method, and trace/failure observation program |
JP5505781B2 (en) * | 2008-02-04 | 2014-05-28 | 日本電気株式会社 | Trace / failure observation system, trace / failure observation method, and trace / failure observation program |
US8799753B2 (en) | 2008-02-04 | 2014-08-05 | Nec Corporation | Trace/failure observation system, trace/failure observation method, and trace/failure observation program |
WO2012049863A1 (en) * | 2010-10-14 | 2012-04-19 | 株式会社日立製作所 | Operation log storage system, device, and program |
JP2015534770A (en) * | 2012-09-26 | 2015-12-03 | クアルコム,インコーポレイテッド | Method and apparatus for memory-based packet compression encoding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4558302A (en) | High speed data compression and decompression apparatus and method | |
CN106570018B (en) | Serialization and deserialization method, device and system and electronic equipment | |
US7924183B2 (en) | Method and system for reducing required storage during decompression of a compressed file | |
Alcock et al. | Libtrace: A packet capture and analysis library | |
US7952500B2 (en) | Serialization of shared and cyclic data structures using compressed object encodings | |
Chen et al. | Heap compression for memory-constrained Java environments | |
JP2002529849A (en) | Data compression method for intermediate object code program executable in embedded system supplied with data processing resources, and embedded system corresponding to this method and having multiple applications | |
KR101535703B1 (en) | Apparatus and method for converting Value Object | |
US20180225298A1 (en) | Adaptive rate compression hash processing device | |
US20220129417A1 (en) | Code Similarity Search | |
CN111104258A (en) | MongoDB database backup method and device and electronic equipment | |
US8542137B2 (en) | Decoding encoded data | |
JP2002333998A (en) | System for acquiring inside information of virtual machine | |
US9479195B2 (en) | Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device | |
JP6540340B2 (en) | Function call information collecting method and function call information collecting program | |
Krishnamoorthy et al. | Scalable communication trace compression | |
JP5709903B2 (en) | METHOD, SYSTEM, COMPUTER PROGRAM, RECORDING MEDIUM, DATA STORAGE MEDIUM STORING DATA COLLECTION, AND CALL DATA RECORDING SYSTEM FOR COMPRESSING DATA RECORD AND PROCESSING COMPRESSED DATA RECORD | |
KR101218087B1 (en) | Method for Extracting InputFormat for Binary Format Data in Hadoop MapReduce and Binary Data Analysis Using the Same | |
US6654867B2 (en) | Method and system to pre-fetch compressed memory blocks using pointers | |
US8463759B2 (en) | Method and system for compressing data | |
CN111935237B (en) | Log processing method and system, electronic device and storage medium | |
JP2016170750A (en) | Data management program, information processor and data management method | |
US9496895B2 (en) | Compression method and decompression method | |
JP2003337822A (en) | Compression retrieval archive processing method, compression retrieval archive processing program and recording medium with its program recorded | |
JPH06290021A (en) | Method for compressing source program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080805 |