TOP設計・移行・活用> crash
OSS適用システムの障害解析ツール
OSS適用システムの障害解析ツール

第1回:ダンプ解析ツールの現状と必要性
著者:ユニアデックス  前原 志好   2005/6/14
前のページ  1  2  3   4  次のページ
crash

   UNIX SVR系のcrashツールのインターフェースをベースに作成されたツールで、netdump、diskdumpフォーマットに対応したダンプ編集ツールとして開発されている。また、LKCDのダンプフォーマットにも対応している。

   UNIXのツールを参考にしているため、UNIXのダンプ解析を行っていたユーザには親しみやすく、またGDBをラッピングしているため、GDBのコマンドもいくつか実行できることが大きな特徴である。また、コマンドラインにGNU Readlineを採用していたり、ページャなども外部のコマンドを利用していたりと、lcrashのように独自ですべてを抱え込むという仕様にはなっていない。

   また、ダンプ編集のスピードアップの考慮や、動的ライブラリによる拡張コマンドの追加機能も備えている。

   crashの簡単な起動方法を以下に紹介する。まずcrashの導入が必要になるが、以下のサイトからソースファイルまたはRPMを入手してインストールする。インストールの詳細については、ダウンロードしたファイルのREADMEを参照されたい。

crashの作者のFTPサイト
ftp://people.redhat.com/anderson/

   crashを使ってダンプを解析するためには、デバックオプションを付けて(Makefileに指定するCFLAGSにgオプションを追加)コンパイルされた非圧縮カーネルイメージ(vmlinux)と、カーネルのシンボルテーブル(System.map)が必要である。

   以下の例では、稼動中のメモリ(ライブメモリ:/dev/mem)を解析の対象とする。なお、ここではvmlinuxとSystem.mapが作成されているものと仮定している(注1)。

※注1: lcrashでもライブメモリを解析できる。さらにsavedumpコマンドでディスクに吐き出すことも可能である。
$ su
# crash /boot/System.map /usr/src/linux/vmlinux
(略)
crash>

   「crash>」というプロンプトが出てくるので、ここでpsというコマンドを実行してみる。

crash> ps
  PID PPID CPU TASK ST %MEM VSZ RSS   COMM
  0 0 0 c03b6000 RU 0.0 0 0   [swapper]
  1 0 0 df6a4000 IN 0.1 1532 508   init
  2 1 0 df6a2000 IN 0.0 0 0   [keventd]
  3 1 0 c245e000 IN 0.0 0 0   [kapmd]
  4 1 0 c245c000 IN 0.0 0 0   [ksoftirqd/0]
  5 1 0 c16f6000 IN 0.0 0 0   [kswapd]
  6 1 0 c16f4000 IN 0.0 0 0   [kscand]
  7 1 0 c2256000 IN 0.0 0 0   [bdflush]
  8 1 0 c2254000 IN 0.0 0 0   [kupdated]
  9 1 0 c16fa000 IN 0.0 0 0   [mdrecoveryd]
  13 1 0 c2116000 IN 0.0 0 0   [kjournald]
  75 1 0 df04c000 IN 0.0 0 0   [khubd]
  266 1 0 c2546000 IN 0.0 0 0   [kjournald]
  669 1 0 de9dc000 IN 0.2 2048 1000   dhclient
  714 1 0 de940000 IN 0.1 1576 604   syslogd
  718 1 0 de944000 IN 0.1 1528 472   klogd
  761 1 0 de774000 IN 0.3 3784 1592   sshd
  775 1 0 de6b4000 IN 0.2 2068 1040   cannaserver
  786 1 0 de4d0000 IN 0.1 1564 628   crond
  814 1 0 de252000 IN 0.7 6060 3656   xfs
  823 1 0 de25a000 IN 0.1 1560 568   atd
  830 1 0 de35a000 IN 0.2 2380 1072   login
  831 1 0 de356000 IN 0.1 1508 432   mingetty
  832 1 0 de324000 IN 0.1 1496 424   mingetty
  833 1 0 de232000 IN 0.1 1508 432   mingetty
  834 1 0 de230000 IN 0.1 1500 432   mingetty
  835 1 0 ddf06000 IN 0.1 1520 432   mingetty
  836 830 0 ddea4000 IN 0.3 5236 1396   bash
> 878 836 0 dddac000 RU 7.6 44340 38920   crash

   解析の対象がライブメモリであるため、このときのpsコマンドの実行結果は、現在稼動中のプロセスの一覧である。このpsコマンドが実行された瞬間に実行していたプロセスの先頭には「>」マークが付いている。ライブメモリであるため、実際にダンプを解析しているcrashコマンドがアクティブなプロセスとなっていることがわかる。

   こちらも、これ以上の解説は割愛する。下記Webページに詳細なコマンドの実行方法が記載されたマニュアルがあるので、そちらを参照されたい。

White Paper: Red Hat Crash Utility
http://people.redhat.com/anderson/crash_whitepaper
前のページ  1  2  3   4  次のページ


ユニアデックス株式会社 前原 志好
著者プロフィール
ユニアデックス株式会社  前原 志好
日本ユニシス(株)入社後、米国UNISYS製メインフレームのカーネルを担当する。2004年4月から、所属組織ごとユニアデックス(株)に転籍。その後OSS関連作業に着手。今年は、メインフレーマーとの掛け橋(トランスレータ)役を担当する。


INDEX
第1回:ダンプ解析ツールの現状と必要性
  はじめに
  lcrash
crash
  Aliciaの登場