JP2015170084A - 計算機装置及びプロセス解析方法及びプログラム - Google Patents
計算機装置及びプロセス解析方法及びプログラム Download PDFInfo
- Publication number
- JP2015170084A JP2015170084A JP2014043890A JP2014043890A JP2015170084A JP 2015170084 A JP2015170084 A JP 2015170084A JP 2014043890 A JP2014043890 A JP 2014043890A JP 2014043890 A JP2014043890 A JP 2014043890A JP 2015170084 A JP2015170084 A JP 2015170084A
- Authority
- JP
- Japan
- Prior art keywords
- execution environment
- trace
- process execution
- determination
- result
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
これに対し、トレース情報に実行ユーザ名を追加することでプロセスのトレース結果の確認を容易にしようとすることが行われていた(例えば、特許文献1)。
第1のプロセス実行環境が存在し、前記第1のプロセス実行環境内に第2のプロセス実行環境が存在する計算機装置であって、
プロセスごとに、プロセスの挙動をトレースするトレース部と、
プロセスごとに、プロセスが実行される実行環境が前記第1のプロセス実行環境及び前記第2のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断部と、
同一のプロセスに対する前記トレース部のトレース結果と前記プロセス実行環境判断部の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成部とを有することを特徴とする。
図1は、本実施の形態に係るプログラムトレースを行う計算機装置10を示す構成図である。
プロセス実行環境A20は、第1のプロセス実行環境の例に相当する。
プロセス実行環境B30は、第2のプロセス実行環境の例に相当する。
トレース部40は、トレース情報生成部の例でもある。
プロセス実行環境A20は、カーネル24とユーザランドA23を用いてプロセスAA21及びプロセスAB22を制御する。
プロセス実行環境B30は、プロセス実行環境A20内のカーネル24を共用し、ユーザランドA23の一部機能とユーザランドB33を用いてプロセスBA31及びプロセスBB32を制御する。
この構成はLinux(登録商標)ではコンテナと呼ばれるものである。
タイムスタンプ102は、当該レコードをプロセス実行環境管理テーブル44に登録した時間を格納している。
プロセス名103は、プロセス管理部42で管理している各プロセスの実行名を格納している。
実行環境名104は、プロセス管理部42の情報を取得しプロセス実行環境判断部43にてプロセス実行環境を解析した結果を格納している。
処理204にて、プロセス実行環境判断部43は、プロセス名がinitかどうかの判定を行い、initであれば処理205にてプロセスIDが1か否かを確認し、1であれば処理206にてプロセス実行環境管理テーブル44に実行環境Aのプロセス(プロセス名init)として登録する。
プロセスIDが1でなければ処理207にて、プロセス実行環境判断部43は、プロセス実行環境管理テーブル44に実行環境Bのプロセス(プロセス名init)として登録する。
なお、プロセス名がinitのプロセスは、最初に起動され、他のプロセスを起動する始点プロセスである。
確認の結果処理209にて親プロセスが実行環境Aのinitプロセスの場合は、プロセス実行環境判断部43は、処理210にてプロセス実行環境管理テーブル44に実行環境Aのプロセス(プロセス名:モジュール名)を登録し、処理211にて親プロセスが実行環境Bのinitプロセスの場合は処理212にてプロセス実行環境管理テーブル44に実行環境Bのプロセス(プロセス名:モジュール名)を登録する。
処理209及び処理211にて親プロセスが実行環境Aのinitプロセス、実行環境Bのinitプロセスで無かった場合は、プロセス実行環境判断部43は、処理208にて確認した親プロセスについて更に処理208から処理213を実施してどちらのinitプロセスの属性なのかの調査を実施し、結果をプロセス実行環境管理テーブル44に登録する。
図6に示すトレース結果は、トレース情報の例に相当する。
処理502にて、トレース部40は、ftraceやstrace等のLinux(登録商標)で使用する任意のトレースプログラムを実行する。
これらのトレースプログラムは少なくとも図5で示す情報を持っている。
処理503でトレースを終了するまで、プロセス実行環境判断部43とトレースプログラムは動作し、終了操作が行われると処理504にてftrace等の任意のトレースプログラムを終了し、処理505にてプロセス実行環境判断部43を終了する。
その後、トレース部40は、処理506にてプロセス実行環境管理テーブル44とトレース結果300をマージし、図6に示したトレース結果を出力する。
図2ではプロセス実行環境A上でプロセスAA21とプロセスAB22が、プロセス実行環境BでプロセスBA31とプロセスBB32が動作していることを示しているが、これは動作を説明するための例であり、プロセス数は2に限定しない。
操作者がトレースを開始した際、図7に示す処理が実行され、処理501にてプロセス実行環境判断部43を実行し図4に示した処理がプロセス実行環境判断部43にて開始される。
プロセス実行環境AのinitプロセスのプロセスIDは1であるため、先ずに実行環境Aのinitプロセスがプロセス実行環境管理テーブル44に登録され、引き続き、プロセス実行環境A20の起動時に生成されたプロセスがプロセス実行環境管理テーブル44に登録される。
続いて、プロセス実行環境B30のinitが登録される。
プロセス実行環境B30のinitのプロセスIDは、プロセス実行環境A20から参照すると1ではないため、プロセス実行環境A20のinitプロセスとプロセス実行環境B30のinitプロセスが区別できることになる。
引き続き、プロセス実行環境A20またはプロセス実行環境B30上のプロセスがプロセス実行環境管理テーブル44に登録される。
次に、処理502にてftraceやstrace等のLinux(登録商標)で使用する任意のトレースプログラムを実行する。
ftraceやstrace等のLinux(登録商標)で使用する任意のトレースプログラムは既知のものであり、詳細の動作について説明は省略するが、少なくとも、図5に示すID301、タイムスタンプ302、プロセスID303、イベント304を出力する。
次に処理506にてプロセス実行環境管理テーブル44とトレース結果300を用いてマージする。
マージする際、プロセス実行環境管理テーブル44のレコードにあるプロセスID101の番号とトレース結果300のレコードにあるプロセスID303の情報だけではなく、プロセス実行環境管理テーブル44のレコードにあるタイムスタンプ102の時間情報とトレース結果300のレコードにあるタイムスタンプ402の時間情報の情報を用い、プロセス実行環境管理テーブル44のプロセスIDが一致し、なおかつ、時間情報の差分が最小となるレコードに存在する実行環境名104をマージする。
これは、プロセスIDは再利用される場合があり、なおかつ、図8に示すとおりトレースログ記録の時間情報とプロセス実行環境管理テーブルの時間情報が前後する可能性を考慮するためである。
従来の構成では図9に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図6のトレース結果を用いることにより、図9のみならず、図10や図11に示すようにプロセス実行環境を考慮したプロセスの動作状況を確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握が非常に容易となる効果が得られる。
以上の実施の形態1では、図6に示すトレース結果をトレース後にマージすることにより実現可能とするようにしたものであるが、次に図6に示すトレース結果を都度マージする場合の実施形態を示す。
図12はこのような場合のトレース部40の処理フローである。
次に、処理602にてftraceやstrace等のLinux(登録商標)で使用する任意のトレースプログラムを実行する。
これらのトレースプログラムは少なくとも図5で示す情報を持っている。
処理603でトレース結果300のレコードにトレース結果400に存在しないレコードを検出した場合は、処理604にて該当レコードのプロセスIDがプロセス実行環境管理テーブルに登録されているかを確認し、登録がある場合は処理605にて当該レコードをマージしてトレース結果400のレコードに登録を行う。
処理604は、図8に示すとおりトレースログ記録の時間情報とプロセス実行環境管理テーブルの時間情報が前後する可能性を考慮したものである。
従来の構成では図9に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図6のトレース結果を用いることにより、図9のみならず、図10や図11に示すようにプロセス実行環境を考慮したプロセスの動作状況をリアルタイムで確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握がリアルタイムで容易となる効果が得られる。
以上の実施の形態1では、プロセス実行環境判断部をポーリングにより動作させるものであるが、次に図13に示すプロセス実行環境判断部をイベントにより動作させる場合について説明する。
図13は、本実施の形態に係るプログラムトレースを行う計算機装置710を示す構成図である。
プロセス実行環境A720は、第1のプロセス実行環境の例に相当する。
プロセス実行環境B730は、第2のプロセス実行環境の例に相当する。
トレース部740は、トレース情報生成部の例でもある。
プロセス実行環境A720は、カーネル724とユーザランドA723を用いてプロセスAA721及びプロセスAB722を制御する。
プロセス実行環境B730は、プロセス実行環境A720内のカーネル724を共用し、ユーザランドA723の一部機能とユーザランドB733を用いてプロセスBA731及びプロセスBB732を制御する。
この構成はLinux(登録商標)ではコンテナと呼ばれるものである。
処理804にて、プロセス実行環境判断部743は、プロセス名がinitかどうかの判定をおこない、initであれば処理805にてプロセスIDが1か否かを確認し、1であれば処理806にてプロセス実行環境管理テーブル744に実行環境Aのプロセス(プロセス名init)として登録する。
プロセスIDが1でなければ処理807にて、プロセス実行環境判断部743は、プロセス実行環境管理テーブル744に実行環境Bのプロセス(プロセス名init)として登録する。
なお、プロセス名がinitのプロセスは、最初に起動され、他のプロセスを起動する始点プロセスである。
確認の結果処理809にて親プロセスが実行環境Aのinitプロセスの場合は、プロセス実行環境判断部743は、処理810にてプロセス実行環境管理テーブル744に実行環境Aのプロセス(プロセス名:モジュール名)を登録し、処理811にて親プロセスが実行環境Bのinitプロセスの場合は処理812にてプロセス実行環境管理テーブル744に実行環境Bのプロセス(プロセス名:モジュール名)を登録する。
処理809及び処理811にて親プロセスが実行環境Aのinitプロセス、実行環境Bのinitプロセスで無かった場合は、プロセス実行環境判断部743は、処理808にて確認した親プロセスについて更に処理808から処理813を実施してどちらのinitプロセスの属性なのかの調査を実施し、結果をプロセス実行環境管理テーブル744に登録する。
従来の構成では図9に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図6のトレース結果を用いることにより、図9のみならず、図10や図11に示すようにプロセス実行環境を考慮したプロセスの動作状況を確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握が非常に容易となる効果が得られる。
以上の実施の形態3では、トレース中のCPU負荷を減少させ図6に示すトレース結果をトレース後にマージすることにより実現可能ものであるが、次に図6に示すトレース結果を都度マージする場合の実施形態を示す。
次に、処理602にてftraceやstrace等のLinux(登録商標)で使用する任意のトレースプログラムを実行する。
これらのトレースプログラムは少なくとも図5で示す情報を持っている。
処理603でトレース結果300のレコードにトレース結果400に存在しないレコードを検出した場合は、処理604にて該当レコードのプロセスIDがプロセス実行環境管理テーブルに登録されているかを確認し、登録がある場合は処理605にて当該レコードをマージしてトレース結果400のレコードに登録を行う。
処理604は、図8に示すとおりトレースログ記録の時間情報とプロセス実行環境管理テーブルの時間情報が前後する可能性を考慮したものである。
従来の構成では図9に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図6のトレース結果を用いることにより、図9のみならず、図10や図11に示すようにプロセス実行環境を考慮したプロセスの動作状況をリアルタイムで確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握がリアルタイムで容易となる効果が得られる。
計算機装置10、710はコンピュータであり、計算機装置10、710の各要素をプログラムで実現することができる。
計算機装置10、710のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えば、NIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、図1及び図13に示す「〜部」(トレース記憶部41、741を除く、以下も同様)として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1及び図13に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態1〜4の説明において、「〜の判断」、「〜の判定」、「〜の確認」、「〜の抽出」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
Claims (9)
- 第1のプロセス実行環境が存在し、前記第1のプロセス実行環境内に第2のプロセス実行環境が存在する計算機装置であって、
プロセスごとに、プロセスの挙動をトレースするトレース部と、
プロセスごとに、プロセスが実行される実行環境が前記第1のプロセス実行環境及び前記第2のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断部と、
同一のプロセスに対する前記トレース部のトレース結果と前記プロセス実行環境判断部の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成部とを有することを特徴とする計算機装置。 - 前記プロセス実行環境判断部は、
判断対象のプロセスである判断対象プロセスが、最初に起動され、他のプロセスを起動する始点プロセスであるか否かを判別し、
前記判断対象プロセスが始点プロセスである場合に、当該始点プロセスが実行される実行環境が前記第1のプロセス実行環境及び前記第2のプロセス実行環境のいずれであるかを判断し、
前記判断対象プロセスが始点プロセスでない場合に、前記判断対象プロセスの始点プロセスを特定し、当該始点プロセスに対して判断した実行環境が、前記判断対象プロセスが実行される実行環境であると判断することを特徴とする請求項1に記載の計算機装置。 - 前記トレース情報生成部は、
前記トレース部のトレース結果に含まれるプロセス識別子と時刻情報と、前記プロセス実行環境判断部の判断結果に含まれるプロセス識別子と時刻情報とに基づいて、同一のプロセスに対する前記トレース部のトレース結果と前記プロセス実行環境判断部の判断結果とを判別し、
判別したトレース結果と判断結果とを組み合わせて前記トレース情報を生成することを特徴とする請求項1に記載の計算機装置。 - 前記トレース情報生成部は、
トレース対象のプロセスの全てに対して前記トレース部によるトレースが完了し、判断対象のプロセスの全てに対して前記プログラム実行環境判断部による実行環境の判断が完了した後に、前記トレース情報を生成することを特徴とする請求項1に記載の計算機装置。 - 前記トレース情報生成部は、
いずれかのプロセスに対して前記トレース部によるトレースが完了し、前記プロセスに対して前記プログラム実行環境判断部による実行環境の判断が完了した場合に、前記トレース情報を生成することを特徴とする請求項1に記載の計算機装置。 - 前記プロセス実行環境判断部は、
実行環境の判断が未実施であるプロセスを検出し、検出したプロセスの実行環境が前記第1のプロセス実行環境及び前記第2のプロセス実行環境のいずれであるかを判断することを特徴とする請求項1に記載の計算機装置。 - 前記プロセス実行環境判断部は、
プロセスが生成された際に、生成されたプロセスを通知するメッセージを受信し、前記メッセージで通知されたプロセスの実行環境が前記第1のプロセス実行環境及び前記第2のプロセス実行環境のいずれであるかを判断することを特徴とする請求項1に記載の計算機装置。 - 第1のプロセス実行環境が存在し、前記第1のプロセス実行環境内に第2のプロセス実行環境が存在する計算機装置が行うプロセス解析方法であって、
前記計算機装置が、プロセスごとに、プロセスの挙動をトレースするトレース処理と、
前記計算機装置が、プロセスごとに、プロセスが実行される実行環境が前記第1のプロセス実行環境及び前記第2のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断処理と、
前記計算機装置が、同一のプロセスに対する前記トレース処理のトレース結果と前記プロセス実行環境判断処理の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成処理とを有することを特徴とするプロセス解析方法。 - 第1のプロセス実行環境が存在し、前記第1のプロセス実行環境内に第2のプロセス実行環境が存在する計算機装置に、
プロセスごとに、プロセスの挙動をトレースするトレース処理と、
プロセスごとに、プロセスが実行される実行環境が前記第1のプロセス実行環境及び前記第2のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断処理と、
同一のプロセスに対する前記トレース処理のトレース結果と前記プロセス実行環境判断処理の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成処理とを実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014043890A JP6272088B2 (ja) | 2014-03-06 | 2014-03-06 | 計算機装置及びプロセス解析方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014043890A JP6272088B2 (ja) | 2014-03-06 | 2014-03-06 | 計算機装置及びプロセス解析方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015170084A true JP2015170084A (ja) | 2015-09-28 |
JP6272088B2 JP6272088B2 (ja) | 2018-01-31 |
Family
ID=54202786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014043890A Expired - Fee Related JP6272088B2 (ja) | 2014-03-06 | 2014-03-06 | 計算機装置及びプロセス解析方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6272088B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328597A (ja) * | 2006-06-08 | 2007-12-20 | Mitsubishi Electric Corp | コンピュータシステム、コンピュータシステムのトレースデータ蓄積方法およびトレースデータ蓄積プログラム |
US20100064299A1 (en) * | 2008-09-09 | 2010-03-11 | Kace Networks, Inc. | Deployment and Management of Virtual Containers |
-
2014
- 2014-03-06 JP JP2014043890A patent/JP6272088B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328597A (ja) * | 2006-06-08 | 2007-12-20 | Mitsubishi Electric Corp | コンピュータシステム、コンピュータシステムのトレースデータ蓄積方法およびトレースデータ蓄積プログラム |
US20100064299A1 (en) * | 2008-09-09 | 2010-03-11 | Kace Networks, Inc. | Deployment and Management of Virtual Containers |
Non-Patent Citations (1)
Title |
---|
JONATHAN CORBET 他: "「Part3 上級編 知って得する 最新Linuxカーネルのツボ」", 日経LINUX, vol. 第16巻 第2号, JPN6017038390, 8 January 2014 (2014-01-08), JP, pages 第42頁-第56頁 * |
Also Published As
Publication number | Publication date |
---|---|
JP6272088B2 (ja) | 2018-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10348747B2 (en) | Non-transitory computer-readable recording medium storing cyber attack analysis support program, cyber attack analysis support method, and cyber attack analysis support device | |
US10042669B2 (en) | Concurrent execution of a computer software application along multiple decision paths | |
KR102301946B1 (ko) | 분산 시스템에서 결함을 분석하기 위한 비주얼 툴 | |
CN110865867A (zh) | 应用拓扑关系发现的方法、装置和系统 | |
US9323649B2 (en) | Detecting error states when interacting with web applications | |
US9396233B2 (en) | Alert management | |
US11048799B2 (en) | Dynamic malware analysis based on shared library call information | |
US20180341769A1 (en) | Threat detection method and threat detection device | |
US20230376478A1 (en) | Verifying structured data | |
JP2010003224A (ja) | テスト情報管理サーバ、テスト情報管理方法、およびプログラム | |
US20160112285A1 (en) | Apparatus and method for detecting abnormal connection | |
JP6238221B2 (ja) | ソフトウェアの実行を監視する装置、方法およびプログラム | |
JP6505849B2 (ja) | 要素識別子の生成 | |
JP2013222422A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
US9959133B2 (en) | Identification and removal of zombie virtual machines | |
US10235264B2 (en) | Method and system for monitoring health of a virtual environment | |
JP6272088B2 (ja) | 計算機装置及びプロセス解析方法及びプログラム | |
US20140172369A1 (en) | Computer-readable recording medium, abnormality cause estimating apparatus, and abnormality cause estimating method | |
JP6536680B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
EP3639135A2 (en) | Apparatuses, methods and systems for persisting values in a computing environment | |
US20130111449A1 (en) | Static analysis with input reduction | |
JP2019028689A (ja) | 不要ファイル検出装置、不要ファイル検出方法および不要ファイル検出プログラム | |
US8856634B2 (en) | Compensating for gaps in workload monitoring data | |
US9830253B2 (en) | Eliminating redundant interactions when testing computer software applications | |
US10102100B2 (en) | Optimizing automated interactions with computer software applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171010 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171122 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6272088 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |