JP4858779B2 - 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム - Google Patents

分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム Download PDF

Info

Publication number
JP4858779B2
JP4858779B2 JP2007033456A JP2007033456A JP4858779B2 JP 4858779 B2 JP4858779 B2 JP 4858779B2 JP 2007033456 A JP2007033456 A JP 2007033456A JP 2007033456 A JP2007033456 A JP 2007033456A JP 4858779 B2 JP4858779 B2 JP 4858779B2
Authority
JP
Japan
Prior art keywords
file
failure analysis
shared memory
image data
analysis file
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.)
Expired - Fee Related
Application number
JP2007033456A
Other languages
English (en)
Other versions
JP2008197980A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2007033456A priority Critical patent/JP4858779B2/ja
Publication of JP2008197980A publication Critical patent/JP2008197980A/ja
Application granted granted Critical
Publication of JP4858779B2 publication Critical patent/JP4858779B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、複数プロセスが共有メモリを使って動作するような並列プログラムの障害解析ファイルの入出力ファイル軽量化装置に関し、より詳細には、障害解析ファイルの入出力を軽量化する用途のファイル軽量化装置に関する。
一般に、プロセスの実行中に障害が発生した場合は、実行中のメモリイメージ(コンテキスト、スタック、データ)をファイルに出力し、そのファイルを解析することによって障害の原因を調査するという方法がとられている。(このファイルを以下、障害解析ファイルと呼ぶ。)
なお、障害解析ファイルは、プロセス1つを単位とし、1つのプロセスに対し1つの障害解析ファイルが作成される。
ここで、分散並列プログラムの場合、プログラムを複数のプロセスに分けて実行するが、障害は1つのプロセスだけに原因があって発生するとは限らない。
よって、すべてのプロセスについて障害解析ファイルを出力し、それらを解析する必要がある。
しかし、分散並列プログラムの実装方式によっては、プロセス間のデータ転送を円滑に行うためにメモリの一部を共有し合っている場合がある。
このような実装方式において、分散並列プログラムに障害が発生して障害解析ファイルに実行中のメモリイメージを出力する場合は、例えそれが共有しているメモリ部分の内容であったとしても、すべてのプロセスの障害解析ファイルに重複して出力されることになる。
そのため、障害解析ファイルのサイズの総量が大きくなり入出力にも時間がかかるという問題がある。
たとえば、4プロセスで分散並列実行されているプログラムで障害が発生した場合を考える。
図5に示すようにそれぞれのプロセスの実行中のメモリイメージがcore.proc.110、core.proc.120、core.proc.130及びcore.proc.140の4つの障害解析ファイルに出力される。
このとき、共有しているメモリ部分のイメージであるgmem201、gmem202、gmem203及びgmem204は、すべてのプロセスの障害解析ファイルに対して出力される。
結果として、図で示されるようにすべての障害解析ファイルに重複して、共有しているメモリ部分のイメージが出力されるという問題がある。
ここで、従来のgmem出力時の動作手順について図6を用いて説明する。
まず、core.procのgmlistに仮想アドレスとgmemのオフセットサイズを書き出す(S31)。次に、core.proc.xxxにgmemの内容を書き出す(S32)。
そして、上記(S31)及び(S32)を全ての共有メモリに対して処理が行われるまで繰り返す(S33)という、手順になっている。
このような出力部の動作手順を有する従来の障害解析ファイル出力システムは、前記図5に示すように各core.procファイルに重複して共有メモリの内容を出力することになる(例えば特許文献1参照)。
併せて、従来のgmem入力時の動作手順につき図7を用いて説明する。
まず、core.procのgmlistに仮想アドレスとgmemのオフセットサイズを読み込む(S41)。
次に、core.proc.xxxにgmemのオフセットから、サイズ分のデータを仮想アドレスに読み込む(S42)。
そして、上記(S41)及び(S42)を全ての共有メモリに対して処理が行われるまで繰り返す(S43)という、手順になっている。
特開平11−312103号公報
上記の従来技術ではcore.procファイルに重複して共有メモリの内容を入出力している。
よって、入力の際も、出力の際も記憶メディアの記憶容量が有効活用できないという問題が生じていた。加えて、I/O(Input/Output)時間が長くなるという問題も生じていた。
ここで、前記のような重複する出力を避けるための手段として、障害解析ファイルのうち重複している部分については、あるプロセスが代表して出力するという方法が考えられる。もっとも、次のような複数の理由により実現することは困難であった。
まず、共有メモリ部分の論理アドレスがすべてのプロセスで同一とは限らないという問題がある。
また、どのプロセスが代表して出力するかを決めたとしても、更に、すべてのプロセスに代表プロセスを通知する手段が必要であるという問題があった。
加えて、1つのプロセスが代表して障害解析ファイルのうち重複している部分を書き出す場合は、その代表プロセスは、結局従来と変わらない処理を行うことになる。
よって、出力時間の短縮が期待できないこととなる。
また、仮に上記の問題を解決することが可能となり、重複出力を避けることができたとしても、前記代表プロセスが出力した障害解析ファイルのうち重複している部分の情報を読み込むときに復元する手段が必要である。
そこで、本発明は上記の問題を解決し、各プロセスの障害解析ファイルに同じ共有メモリの内容を重複して出力することのない、分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラムを提供することを目的とする。
本発明の第1の観点によれば、複数のプロセスが共有メモリを用いて動作する分散並列プログラムの障害解析ファイルの軽量化を行うファイル軽量化装置であって、
前記複数のプロセスで共有している共有メモリのイメージデータを特定するための情報を、プロセス毎の障害解析ファイルである第1の障害解析ファイルにリスト情報として書き出すリスト化手段と、
前記共有メモリのイメージデータ毎の障害解析ファイルである第2の障害解析ファイルを作成し、当該作成した第2の障害解析ファイルに前記共有メモリのイメージデータを書き出す共有情報ファイル化手段と、
を備え、
前記第1の障害解析ファイルには前記共有メモリのイメージデータは書き出されず、且つ、前記各第2の障害解析ファイル間で同一のイメージデータを重複して書き出さないことを特徴とするファイル軽量化装置提供される。
本発明の第2の観点によれば、複数のプロセスが共有メモリを用いて動作する分散並列プログラムの障害解析ファイルの軽量化を行うファイル軽量化方法であって、
前記複数のプロセスで共有している共有メモリのイメージデータを特定するための情報を、プロセス毎の障害解析ファイルである第1の障害解析ファイルにリスト情報として書き出すリスト化ステップと、
前記共有メモリのイメージデータ毎の障害解析ファイルである第2の障害解析ファイルを作成し、当該作成した第2の障害解析ファイルに前記共有メモリのイメージデータを書き出す共有情報ファイル化ステップと、
を備え、
前記第1の障害解析ファイルには前記共有メモリのイメージデータは書き出されず、且つ、前記各第2の障害解析ファイル間で同一のイメージデータを重複して書き出さないことを特徴とするファイル軽量化方法が提供される。
本発明の第3の観点によれば、コンピュータに上記本発明の第2の観点により提供されるファイル軽量化方法を実行させることを特徴とするプログラムが提供される。
本発明によれば、各プロセスの障害解析ファイルに同じ共有メモリの内容を重複して出力しないことが可能となる。そのため、障害解析ファイル全体のサイズを小さくすることができ、これにより記憶メディアの記憶容量を有効活用することができる。
次に、本発明の最良の形態について図面を用いて説明する。
[実施形態]
(実施形態の構成)
本発明の実施形態における障害解析ファイル群の構成を図1に示す。また該障害解析ファイル群を含む全体の構成を図2に示す。
図1の障害解析ファイル群は、プロセスごとの障害解析ファイルであるcore.procと、共有メモリ部分の障害解析ファイルであるcore.gmemから構成されている。
本発明の実施形態は、図2で示すように、障害解析ファイル出力部である、コンテキスト出力部101、スタック出力部102、gmlist出力部103、core.gmem確認部104、gmem作成・出力部105、及びデータ出力部106、更に障害解析ファイル入力部である、コンテキスト入力部201、スタック入力部202、core.gmem.list入力部203、core.gmem入力部204及びデータ入力部205、加えて障害解析ファイル群301を備えている。
(実施形態の動作)
次に、本発明の実施形態の動作について詳細に説明する。
動作の説明には、図1、図2に加え図3に示すフローチャートを用いる。まず、コンテキスト出力部101とスタック出力部102は、障害解析ファイル群301中のcore.procファイルにそれぞれコンテキストセグメントとスタックセグメントを出力する。
次に、gmlist出力部103が共有メモリの仮想アドレス、core.gmemファイル名、core.gmemサイズを障害解析ファイル群301内のcore.procファイルのgmlistセグメントに出力する(S10)。
さらに、図2のcore.gmem確認部104がcore.gmem.xxxというファイルがすでに存在するかどうかを調べる(S11)。
ここで、すでにcore.gmem.xxxというファイルが存在する場合は、同じ内容のファイルが重複するのを避けるため、ファイルの作成は、行わない。そして、次の共有メモリ部分の処理に移る。
一方、いまだ存在しない場合は、core.gmem作成・出力部105でcore.gmem.xxxというファイルを作成する(S12)。
そして更に、gmem作成・出力部105は共有メモリの内容をcore.gmem.xxxに書き出す(S13)。
上記した共有メモリを書き出す作業である、(S10)、(S11)、(S12)及び(S13)をすべての共有メモリに対して順次行う。そして全ての共有メモリに対して、処理を完了した段階で共有メモリを書き出す作業は終了となる(S14)。
なお、core.gmem.xxxというファイル名は他のcore.gmemファイル名と重ならないようにする必要がある。
そのためにはxxxの部分はたとえば共有メモリのメモリリージョン番号を付けるなどしてユニークになるようにする。
最後に、図2のデータ出力部106で障害解析ファイル群301内のcore.procファイルにデータセグメントを出力する(S15)。
一方、デバッグ時に障害解析ファイルを読み込む時の動作について、図を用いて説明する。
まず、コンテキスト入力部201とスタック入力部202は、障害解析ファイル群301内のコンテキストセグメントとスタックセグメントをメモリに読み込む。
次に、core.gmlist入力部203が障害解析ファイル群301内の、core.procファイルのgmlistセグメントから共有メモリの展開されるべき仮想アドレス、実体が書き込まれているcore.gmemファイル名、およびサイズを読み込む(S21)。
続いて、該読み込んだ情報をもとに、core.gmem入力部204では該当するcore.gmemファイル名を仮想アドレスに読み込む(S22)。
そして、この共有メモリを読み込む作業、(S21)及び(S22)をすべての共有メモリに対して順次行う(S23)。
最後に、データ入力部205が、障害解析ファイル群301内の、core.procファイルのデータセグメントをメモリに読み込む(S24)。
(実施形態の効果)
第1の効果は、障害解析ファイル全体のサイズを小さくすることができることである。
その理由は、各プロセスの障害解析ファイルに同じ共有メモリの内容を重複して出力していたのをやめて、図1のようにそれらを独立して個別のcore.gmemファイルに出力し、各プロセスの障害解析ファイルではcore.gmemファイルを参照するようにgmlistに書き込むことによって重複を避けているからである。
第2の効果は、障害解析ファイルの入出力にかかる時間を短縮できることである。その理由は上述したように障害解析ファイル全体のサイズが小さくなるためである。
上記2つの効果により、本発明の目的である、入力の際も、出力の際も記憶メディアの記憶容量が有効活用できないという問題及びI/O(Input/Output)時間が長くなるという問題を解決することが可能となる。
更に、本発明では、core.procファイルと共有化されているcore.gmemファイルが、ファイル内で別個のものとして区別されている。よって、core.procファイルを削除する際に、共有化されているファイルが一緒に削除されてしまうという心配がない。
そのため共有化ファイルの事を考慮せずにcore.procファイルを削除できるという効果もある。
加えて本発明では、共有化されているcore.gmemファイル自体を分割するという処理を行っていない。よって、該core.gmemファイルを復号するといった処理も必要ないというメリットもある。
これにより、障害解析ファイルをメモリ上に展開する際の処理が迅速となると言う効果もある。
本発明は、複数のプロセスが共有メモリを使って動作するような並列プログラムの障害解析ファイルを軽量化する用途に適用できる。
本発明の障害解析ファイル群の構成を表す概念図である。 本発明の基本的構成を表す図である。 本発明の出力部における動作手順を表すフローチャートである。 本発明の入力部における動作手順を表すフローチャートである。 従来技術の障害解析ファイル群の構成を表す概念図である。 従来技術の出力部における動作手順を表すフローチャートである。 従来技術の入力部における動作手順を表すフローチャートである。
符号の説明
101 コンテキスト出力部
102 スタック出力部
103 gmlist出力部
104 core.gmem確認部
105 gmem作成・出力部
106 データ出力部
201 コンテキスト入力部
202 スタック入力部
203 core.gmem.list入力部
204 core.gmem入力部
205 データ入力部
301 障害解析ファイル群

