JP6287055B2 - 情報処理装置、情報収集方法および情報収集プログラム - Google Patents

情報処理装置、情報収集方法および情報収集プログラム Download PDF

Info

Publication number
JP6287055B2
JP6287055B2 JP2013220963A JP2013220963A JP6287055B2 JP 6287055 B2 JP6287055 B2 JP 6287055B2 JP 2013220963 A JP2013220963 A JP 2013220963A JP 2013220963 A JP2013220963 A JP 2013220963A JP 6287055 B2 JP6287055 B2 JP 6287055B2
Authority
JP
Japan
Prior art keywords
information
area
investigation
memory
volatile memory
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.)
Active
Application number
JP2013220963A
Other languages
English (en)
Other versions
JP2015082279A (ja
Inventor
弘行 星野
弘行 星野
憲司 岩澤
憲司 岩澤
雅子 西山
雅子 西山
祐輔 倉澤
祐輔 倉澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013220963A priority Critical patent/JP6287055B2/ja
Priority to US14/507,943 priority patent/US9710319B2/en
Publication of JP2015082279A publication Critical patent/JP2015082279A/ja
Application granted granted Critical
Publication of JP6287055B2 publication Critical patent/JP6287055B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、情報収集方法および情報収集プログラムに関する。
コンピュータで発生する処理の異常の1つとして、メモリリークがある。メモリリークは、プログラムが処理のために占有したメモリ領域が、何らかの理由で解放されないままになって、使用可能なメモリ領域が減ってしまう現象である。また、メモリリークの発生原因を調査するためには、メモリリークが発生した状態でのメモリダンプ情報を採取することが有用であるが、一般的にメモリリークの発生原因の調査の難易度は高いと言われている。
また、メモリダンプに関する技術の例としては、メモリ空間を区切った各メモリ領域の優先度を決定し、決定した優先度の順番にメモリ領域に記憶されている情報を圧縮して、ダンプファイルに出力するものがある。また、他の例として、メモリ領域のデータに連続した同一のコードが存在すれば、あらかじめ決められた規則によりデータを圧縮して採取するものがある。
特開2009−205254号公報 特開平5−233383号公報
ところで、メモリリークなどの処理の異常が発生した場合、一般的に、コンピュータの電源オフおよび電源オンが行われ、異常状態が解消される。また、コンピュータの電源がオフされる前に、異常発生原因の調査のために使用される調査情報が収集されて、コンピュータ内の不揮発性記憶媒体に記録される。
ここで、調査情報の収集処理を実行する際にも、作業領域としてある程度のメモリ領域が必要となる。しかしながら、調査情報の収集のための作業領域を、異常が発生していない正常動作時にメモリ内にあらかじめ確保しておいた場合、その作業領域の分だけ使用可能なメモリ容量が小さくなり、正常動作時のコンピュータの性能に影響を与える可能性がある。
1つの側面では、本発明は、装置性能に影響を与えずに異常発生原因の調査のための情報を収集可能な情報処理装置、情報収集方法および情報収集プログラムを提供することを目的とする。
1つの案では、次のような情報処理装置が提供される。この情報処理装置は、揮発性メモリおよび不揮発性メモリを有するとともに、領域設定部および情報収集部を有する。領域設定部は、処理の異常が発生したことを検知すると、揮発性メモリの記憶領域のうち、異常発生原因の調査のために使用される調査情報の収集対象領域を除く記憶領域に、作業領域を設定する。情報収集部は、調査情報を揮発性メモリから収集して不揮発性メモリへ格納する処理を、設定された作業領域を用いて実行する。
また、1つの案では、上記の情報処理装置と同様の処理がコンピュータによって実行される情報収集方法が提供される。
さらに、1つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させる情報収集プログラムが提供される。
1態様によれば、装置性能に影響を与えずに異常発生原因の調査のための情報を収集できる。
第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 ストレージ制御装置の処理機能の構成例を示すブロック図である。 調査情報収集部の処理について説明するための図である。 作業領域管理テーブルに登録される情報の例を示す図である。 調査情報管理テーブルに登録される情報の例を示す図である。 確保された作業領域のサイズに応じた調査情報の収集および格納処理について説明するための図である。 ストレージ制御装置の処理手順の例を示すフローチャート(その1)である。 ストレージ制御装置の処理手順の例を示すフローチャート(その2)である。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。情報処理装置1は、揮発性メモリ11、不揮発性メモリ12、領域設定部13および情報収集部14を有する。
揮発性メモリ11は、情報処理装置1の処理の際に各種のデータが一時的に記憶される。例えば、不揮発性メモリ12には、情報処理装置1が実行するプログラムの一部や、プログラムの実行に必要なデータが記憶される。不揮発性メモリ12には、情報処理装置1の電源がオフになった場合にも保持されるべき情報が記憶される。
領域設定部13および情報収集部14の処理は、例えば、情報処理装置1が備えるプロセッサが所定のプログラムを実行することで実現される。領域設定部13および情報収集部14は、情報処理装置1で処理の異常が発生した場合に、次のような処理を実行する。
領域設定部13は、処理の異常が発生したことを検知すると、揮発性メモリ11の記憶領域のうち、調査情報21の収集対象領域を除く記憶領域に、情報収集部14の処理で使用される作業領域11aを設定する(図1中のステップS1)。調査情報21とは、異常発生原因の調査のために使用される情報である。調査情報21の収集対象領域には作業領域11aを設定しないように制御されることで、調査情報21を確実に収集することができ、異常発生原因を究明できる可能性が高まる。
例えば、処理の異常としてメモリリークが発生した場合には、メモリリークが発生した領域が調査情報21の収集対象領域となる。メモリリークは、揮発性メモリ11上の所定領域において使用可能なメモリ容量が枯渇する現象である。メモリリークの発生原因の調査のためには、メモリリークが発生した領域(すなわち、使用可能なメモリ容量が枯渇した一定の領域)から調査情報21を収集することが有用である。このため、メモリリークが発生した領域は、作業領域11aが設定され得る領域から除外される。
メモリリークに対応する調査情報21としては、例えば、メモリリークが発生した領域のメモリリソースが割り当てられたタスクやプログラムを示す管理情報が考えられる。なお、このような管理情報の一部が、揮発性メモリ11の記憶領域のうち、メモリリークが発生した領域とは異なる領域にも格納されている場合には、その領域も調査情報21の収集対象領域となり、作業領域11aが設定され得る領域から除外される。また、メモリリークが発生した領域全体の情報(メモリダンプ情報)を、調査情報21とすることもできる。
情報収集部14は、調査情報21を揮発性メモリ11から収集して、不揮発性メモリ12へ格納する。情報収集部14は、このような処理を、領域設定部13によって設定された作業領域11aを用いて実行する。
例えば、情報収集部14は、揮発性メモリ11から収集した調査情報21を作業領域11aに一時的に記録し(図1中のステップS2)、その後にそれらの調査情報21を作業領域11aから読み出して不揮発性メモリ12に格納する(図1中のステップS3)。あるいは、情報収集部14は、揮発性メモリ11から収集した調査情報21を、作業領域11aを用いて編集し、編集後の調査情報を不揮発性メモリ12に格納してもよい。あるいは、情報収集部14の処理を実現するプログラムの一部が、作業領域11aに格納されてもよい。
以上の処理により、収集された調査情報21が不揮発性メモリ12に格納される。これにより、情報処理装置1の電源がオフになった場合でも、調査情報21を保持しておくことができる。例えば、情報処理装置1において処理の異常が発生した場合に、情報処理装置1の電源をオフにした後オンにすることで、異常状態を解消することができる。この場合に、情報処理装置1の電源をオフにする前に、領域設定部13および情報収集部14による上記処理が実行されて、収集された調査情報21が不揮発性メモリ12に格納される。これにより、管理者は、情報処理装置1の電源が再度オンになったときに調査情報21を不揮発性メモリ12から取得して、異常の発生原因を解析することが可能になる。
ここで、上記のように、調査情報21を収集するためには、収集された調査情報21の一時的な記憶や、その編集処理などのために、揮発性メモリ11上に作業領域を確保する必要がある。このような作業領域が、異常が発生する前から揮発性メモリ11に確保されていると、その分だけ揮発性メモリ11における使用可能な容量が小さくなり、正常動作時の情報処理装置1の性能が低下する可能性がある。
このような問題に対して、処理の異常が発生した後に、領域設定部13により調査情報21の収集のための作業領域11aが揮発性メモリ11に確保されることで、正常動作時の情報処理装置1の性能低下を招くことなく、調査情報21を収集できるようになる。また、作業領域11aが、揮発性メモリ11の記憶領域のうち、調査情報21の収集対象領域を除く領域に設定されることで、異常発生原因の究明に必要な調査情報21を確実に収集できるようになる。
〔第2の実施の形態〕
次に、処理の異常の例としてメモリリークを挙げて説明する。また、図1の情報処理装置1に対応する装置を含むシステムとして、ストレージシステムを例示する。
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ制御装置100とディスクアレイ200とを有する。
ディスクアレイ200は、ストレージ制御装置100からのアクセス制御の対象となる複数の記憶装置を備えている。本実施の形態では、ディスクアレイ200は、ストレージ制御装置100からのアクセス制御の対象となる記憶装置としてHDD200aを備える。ただし、ストレージ制御装置100からのアクセス制御の対象となる記憶装置としては、例えば、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置であってもよい。また、ストレージ制御装置100には、複数のディスクアレイ200が接続されていてもよい。
ストレージ制御装置100は、図1に示した情報処理装置1の一例である。ストレージ制御装置100は、図示しないホスト装置からの要求に応じて、ディスクアレイ200内のHDD200aに対してデータの読み書きを行う。ストレージ制御装置100は、例えば、次のようなハードウェア構成を有する。
ストレージ制御装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス111を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、ストレージ制御装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス111に接続されている周辺機器としては、HDD103、不揮発性メモリ104、表示装置105、入力装置106、読み取り装置107、管理端末インタフェース108、ホストインタフェース109およびディスクインタフェース110がある。
HDD103は、ストレージ制御装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSDなどの他の種類の不揮発性記憶装置を使用することもできる。
不揮発性メモリ104は、例えば、フラッシュメモリ、EEPROM(Electrically Erasable and Programmable Read Only Memory)などによって実現される。不揮発性メモリ104には、例えば、障害が発生した際に装置内部から収集される、障害発生原因を調査するための調査情報など、ストレージ制御装置100の電源がオフになっても保持されるべき情報が記録される。
表示装置105は、プロセッサ101からの命令に従って画像を表示する。表示装置105としては、液晶表示装置、有機EL(ElectroLuminescence)表示装置などがある。入力装置106は、ユーザによる操作入力を受け付け、操作入力に応じた信号をプロセッサ101に送信する。入力装置106としては、操作キー、タッチパネルなどがある。なお、表示装置105および入力装置106の少なくとも一方は、ストレージ制御装置100の外部に配置されて、ストレージ制御装置100とケーブルなどによって接続されていてもよい。
読み取り装置107には、可搬型記録媒体107aが脱着される。読み取り装置107は、可搬型記録媒体107aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体107aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
管理端末インタフェース108、ホストインタフェース109およびディスクインタフェース110は、ストレージ制御装置100の外部の装置と通信するための通信インタフェースである。
管理端末インタフェース108は、管理者によって操作される管理端末に接続し、管理端末との間でデータの送受信を行う。なお、管理者は、管理端末を用いて、例えば、ストレージ制御装置100の動作モードの設定や、不揮発性メモリ104に記録された調査情報の読み出しおよび解析などを行うことができる。
ホストインタフェース109は、図示しないネットワークを介してホスト装置に接続し、ホスト装置との間でデータの送受信を行う。ディスクインタフェース110は、ディスクアレイ200と接続し、プロセッサ101からの命令に応じて、ディスクアレイ200内のHDD200aに対するアクセスを制御する。
図3は、ストレージ制御装置の処理機能の構成例を示すブロック図である。ストレージ制御装置100は、処理部101aを有する。処理部101aは、プロセッサによって実現される。また、処理部101aは、メモリ割り当て部120、メモリリーク検出部130、調査情報収集部140およびリブート制御部150を有する。
メモリ割り当て部120、メモリリーク検出部130、調査情報収集部140およびリブート制御部150の処理は、例えば、ストレージ制御装置100が備えるプロセッサ101が所定のプログラムを実行することによって実現される。例えば、メモリ割り当て部120の処理は、OSプログラムの実行により実現され、メモリリーク検出部130の処理は、メモリリーク検出プログラムの実行により実現され、調査情報収集部140の処理は、調査情報収集プログラムの実行により実現され、リブート制御部150の処理は、BIOS(Basic Input / Output System)プログラムの実行により実現される。また、メモリリーク検出プログラムおよび調査情報収集プログラムはそれぞれ、例えば、OSプログラムまたはBIOSプログラムの一部であってもよい。
メモリ割り当て部120は、RAM102の記憶領域を、実行されるプログラムに割り当てる処理や、実行が終了したプログラムに割り当てていた記憶領域を解放する処理を行う。メモリ割り当て部120は、RAM102の記憶領域を、その用途に応じて複数の分割領域に分割し、それぞれ個別のメモリリソースプールとして管理する。そして、メモリ割り当て部120は、それぞれの分割領域から、一定サイズの部分領域を単位として、プログラムへの割り当てを行う。
本実施の形態では、例として、RAM102の記憶領域は、システム域201およびユーザ域202,203という3つの分割領域に分割される。
システム域201には、主に、実行されるプログラムのプログラムコードが格納される。また、システム域201には、プログラムの実行に必要な制御データの一部も格納される。ユーザ域202には、ストレージ制御装置100に搭載または接続されているデバイスの構成情報、プログラムの実行時に使用される変数などの制御情報などが格納される。ユーザ域203は、プログラムの実行によって入出力されるデータ(ユーザデータ)のキャッシュ領域などとして使用される。
メモリ割り当て部120は、例えば、ユーザ域202,203のそれぞれに管理データ域202a,203aを確保し、管理データ域202a,203aのそれぞれに、対応する部分領域の割り当てを管理するための管理情報を格納する。そして、メモリ割り当て部120は、例えば、ユーザ域202の部分領域の割り当て要求を受けると、ユーザ域202の未割り当て領域から部分領域を選択し、選択した部分領域を実行されるプログラムに割り当てる。その際、メモリ割り当て部120は、部分領域とその割り当て先のプログラムとの対応関係などを示す管理情報を、管理データ域202aに書き込む。ユーザ域203についても同様に、メモリ割り当て部120は、ユーザ域203の部分領域とその割り当て先のプログラムとの対応関係などを示す管理情報を、管理データ域203aに書き込む。
なお、これらの管理情報の一部は、例えば、システム域201に格納されてもよい。
メモリ割り当て部120によって割り当てられた部分領域は、通常、対応するプログラムの実行が完了すると、解放されて未割り当て領域に戻る。しかし、プログラムに内在するバグなどの何らかの異常により、割り当て済みの部分領域が解放されない場合がある。そして、同じプログラムが繰り返し実行されることなどにより、部分領域が解放されない事態が繰り返し発生すると、分割領域における未割り当て領域の容量が枯渇してしまい、新たな部分領域の割り当ての要求に対して、割り当ての失敗が発生する場合がある。この場合、ストレージ制御装置100の運用を正常に継続することはできない。
メモリリーク検出部130は、メモリ割り当て部120が部分領域の割り当てに失敗したことを検出すると、その部分領域が属する分割領域においてメモリリークが発生したと判定する。メモリリーク検出部130は、メモリリークが発生した分割領域を示す情報を、調査情報収集部140に通知する。
調査情報収集部140は、メモリリークが発生した分割領域から、メモリリークの発生原因を調査するために用いる調査情報を収集し、不揮発性メモリ104へ格納する。後述するように、調査情報収集部140は、メモリリークが発生した分割領域以外の分割領域に、作業領域を設定し、設定した作業領域を用いて調査情報の収集処理および不揮発性メモリ104への格納処理を実行する。なお、調査情報収集部140の処理の詳細については後述する。
リブート制御部150は、調査情報の収集処理および不揮発性メモリ104への格納処理が完了した後に、ストレージ制御装置100の電源をオフにし、その後に電源をオンにする。これにより、メモリリークの発生状態が解消される。
ここで、ユーザ域202には、制御データ域202bが確保されている。制御データ域202bには、ストレージ制御装置100に搭載または接続されているデバイスの構成情報や、それらのデバイスのステータス情報が格納されている。リブート制御部150は、ストレージ制御装置100の電源をオフにする前に、制御データ域202bに格納された構成情報およびステータス情報を、不揮発性メモリ104に書き込む。そして、リブート制御部150は、電源をオンにしてストレージ制御装置100が再起動する際に、不揮発性メモリ104に格納された構成情報およびステータス情報を読み出す。リブート制御部150は、構成情報に記述されたデバイスごとに必要な起動処理を行うことで、ストレージ制御装置100を正常に起動させることができる。
以上のストレージ制御装置100では、リブート制御部150によってストレージ制御装置100が再起動される前に、調査情報収集部140によって、メモリリークの発生原因の調査に使用される調査情報が収集されて、不揮発性メモリ104へ格納される。これにより、ストレージ制御装置100が再起動された後も、再起動前に収集された調査情報が不揮発性メモリ104に保持される。従って、ストレージ制御装置100の管理者は、ストレージ制御装置100が再起動した後に、不揮発性メモリ104に格納された調査情報を取得して、メモリリークの発生原因を解析することができる。
ところで、調査情報収集部140による調査情報の収集および不揮発性メモリ104への格納処理の実行のためには、RAM102の記憶領域にその実行のための作業領域を確保する必要がある。しかし、上記のように、調査情報収集部140の処理は、メモリリークが発生した後にのみ実行されるものであり、メモリリーク発生前の正常動作時には実行されない。このため、調査情報収集部140の処理のために必要なすべての作業領域を、正常動作時にRAM102上にあらかじめ確保しておいた場合、その分だけRAM102における使用可能な容量が小さくなり、正常動作時のストレージ制御装置100の性能が低下する可能性がある。
また、ストレージ制御装置100のようなコンピュータは、一般的に、プログラムによる処理結果などをログ情報として随時保存する。そして、コンピュータは、処理の異常が発生すると、電源がオフされる前に、保存されていたログ情報を収集し、異常発生原因の調査のために使用されるトレースログ情報として不揮発性メモリに格納する。
しかしながら、メモリリークの発生原因の調査は一般的に難易度が高く、トレースログ情報から発生原因を特定することは難しい。このため、トレースログ情報の収集処理とは別に、メモリリークの調査専用の調査情報の収集処理が実行される。このことは、RAM102上に、トレースログ情報の収集のための作業領域とは別に、メモリリーク用調査情報の収集のための作業領域が必要になることを意味する。従って、メモリリーク用調査情報の収集のためのすべての作業領域をRAM102上にあらかじめ確保した場合、RAM102上の使用可能な容量は一層圧迫されることになる。
そこで、本実施の形態のストレージ制御装置100では、メモリリーク用調査情報の収集のための作業領域の一部を、RAM102上にあらかじめ確保しておかずに、メモリリークが発生した後に、調査情報収集部140に確保させる。このとき、調査情報収集部140は、調査情報の収集対象領域以外、具体的にはメモリリークが発生した分割領域以外の領域に、作業領域を確保する。これにより、メモリリークが発生した分割領域のデータを保全し、保全されたデータの中から、メモリリークの発生原因を特定するために有用な情報を確実に収集することを可能にする。
図4は、調査情報収集部の処理について説明するための図である。図4に示すように、調査情報収集部140は、領域設定部141および収集処理部142を有する。
領域設定部141は、RAM102の記憶領域のうち、調査情報の収集対象領域以外の領域に、作業領域を確保する。領域設定部141は、確保した作業領域に関する情報を、作業領域管理テーブル143に登録して管理する。
収集処理部142は、領域設定部141によって確保された作業領域を用いて、RAM102から調査情報を収集し、収集した調査情報を不揮発性メモリ104へ格納する。収集処理部142は、このような調査情報の収集および格納の処理の際に、調査情報管理テーブル144の管理情報を参照して、収集すべき調査情報を決定する。後述するように、調査情報管理テーブル144は、RAM102上の分割領域ごとにあらかじめ用意される。
ここで、領域設定部141は、RAM102の記憶領域のうち、調査情報の収集対象領域以外の記憶領域から、値“0”が所定数連続する「連続ゼロ領域」を複数探索する。そして、領域設定部141は、探索された複数の連続ゼロ領域を論理的に結合した記憶領域を、作業領域に設定する。連続ゼロ領域のそれぞれは、調査情報の収集および格納の処理で使用された後、値“0”が書き戻されることで元の状態に戻る。このため、作業領域として設定される前後で、その領域に本来記録されていたデータを保全することができる。
以下、例として、ユーザ域203でメモリリークが発生した場合を挙げて説明する。ユーザ域203でメモリリークが発生した場合、少なくとも、ユーザ域203は調査情報の収集対象領域となる。例えば、ユーザ域203の管理データ域203aに格納された、部分領域の割り当てに関する管理情報から、調査情報が収集される。なお、管理データ域203aは、ユーザ域203において複数の領域に分散して確保されている場合もある。また、ユーザ域203全体の記憶内容を示すメモリダンプ情報が、調査情報として収集される場合もある。
一方、ユーザ域202は、調査情報の収集対象領域とはならない。従って、領域設定部141は、調査情報の収集対象領域でないユーザ域202から、連続ゼロ領域を探索する。
なお、システム域201には、調査情報収集部140の処理を実現するプログラムの少なくとも一部が格納されるので、その記憶内容を保全する必要がある。このため、システム域201は、連続ゼロ領域の探索の対象領域から除外される。また、ユーザ域203からの部分領域の割り当てに関する管理情報の一部が、システム域201に格納されている場合もある。この場合、システム域201も調査情報の収集対象領域となるため、システム域201は、連続ゼロ領域の探索の対象領域から除外される。
領域設定部141は、ユーザ域202から探索された複数の連続ゼロ領域を論理的に結合し、結合された領域を作業領域210に設定する。収集処理部142は、ユーザ域203から収集した調査情報を、設定された作業領域210に一時的に格納した後、作業領域210から読み出して不揮発性メモリ104へ格納する。また、上記の管理情報がシステム域201に格納されている場合には、調査情報がシステム域201から収集されることもある。
なお、収集処理部142は、収集された調査情報に対して編集処理を施し、編集後の情報を不揮発性メモリ104へ格納してもよい。この場合、作業領域210は、編集処理のために使用されてもよい。
収集処理部142によって必要なすべての調査情報が収集され、不揮発性メモリ104へ格納されると、領域設定部141は、ユーザ域202から探索された連続ゼロ領域のすべてに、値“0”を書き込む。これにより、ユーザ域202の記憶内容は、作業領域210が確保されて使用されるより前の状態に戻る。
前述のように、ユーザ域202の制御データ域202bに記録された情報は、ストレージ制御装置100の電源オフの際にリブート制御部150によって参照される。ユーザ域202における連続ゼロ領域が作業領域210として使用され、その使用後に連続ゼロ領域に値“0”が書き戻されることで、制御データ域202bに記録された情報が失われなくて済む。このため、ストレージ制御装置100を正常に再起動させることができる。
なお、前述のように、リブート制御部150は、調査情報収集部140の処理が終了した後に、制御データ域202bに記録された情報を不揮発性メモリ104へ書き込む。このような処理順とすることで、リブート制御部150の処理を実現する既存のBIOSプログラムを、変更せずにそのまま使用できるようになる。
また、上記の例では、値“0”が所定数連続する領域を論理的に結合して作業領域を確保したが、他の例として、値“1”が所定数連続する領域を論理的に結合して作業領域を確保することもできる。ただし、値“0”がある程度連続して現れる領域には、有効なデータが書き込まれていない可能性が高い。このため、値“0”が所定数連続する領域を探索することで、例えば、調査情報収集部140の処理に異常が発生して、作業領域を元の状態に戻せなくなった場合でも、元のデータが破壊される可能性を低減できる。
図5は、作業領域管理テーブルに登録される情報の例を示す図である。作業領域管理テーブル143は、例えば、RAM102のシステム域201に一時的に記録される。
作業領域管理テーブル143は、領域設定部141によって確保された作業領域に関する情報を管理するためのテーブル情報である。作業領域管理テーブル143には、領域設定部141によって探索された連続ゼロ領域の数だけのレコード143aが登録される。
各レコード143aは、領域ID、サイズおよび次アドレスの各項目を有する。領域IDの項目には、対応する連続ゼロ領域を識別するための識別番号が登録される。サイズの項目には、対応する連続ゼロ領域のサイズが登録される。次アドレスの項目には、次のレコード143aに対応する連続ゼロ領域の、RAM102における先頭アドレスが登録される。
ここで、作業領域管理テーブル143における最後尾のレコード143aの次アドレスの項目には、作業領域管理テーブル143における先頭のレコード143aに対応する連続ゼロ領域の先頭アドレスが登録される。これにより、探索されたすべての連続ゼロ領域の位置情報が管理される。
次に、調査情報管理テーブル144に基づく、収集処理部142による調査情報の収集処理について説明する。調査情報管理テーブル144は、例えば、HDD103にあらかじめ記憶され、HDD103からRAM102に読み込まれて参照される。また、調査情報管理テーブル144は、RAM102の分割領域ごとに用意される。そして、各調査情報管理テーブル144には、対応する分割領域について、収集すべき調査情報に関する情報が登録されている。
図6は、調査情報管理テーブルに登録される情報の例を示す図である。調査情報管理テーブル144には、対応する分割領域を識別するためのリソースIDが登録されている。また、調査情報管理テーブル144には、収集指示情報144aおよび調査情報リスト144bが登録されている。
調査情報リスト144bには、収集すべき調査情報を示す調査情報IDの一覧が登録される。また、各調査情報IDには、調査情報のサイズが対応付けて登録されている。
調査情報リスト144bにおける調査情報の登録順は、収集の優先度が高い順とされる。調査情報は、収集処理部142により、優先度が高い順に収集される。優先度は、メモリリークの発生原因の調査のためにその調査情報が重要であり、かつ、調査情報のサイズが小さいほど、高く設定される。ここで、調査情報のサイズは、その調査情報の収集および格納の処理にどれだけの時間を要するかを示す。
調査情報としては、次のような情報が挙げられる。最も優先度が高い調査情報としては、OS、ドライバ、アプリケーションといったプログラムのレイヤごとの、分割領域に割り当てられたメモリサイズの情報がある。例えば、メモリリークが発生したユーザ域のメモリ領域を大量に使用しているレイヤがあった場合、そのレイヤでメモリリークの原因となる事象が発生している可能性がある。このため、レイヤごとの割り当てサイズの重要度は高く、その優先度も高く設定される。
また、その次に優先度が高い調査情報としては、タスクごとに分割領域に割り当てられたメモリサイズの情報がある。例えば、同じタスクがユーザ域の複数の部分領域を使用している場合、そのタスクでメモリリークの原因となる事象が発生している可能性がある。このため、タスクごとの割り当てサイズの重要度は高いが、レイヤごとの割り当てサイズと比較してデータサイズが大きくなる。このため、タスクごとの割り当てサイズの優先度は、レイヤごとの割り当てサイズより低く設定される。
また、その次に優先度が高い調査情報としては、プログラムごとに分割領域に割り当てられたメモリサイズの情報がある。ここで言うプログラムとは、例えば、アプリケーションプログラムに含まれる複数のプログラムのそれぞれを指す。例えば、1つの実行ファイルとして記述されるプログラムを指す。ここで、同じプログラムがユーザ域の複数の部分領域を使用している場合、そのプログラムにメモリリークの発生原因となるバグが存在している可能性がある。このため、プログラムごとの割り当てサイズの重要度は高いが、タスクごとの割り当てサイズと比較してデータサイズが大きくなる。このため、プログラムごとの割り当てサイズの優先度は、タスクごとの割り当てサイズより低く設定される。
なお、以上の3つの調査情報については、例えば、ユーザ域202については管理データ域202aから、ユーザ域203については管理データ域203aから、それぞれ収集することができる。
一方、最も優先度が低い調査情報としては、対応する分割領域全体の記憶内容を示すメモリダンプ情報がある。メモリダンプ情報のサイズは膨大であることから、メモリダンプ情報には最も低い優先度が設定される。
収集指示情報144aには、メモリリークの発生時点での動作モードに応じて、どの優先度までの調査情報を収集すべきかを示す情報が登録される。収集指示情報144aには、動作モードと優先度下限の各項目の組が、複数登録される。
本実施の形態では、ストレージ制御装置100の動作モードとしては、通常運用モードと、デバッグモードとがある。通常運用モードは、ストレージ制御装置100を用いて業務が行われる通常の状態で設定される動作モードである。デバッグモードは、デバッグを目的として動作するモードであり、業務時間外に設定される。
この場合、収集指示情報144aには、通常運用モードとデバッグモードのそれぞれに対して、優先度下限が対応付けられる。優先度下限の項目には、最上位からどの優先度までの調査情報を収集するべきかを示す優先度の値が登録される。図6の例では、動作モードが通常運用モードである場合、優先度1〜4までの調査情報が収集される。一方、動作モードがデバッグモードである場合、優先度1〜7までの調査情報が収集される。
ここで、調査情報管理テーブル144には、通常運用モードの場合よりデバッグモードの方が多くの調査情報が収集されるように、情報が登録される。これは、次のような理由による。通常運用モードの場合、ストレージ制御装置100を短時間で再起動させて業務を再開させる必要がある。このため、多くの調査情報を収集することよりも、収集される調査情報のサイズを小さくすることが優先される。一方、デバッグモードの場合、ストレージ制御装置100を短時間で再起動させることより、メモリリークの発生原因を特定できることが優先されるので、通常運用モードの場合より多くの調査情報が収集される。
次に、図7は、確保された作業領域のサイズに応じた調査情報の収集および格納処理について説明するための図である。
領域設定部141によって確保される作業領域のサイズは、一定にはならない。このため、収集すべき調査情報の総サイズ(容量)が、確保された作業領域のサイズより大きい場合があり得る。この場合、収集処理部142は、確保された作業領域のサイズ分ごとに、調査情報の収集を行う。
図7の例では、領域設定部141により3つの連続ゼロ領域#1,#2,#3が探索され、これらの連続ゼロ領域#1,#2,#3を結合することで3.6KByteの作業領域210が確保されたものとする。一方、メモリリークが発生した分割領域に対応する調査情報管理テーブル144に基づき、収集すべき調査情報として、2KByteの調査情報#1と、5KByteの調査情報#2と、10KByteの調査情報#3と、80KByteの調査情報#4とが特定されたものとする。この場合、収集すべき調査情報の総サイズは97KByteとなる。
収集処理部142は、優先度が高い調査情報から順にRAM102から収集するが、1回の収集による作業領域210への書き込みサイズを、3.6KByteとする。具体的には、収集処理部142は、まず、調査情報#1と、調査情報#2のうちの1.6KByte分の情報とを収集して、作業領域210へ書き込んだ後、それらの情報を不揮発性メモリ104へ格納する。次に、収集処理部142は、調査情報#2のうちの残りの3.4KByte分の情報と、調査情報#3のうちの0.2KByte分の情報とを収集して、作業領域210へ書き込んだ後、それらの情報を不揮発性メモリ104へ格納する。
このような処理により、確保された作業領域のサイズが、収集すべき調査情報の総サイズより小さい場合でも、必要な調査情報を確実に収集して、不揮発性メモリ104へ格納することができる。
次に、ストレージ制御装置100の処理についてフローチャートを用いて説明する。図8および図9は、ストレージ制御装置の処理手順の例を示すフローチャートである。
[ステップS11]メモリリーク検出部130は、メモリ割り当て部120によるプログラムへの部分領域の割り当てが失敗するかを監視する。割り当て失敗が発生すると、メモリリーク検出部130は、メモリリークが発生したと判定する。このとき、メモリリーク検出部130は、メモリリークが発生した分割領域を調査情報収集部140に通知する。この後、ステップS12の処理が実行される。
[ステップS12]調査情報収集部140の領域設定部141は、メモリリーク検出部130から通知された、メモリリークが発生した分割領域に応じて、連続ゼロ領域の探索の対象とする分割領域を決定する。前述のように、連続ゼロ領域の探索の対象領域は、少なくとも、メモリリークが発生した分割領域以外の分割領域となる。また、システム域201も、連続ゼロ領域の探索対象からは除外される。
領域設定部141は、探索対象に決定した分割領域から、値“0”が所定数以上連続する連続ゼロ領域を探索する。領域設定部141は、例えば、値“0”が100Byte分以上連続している領域を、連続ゼロ領域と判定する。領域設定部141は、探索された連続ゼロ領域に関する情報を、作業領域管理テーブル143に登録する。
[ステップS13]収集処理部142は、作業領域管理テーブル143を参照して、探索されたすべての連続ゼロ領域の総サイズ、すなわち、確保された作業領域のサイズを計算する。
[ステップS14]収集処理部142は、ストレージ制御装置100の現在の動作モードを判別する。動作モードが通常運用モードである場合、ステップS15の処理が実行され、動作モードがデバッグモードである場合、ステップS16の処理が実行される。
[ステップS15]収集処理部142は、メモリリークが発生した分割領域に対応する調査情報管理テーブル144を参照して、通常運用モードでの優先度上限を判別する。前述のように、優先度上限は、上位からどの優先度までの調査情報を収集すべきかを示すものである。
[ステップS16]収集処理部142は、メモリリークが発生した分割領域に対応する調査情報管理テーブル144を参照して、デバッグモードでの優先度上限を判別する。
[ステップS17]収集処理部142は、探索された連続ゼロ領域を結合して得られる作業領域として、最小限の領域が確保されたかを判定する。具体的には、収集処理部142は、ステップS13で算出された作業領域のサイズが、所定のしきい値以上である場合に、最小限の領域が確保されたと判定する。最小限の領域が確保されたと判定された場合、ステップS18の処理が実行され、最小限の領域が確保されていないと判定された場合、ステップS23の処理が実行される。
このステップS17では、確保された作業領域のサイズがしきい値未満である場合、作業領域が小さ過ぎるため、調査情報の収集処理効率が悪いと判断されて、調査情報を収集することなく、ストレージ制御装置100の電源のオフ、オンが行われる。しきい値としては、例えば、メモリリークが発生した分割領域に対応する調査情報管理テーブル144に登録された調査情報のサイズのうち、優先度が最も高い調査情報のサイズが使用される。
次のステップS18〜S21では、メモリリークが発生した分割領域に対応する調査情報管理テーブル144に登録された調査情報が、優先度が高い順に収集される。また、登録された調査情報のうち、どの優先度の調査情報までを収集するかは、ステップS15またはステップS16の判別結果により決定される。
なお、ステップS18〜S21では、変数として“末尾アドレス”が使用される。変数“末尾アドレス”の初期値は“NULL”である。また、変数“末尾アドレス”は、例えば、RAM102のシステム域201に記録される。
[ステップS18]収集処理部142は、ステップS13で算出された作業領域のサイズ分だけ、調査情報をRAM102から収集して作業領域に書き込む。変数“末尾アドレス”に値が登録されている場合(すなわち、“NULL”でない場合)には、RAM102からの読み出し開始位置は、変数“末尾アドレス”に登録された値の次の位置となる。なお、収集処理部142は、作業領域管理テーブル143を参照して、書き込み先の作業領域を認識する。
[ステップS19]収集処理部142は、ステップS18でRAM102から読み出した領域の最終位置のアドレスによって、変数「末尾アドレス」を更新する。
[ステップS20]収集処理部142は、ステップS18で作業領域に書き込んだ調査情報を、不揮発性メモリ104へ書き込む。
[ステップS21]収集処理部142は、収集すべきすべての調査情報の不揮発性メモリ104への書き込みが完了したかを判定する。書き込みが完了していない場合、ステップS18の処理が実行され、書き込みが完了した場合、ステップS22の処理が実行される。
[ステップS22]領域設定部141は、ステップS12で探索されたすべての連続ゼロ領域に、値“0”を書き込む。これにより、連続ゼロ領域は、作業領域に設定された状態から解放され、この連続ゼロ領域が属する分割領域が元の状態に戻る。
[ステップS23]リブート制御部150は、ストレージ制御装置100の電源をオフにした後、オンにする。なお、前述のように、リブート制御部150は、ユーザ域202内の制御データ域202bに記憶された構成情報およびステータス情報を、不揮発性メモリ104へ書き込み、その後にストレージ制御装置100の電源をオフにする。そして、ストレージ制御装置100の電源を再度オンにした後、その起動処理中に、不揮発性メモリ104へ書き込まれた構成情報およびステータス情報を参照する。
[ステップS24]管理者の操作などにより、不揮発性メモリ104に書き込まれた調査情報が読み出される。読み出された調査情報は、メモリリークの発生原因の解析などに用いられる。
以上説明したストレージ制御装置100では、メモリリークが発生した場合、装置の電源をオフにする前に、メモリリーク発生原因の調査のための調査情報が収集されて、不揮発性メモリ104へ格納される。このため、調査情報を確実に採取し、メモリリークの発生原因の解析に用いることができる。
また、ストレージ制御装置100は、このような調査情報の収集および格納処理のための作業領域の一部を、メモリリークが発生した後に、RAM102の記憶領域のうち、調査情報の収集対象領域以外の領域に設定する。そして、設定した作業領域を用いて調査情報の収集および格納処理を行う。これにより、メモリリークが発生していない正常動作時における、RAM102の使用可能容量を増加させることができ、正常動作時の装置の性能を向上させることができる。また、作業領域が、調査情報の収集対象領域以外の領域に設定されることで、必要な調査情報を確実に収集することができる。すなわち、正常動作時における装置の性能に影響を与えずに、必要な調査情報を確実に収集できるようになる。
また、作業領域は、連続ゼロ領域を論理的に結合した領域に設定される。これにより、作業領域が設定された分割領域を、調査情報の収集および格納処理の終了後に、元に戻すことができる。このため、例えば、ストレージ制御装置100のリブートに必要な情報が格納された分割領域に、作業領域を設定した場合でも、その分割領域を元に戻してリブートを正常に実行できる。
なお、上記の各実施の形態に示した装置(情報処理装置1、ストレージ制御装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 揮発性メモリと不揮発性メモリとを備える情報処理装置において、
処理の異常が発生したことを検知すると、前記揮発性メモリの記憶領域のうち、異常発生原因の調査のために使用される調査情報の収集対象領域を除く記憶領域に、作業領域を設定する領域設定部と、
前記調査情報を前記揮発性メモリから収集して前記不揮発性メモリへ格納する処理を、設定された前記作業領域を用いて実行する情報収集部と、
を有することを特徴とする情報処理装置。
(付記2) 前記領域設定部は、前記揮発性メモリにおける前記収集対象領域を除く記憶領域から、所定数以上連続して所定値が記憶された連続領域を探索し、探索された前記連続領域に前記作業領域を設定し、前記情報収集部による前記調査情報の前記不揮発性メモリへの格納処理が完了すると、前記連続領域の全領域に前記所定値を書き戻すことを特徴とする付記1記載の情報処理装置。
(付記3) 前記連続領域の全領域に前記所定値が書き戻された後、前記揮発性メモリにおける前記収集対象領域を除く記憶領域に記憶された情報を用いて、前記情報処理装置の電源をオフにした後オンにする処理を実行するリブート制御部をさらに有することを特徴とする付記2記載の情報処理装置。
(付記4) 前記領域設定部は、探索された複数の前記連続領域を結合した記憶領域を、前記作業領域に設定することを特徴とする付記2または3記載の情報処理装置。
(付記5) 前記情報収集部は、収集すべき前記調査情報を、探索された複数の前記連続領域を結合した記憶領域のデータ容量分ごとに、前記揮発性メモリから収集して前記作業領域に一時的に格納し、当該作業領域に格納したデータを前記不揮発性メモリへ格納することを特徴とする付記4記載の情報処理装置。
(付記6) 前記揮発性メモリから収集される複数の前記調査情報のそれぞれにあらかじめ優先度が付与され、
前記情報処理装置の動作モードごとに、どの優先度の前記調査情報まで収集すべきかを示す情報が管理情報に登録されており、
前記情報収集部は、前記処理の異常が発生したとき、その時点での前記情報処理装置の動作モードと前記管理情報とに基づいて、前記揮発性メモリから収集すべき前記調査情報を決定する、
ことを特徴とする付記1〜5のいずれか1つに記載の情報処理装置。
(付記7) 前記領域設定部は、前記処理の異常としてメモリリークが発生したことを検知すると、前記揮発性メモリの記憶領域のうち、メモリリークが発生した領域を除く記憶領域に、前記作業領域を設定し、
前記情報収集部は、前記揮発性メモリの記憶領域のうち、メモリリークが発生した領域から前記調査情報を収集する、
ことを特徴とする付記1〜6のいずれか1つに記載の情報処理装置。
(付記8) 揮発性メモリと不揮発性メモリとを備えるコンピュータが、
処理の異常が発生したことを検知すると、前記揮発性メモリの記憶領域のうち、異常発生原因の調査のために使用される調査情報の収集対象領域を除く記憶領域に、作業領域を設定し、
前記調査情報を前記揮発性メモリから収集して前記不揮発性メモリへ格納する処理を、設定された前記作業領域を用いて実行する、
ことを特徴とする情報収集方法。
(付記9) 前記作業領域の設定では、前記揮発性メモリにおける前記収集対象領域を除く記憶領域から、所定数以上連続して所定値が記憶された連続領域を探索し、探索された前記連続領域に前記作業領域を設定し、
前記調査情報の前記不揮発性メモリへの格納処理が完了すると、前記連続領域の全領域に前記所定値を書き戻す、
ことを特徴とする付記8記載の情報収集方法。
(付記10) 前記連続領域の全領域に前記所定値が書き戻された後、前記揮発性メモリにおける前記収集対象領域を除く記憶領域に記憶された情報を用いて、前記情報処理装置の電源をオフにした後オンにする処理を実行する、
ことを特徴とする付記9記載の情報収集方法。
(付記11) 前記作業領域の設定では、探索された複数の前記連続領域を結合した記憶領域を、前記作業領域に設定することを特徴とする付記9または10記載の情報収集方法。
(付記12) 前記調査情報の収集では、収集すべき前記調査情報を、探索された複数の前記連続領域を結合した記憶領域のデータ容量分ごとに、前記揮発性メモリから収集して前記作業領域に一時的に格納し、当該作業領域に格納したデータを前記不揮発性メモリへ格納することを特徴とする付記11記載の情報収集方法。
(付記13) 前記揮発性メモリから収集される複数の前記調査情報のそれぞれにあらかじめ優先度が付与され、
前記情報処理装置の動作モードごとに、どの優先度の前記調査情報まで収集すべきかを示す情報が管理情報に登録されており、
前記調査情報の収集では、前記処理の異常が発生したとき、その時点での前記情報処理装置の動作モードと前記管理情報とに基づいて、前記揮発性メモリから収集すべき前記調査情報を決定する、
ことを特徴とする付記8〜12のいずれか1つに記載の情報収集方法。
(付記14) 前記作業領域の設定では、前記処理の異常としてメモリリークが発生したことを検知すると、前記揮発性メモリの記憶領域のうち、メモリリークが発生した領域を除く記憶領域に、前記作業領域を設定し、
前記調査情報の収集では、前記揮発性メモリの記憶領域のうち、メモリリークが発生した領域から前記調査情報を収集する、
ことを特徴とする付記8〜13のいずれか1つに記載の情報収集方法。
(付記15) 揮発性メモリと不揮発性メモリとを備えるコンピュータに、
処理の異常が発生したことを検知すると、前記揮発性メモリの記憶領域のうち、異常発生原因の調査のために使用される調査情報の収集対象領域を除く記憶領域に、作業領域を設定し、
前記調査情報を前記揮発性メモリから収集して前記不揮発性メモリへ格納する処理を、設定された前記作業領域を用いて実行する、
処理を実行させることを特徴とする情報収集プログラム。
1 情報処理装置
11 揮発性メモリ
11a 作業領域
12 不揮発性メモリ
13 領域設定部
14 情報収集部
21 調査情報

Claims (8)

  1. 揮発性メモリと不揮発性メモリとを備える情報処理装置において、
    処理の異常が発生したことを検知すると、前記揮発性メモリの記憶領域のうち、異常発生原因の調査のために使用される調査情報の収集対象領域を除く記憶領域から、所定数以上連続して所定値が記憶された連続領域を探索し、探索された前記連続領域に作業領域を設定する領域設定部と、
    前記調査情報を前記揮発性メモリから収集して前記不揮発性メモリへ格納する格納処理を、設定された前記作業領域を用いて実行する情報収集部と、
    を有し、
    前記領域設定部は、前記情報収集部による前記格納処理が完了すると、前記連続領域の全領域に前記所定値を書き戻すことを特徴とする情報処理装置。
  2. 前記連続領域の全領域に前記所定値が書き戻された後、前記揮発性メモリにおける前記収集対象領域を除く記憶領域に記憶された情報を用いて、前記情報処理装置の電源をオフにした後オンにする処理を実行するリブート制御部をさらに有することを特徴とする請求項記載の情報処理装置。
  3. 前記領域設定部は、探索された複数の前記連続領域を結合した記憶領域を、前記作業領域に設定することを特徴とする請求項1または2記載の情報処理装置。
  4. 前記情報収集部は、収集すべき前記調査情報を、探索された複数の前記連続領域を結合した記憶領域のデータ容量分ごとに、前記揮発性メモリから収集して前記作業領域に一時的に格納し、当該作業領域に格納したデータを前記不揮発性メモリへ格納することを特徴とする請求項記載の情報処理装置。
  5. 前記揮発性メモリから収集される複数の前記調査情報のそれぞれにあらかじめ優先度が付与され、
    前記情報処理装置の動作モードごとに、どの優先度の前記調査情報まで収集すべきかを示す情報が管理情報に登録されており、
    前記情報収集部は、前記処理の異常が発生したとき、その時点での前記情報処理装置の動作モードと前記管理情報とに基づいて、前記揮発性メモリから収集すべき前記調査情報を決定する、
    ことを特徴とする請求項1〜のいずれか1項に記載の情報処理装置。
  6. 前記領域設定部は、前記処理の異常としてメモリリークが発生したことを検知すると、前記揮発性メモリの記憶領域のうち、メモリリークが発生した領域を除く記憶領域に、前記作業領域を設定し、
    前記情報収集部は、前記揮発性メモリの記憶領域のうち、メモリリークが発生した領域から前記調査情報を収集する、
    ことを特徴とする請求項1〜のいずれか1項に記載の情報処理装置。
  7. 揮発性メモリと不揮発性メモリとを備えるコンピュータが、
    処理の異常が発生したことを検知すると、前記揮発性メモリの記憶領域のうち、異常発生原因の調査のために使用される調査情報の収集対象領域を除く記憶領域から、所定数以上連続して所定値が記憶された連続領域を探索し、探索された前記連続領域に作業領域を設定し、
    前記調査情報を前記揮発性メモリから収集して前記不揮発性メモリへ格納する格納処理を、設定された前記作業領域を用いて実行し、
    前記格納処理が完了すると、前記連続領域の全領域に前記所定値を書き戻す、
    ことを特徴とする情報収集方法。
  8. 揮発性メモリと不揮発性メモリとを備えるコンピュータに、
    処理の異常が発生したことを検知すると、前記揮発性メモリの記憶領域のうち、異常発生原因の調査のために使用される調査情報の収集対象領域を除く記憶領域から、所定数以上連続して所定値が記憶された連続領域を探索し、探索された前記連続領域に作業領域を設定し、
    前記調査情報を前記揮発性メモリから収集して前記不揮発性メモリへ格納する格納処理を、設定された前記作業領域を用いて実行し、
    前記格納処理が完了すると、前記連続領域の全領域に前記所定値を書き戻す、
    処理を実行させることを特徴とする情報収集プログラム。
JP2013220963A 2013-10-24 2013-10-24 情報処理装置、情報収集方法および情報収集プログラム Active JP6287055B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013220963A JP6287055B2 (ja) 2013-10-24 2013-10-24 情報処理装置、情報収集方法および情報収集プログラム
US14/507,943 US9710319B2 (en) 2013-10-24 2014-10-07 Information processing apparatus and information collection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013220963A JP6287055B2 (ja) 2013-10-24 2013-10-24 情報処理装置、情報収集方法および情報収集プログラム

Publications (2)

Publication Number Publication Date
JP2015082279A JP2015082279A (ja) 2015-04-27
JP6287055B2 true JP6287055B2 (ja) 2018-03-07

Family

ID=52996867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013220963A Active JP6287055B2 (ja) 2013-10-24 2013-10-24 情報処理装置、情報収集方法および情報収集プログラム

Country Status (2)

Country Link
US (1) US9710319B2 (ja)
JP (1) JP6287055B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750375B (zh) * 2019-07-16 2023-07-21 许昌许继软件技术有限公司 一种嵌入式设备及其异常信息处理方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02301839A (ja) * 1989-05-17 1990-12-13 Pfu Ltd メモリダンプ機能を持つデータ処理装置
JP2604492B2 (ja) 1990-09-06 1997-04-30 日本電気株式会社 順編成ファイルのデータ圧縮処理方式
US5282267A (en) * 1991-08-09 1994-01-25 Woo Jr John Data entry and error embedding system
JPH05233383A (ja) 1992-01-21 1993-09-10 Nec Corp メモリダンプ方式
JPH1049407A (ja) * 1996-08-01 1998-02-20 Nec Eng Ltd メモリダンプ方式
US6938245B1 (en) * 1997-10-29 2005-08-30 Veritas Operating Corporation Interactive debugging system with debug data base system
US6658652B1 (en) * 2000-06-08 2003-12-02 International Business Machines Corporation Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing
AU2001284987A1 (en) * 2000-08-16 2002-02-25 Filestream, Inc. End-to-end secure file transfer method and system
US6930598B2 (en) * 2002-05-16 2005-08-16 Eugene S. Weiss Home gateway server appliance
US7237085B2 (en) * 2004-05-28 2007-06-26 Oracle International Corporation Architecture for a scalable heap analysis tool
US20060085156A1 (en) * 2004-10-18 2006-04-20 Kolawa Adam K Method and system for predicting memory leaks from unit testing
JP2007172414A (ja) * 2005-12-23 2007-07-05 Fuji Soft Inc 組込機器向けのコンパクトコアダンププログラム及びコンパクトコアダンプを用いた方法
JP2007207213A (ja) * 2006-02-03 2007-08-16 Movell Software:Kk ワイヤレスデバイスのリアルタイム診断に適用する診断情報収集手法
US7730068B2 (en) * 2006-06-13 2010-06-01 Microsoft Corporation Extensible data collectors
US7895483B2 (en) * 2007-05-25 2011-02-22 International Business Machines Corporation Software memory leak analysis using memory isolation
JP5211751B2 (ja) 2008-02-26 2013-06-12 富士通株式会社 計算機、ダンププログラムおよびダンプ方法
JP5459472B2 (ja) * 2009-08-07 2014-04-02 日本電気株式会社 障害復旧装置、障害復旧方法、及びプログラム
JP2011070655A (ja) * 2009-08-24 2011-04-07 Toshiba Corp 情報処理装置、メモリダンプシステムおよびメモリダンプ方法
US9916192B2 (en) * 2012-01-12 2018-03-13 International Business Machines Corporation Thread based dynamic data collection
US9558055B2 (en) * 2014-02-19 2017-01-31 Cisco Technology, Inc. System level memory leak detection

Also Published As

Publication number Publication date
US20150121151A1 (en) 2015-04-30
JP2015082279A (ja) 2015-04-27
US9710319B2 (en) 2017-07-18

Similar Documents

Publication Publication Date Title
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
US8041991B2 (en) System and method for recovering solid state drive data
JP4363676B2 (ja) コンピュータシステム
US8805855B2 (en) Efficiently storing and retrieving data and metadata
JP4903244B2 (ja) 計算機システム及び障害復旧方法
US20110246706A1 (en) Disk array configuration program, computer, and computer system
EP1605356B1 (en) Storage system and method for acquisition and utilisation of snapshots
TWI506429B (zh) 用於非依電性容錯寫入作業之方法、運算系統及相關電腦程式產品
KR20090012821A (ko) 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
CN113419685B (zh) 基于smr的raid创建、针对raid的数据写入及raid恢复方法
JP2007133544A (ja) 障害情報解析方法及びその実施装置
US20160132394A1 (en) Storage drive remediation in a raid system
KR101548452B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
JP2015114750A (ja) 調査用プログラム,情報処理装置及び情報処理方法
US8370815B2 (en) Electronic device and method for debugging programs
JP6802484B2 (ja) ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法
KR101258589B1 (ko) 저널링 파일 시스템에 따라 데이터를 기록한 정보저장매체,저널링 파일 시스템을 이용해서 데이터를 기록/복구하는방법 및 장치
JP6287055B2 (ja) 情報処理装置、情報収集方法および情報収集プログラム
KR102277731B1 (ko) 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러
WO2014024279A1 (ja) メモリ障害リカバリ装置、方法、及びプログラム
KR102052816B1 (ko) 비휘발성 주기억장치 환경에서 에러 복구 방법 및 그 시스템
KR101608623B1 (ko) 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법
CN108268336B (zh) 保证元数据一致性的方法及装置
JP4572205B2 (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム
JP2010259004A (ja) 画像処理装置、画像形成装置、記憶装置増設方法、及び記憶装置増設プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170829

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171128

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20171207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6287055

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150