2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vmcore を読んでみる(1)

Last updated at Posted at 2019-10-04

Linuxマシンが crash して停止してしまった、あるいは、再起動してしまった、ということはありませんか。
設定によっては、/var/crash 配下に、vmcore が取得できているかもしれません。
今回は、そんなコアファイルを読んでみたいと思います。

kernel-debuginfo, kernel-debuginfo-common パッケージをダウンロード、インストールします。
例えば、CentOS であれば、以下のサイトに行くと、ダウンロードできます。crash したマシンと同じバージョンのものをダウンロードしましょう。

vmcore を出力したカーネルと同じバージョンのkernel-debuginfo, kernel-debuginfo-common をインストールできたとして、以下の順番で確認します。

crash コマンドにより、vmcore を開きます。

$ crash /usr/lib/debug/lib/modules/<kernel-version>/vmlinux vmcore 

例えば、以下に注目します。

KERNEL: /usr/lib/debug/lib/modules/<kernel_version>/vmlinux
DUMPFILE: vmcore  [PARTIAL DUMP] ★<-- PARTIAL となっていますが、crash が効率性のために、0 で埋めた
ためで問題ないです。
CPUS: 8 ★<-- この数が64を超えるようであれば、spin lock で競合している可能性があります。
DATE: Sat Nov 5 06:58:00 2019 ★<-- 事象発生の日時となっています。
UPTIME: 17:23:57 ★<-- もし、数分であれば、boot プロセスで発生したと考えられ、再現する可能性があると
考えられます。209日ぐらいであれば、clock underflow 問題の可能性があります。
LOAD AVERAGE: 0.58, 0.44, 0.47 ★<-- (左から、1分、5分、15分)実行可能なプロセス数を示す。
左に向かって増加していれば、ロードが増加傾向で、事象発生が最近であることを示しています。
ロードが平板であれば、システムがスタックしていると考えられ、左に向かって減少していれば、
システムがアイドルになっているということになります。もし最近のロードが高ければ、ロードは、
実行可能なプロセスがCPUを得られないためなのか、I/O待ちまたは他のイベント待ちによる割り込み不可な
プロセスのためなのかを見分ける必要があります。
TASKS: 399 ★<-- この数が2000を超えるようであれば、リソースが足りないと言えます。
たとえ、CPU数が多くても、多くのTASKをさばけるわけではありません。
急上昇するようなら、リクエストの混雑をまねくだけのため。
NODENAME: xxxxxxxx
RELEASE: xxxx.el7.x86_64
VERSION: #1 SMP Sat Jun 18 01:51:33 ICT 2016
MACHINE: x86_64  (xxxx Mhz)
MEMORY: xxxx GB ★<--swap を含まないメモリサイズ。
PANIC: "BUG: unable to handle kernel NULL pointer dereference at (null)" ★<--panic string
問題を示す、panic string となっています。
PID: <数値>
COMMAND: "xxxx"
TASK: <アドレス>  [THREAD_INFO: <アドレス>]
CPU: <CPU番号>
STATE: TASK_RUNNING (PANIC)

なんとなく分かってきましたね。
お腹すいたよー。。
つづきです。
https://qiita.com/intrajp/items/a66c7b142441fc19054d

参考:Linux カーネル Hacks オライリージャパン 第7章デバッグ
参考:「CRASHダンプ解析について 最終更新 2017/12/19」https://www.concurrent-rt.co.jp/external/TechSup/crash.html
参考:https://bitbucket.org/meszarv/webswing/issues/118/null-pointer-exception-when-running-inside
参考:https://access.redhat.com/solutions/969393

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?