Claims (9)

  1. 複数のプロセスが共有メモリを用いて動作する分散並列プログラムの障害解析ファイルの軽量化を行うファイル軽量化装置であって、
    前記複数のプロセスで共有している共有メモリのイメージデータを特定するための情報を、プロセス毎の障害解析ファイルである第1の障害解析ファイルにリスト情報として書き出すリスト化手段と、
    前記共有メモリのイメージデータ毎の障害解析ファイルである第2の障害解析ファイルを作成し、当該作成した第2の障害解析ファイルに前記共有メモリのイメージデータを書き出す共有情報ファイル化手段と、
    を備え、
    前記第1の障害解析ファイルには前記共有メモリのイメージデータは書き出されず、且つ、前記各第2の障害解析ファイル間で同一のイメージデータを重複して書き出さないことを特徴とするファイル軽量化装置。
  2. 請求項1に記載のファイル軽量化装置において、
    前記第1の障害解析ファイルに含まれている前記リスト情報から前記共有メモリのイメージデータの展開先とする仮想アドレスと、当該共有メモリのイメージデータを前記第2の障害解析ファイル内から特定するための情報を取得し、
    前記取得した特定するための情報を用いて前記共有メモリのイメージデータを前記展開先とする仮想アドレスに読み込むことを特徴とするファイル軽量化装置。
  3. 請求項1又は2に記載のファイル軽量化装置であって、
    記リスト化手段において、前記第1の障害解析ファイルに書き出す情報は、共有メモリの仮想アドレス、ファイル名及びサイズであることを特徴とするファイル軽量化装置。
  4. 請求項1乃至3の何れか1項に記載のファイル軽量化装置において、
    前記複数のプロセスで共有していないメモリのイメージデータを削除する際に、前記第1及び第2の障害解析ファイルは削除されないことを特徴とするファイル軽量化装置。
  5. 複数のプロセスが共有メモリを用いて動作する分散並列プログラムの障害解析ファイルの軽量化を行うファイル軽量化方法であって、
    前記複数のプロセスで共有している共有メモリのイメージデータを特定するための情報を、プロセス毎の障害解析ファイルである第1の障害解析ファイルにリスト情報として書き出すリスト化ステップと、
    前記共有メモリのイメージデータ毎の障害解析ファイルである第2の障害解析ファイルを作成し、当該作成した第2の障害解析ファイルに前記共有メモリのイメージデータを書き出す共有情報ファイル化ステップと、
    を備え、
    前記第1の障害解析ファイルには前記共有メモリのイメージデータは書き出されず、且つ、前記各第2の障害解析ファイル間で同一のイメージデータを重複して書き出さないことを特徴とするファイル軽量化方法。
  6. 請求項5に記載のファイル軽量化方法において、
    前記第1の障害解析ファイルに含まれている前記リスト情報から前記共有メモリのイメージデータの展開先とする仮想アドレスと、当該共有メモリのイメージデータを前記第2の障害解析ファイル内から特定するための情報を取得し、
    前記取得した特定するための情報を用いて前記共有メモリのイメージデータを前記展開先とする仮想アドレスに読み込むことを特徴とするファイル軽量化方法。
  7. 請求項又はに記載のファイル軽量化方法であって、
    記リスト化ステップにおいて、前記第1の障害解析ファイルに書き出す情報は、共有メモリの仮想アドレス、ファイル名及びサイズであることを特徴とするファイル軽量化方法。
  8. 請求項5乃至7の何れか1項に記載のファイル軽量化方法において、
    前記複数のプロセスで共有していないメモリのイメージデータを削除する際に、前記第1及び第2の障害解析ファイルは削除されないことを特徴とするファイル軽量化方法。
  9. コンピュータに請求項からの何れか1項に記載のファイル軽量化方法を実行させることを特徴とするプログラム。
JP2007033456A 2007-02-14 2007-02-14 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム Expired - Fee Related JP4858779B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007033456A JP4858779B2 (ja) 2007-02-14 2007-02-14 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007033456A JP4858779B2 (ja) 2007-02-14 2007-02-14 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2008197980A JP2008197980A (ja) 2008-08-28
JP4858779B2 true JP4858779B2 (ja) 2012-01-18

Family

ID=39756854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007033456A Expired - Fee Related JP4858779B2 (ja) 2007-02-14 2007-02-14 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム

Country Status (1)

Country Link
JP (1) JP4858779B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5577518B2 (ja) * 2011-06-20 2014-08-27 株式会社日立製作所 メモリ管理方法、計算機及びメモリ管理プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100919A (ja) * 1991-10-07 1993-04-23 Nec Corp ダンプデータフアイル管理方式
JPH08212103A (ja) * 1995-02-07 1996-08-20 Matsushita Electric Ind Co Ltd マルチスレッド・プロセッサのテスト・データ作成方法
JP2921478B2 (ja) * 1996-03-08 1999-07-19 日本電気株式会社 情報処理システムの障害ログ情報管理方式
JP3156624B2 (ja) * 1997-02-27 2001-04-16 日本電気株式会社 デバッグ支援システム

Also Published As

Publication number Publication date
JP2008197980A (ja) 2008-08-28

Similar Documents

Publication Publication Date Title
CN105339939B (zh) 对在线热备份数据库的复制
US8285679B2 (en) Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship
CN110659256B (zh) 多机房同步方法、计算设备及计算机存储介质
US8095510B2 (en) Data restoration in a storage system using multiple restore points
JP4858779B2 (ja) 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム
JP2007207120A (ja) システム検証装置及びその検証方法
JP5001703B2 (ja) システム設計検証装置
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
WO2014069007A1 (ja) 記憶装置およびデータバックアップ方法
JP2006227923A (ja) ディスク管理装置およびディスク管理プログラム
JP2010176512A (ja) ストレージ装置、ストレージ装置制御方法およびストレージ装置制御プログラム
JP2010152781A (ja) バックアップサーバ装置、バックアップ/リストアプログラム、およびバックアップ/リストア方法
JP2007323380A (ja) メモリ管理装置及びメモリ管理方法及びプログラム
JP2007148536A (ja) Ram診断装置および方法
JP4336981B2 (ja) バックアップシステムおよび方法
JP2010181924A (ja) データベース管理方法および装置並びにその処理プログラム
JP5447841B2 (ja) 情報処理装置、デバッグ情報取得方法、およびデバッグ情報取得プログラム
JPS6374170A (ja) 磁気デイスク制御方式
JP4413723B2 (ja) メモリ交差制御装置およびディスクコピー方法
JP5333639B2 (ja) ストレージ装置、ストレージ装置制御方法およびストレージ装置制御プログラム
JP4878113B2 (ja) Dasd故障時のリンクライブラリの復旧方法、及びプログラム
JP2020086950A (ja) 情報処理装置、情報処理装置のダンプ管理方法、及び、情報処理装置のダンプ管理プログラム
JPH02168346A (ja) 情報処理装置
JP2009129282A (ja) データ記憶装置、データバックアップ方法およびデータバックアッププログラム
JP2008129619A (ja) データ記憶装置およびデータ記憶方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100401

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100908

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110107

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111019

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees