今回は、
トラシュー事例(初級編)
「XX月YY日にシステムが予期せぬ再起動をしました。原因調査をしてください」
「XX月YY日にシステムが予期せぬ再起動をしました。原因調査をしてください」
上記のような問い合わせについて、
- ハードウェア
- アプリケーション
- ユーザによる操作
- カーネルパニック
このような問い合わせ内容の場合、
情報収集の初期段階では、
sosreportとは
sosreportは、rpm -ql sos
」
sosreportの構造
収集したsosreportは図1のようになっています。一般的に確認することが多いディレクトリについて紹介しています。この図から、
. ├── boot /boot 配下の設定ファイルを収めている ├── etc /etc 配下の設定ファイルを収めている ├── proc /proc ファイルシステム配下から収集した情報を収めている ├── root /root 配下の収集したファイルを収めている ├── sos_commands 各スクリプトで実行したコマンドの実行結果をスクリプトごとに収めている │ ├── autofs │ ├── bootloader │ ├── crontab ├── sys /sys ファイルシステム配下から収集した情報を収めている └── var /var/ 配下のログなどを収めている ├── crash kdumpで取得されたvmcoreのデフォルトの保存先で、vmcore-dmesg.txtを配置している └── log 収集した一般的なログを収めている
soreportを使って調査してみよう
取得したsosreportから、
まず、sos_
」
$ cat sos_commands/startup/chkconfig_--list ¦grep kdump kdump 0:off 1:off 2:on 3:on 4:on 5:on 6:off
次に事象が発生した日時の直前のシステムログ
図3から、
Feb 11 11:08:12 localhost kdump: kexec: loaded kdump kernel Feb 11 11:08:12 localhost kdump: started up
保存先を指定するpathオプションを確認すると図4から保存先は/var/
$ cat etc/kdump.conf ¦ grep -v ^# ¦ grep -v ^[[:space:]]*$ path /var/crash core_collector makedumpfile -c --message-level 1 -d 31
vmcoreが保存されている場合には、
<0>Uhhuh. NMI received for unknown reason 30 on CPU 0.
<0>Do you have a strange power saving mode enabled?
<0>Kernel panic - not syncing: NMI: Not continuing
<4>Pid: 0, comm: swapper Not tainted 2.6.32-504.8.1.el6.x86_64 #1
<4>Call Trace:
<4> <NMI> [<ffffffff815292d6>] ? panic+0xa7/0x16f
<4> [<ffffffff8152dec9>] ? do_nmi+0x329/0x340
<4> [<ffffffff8152d620>] ? nmi+0x20/0x30
<4> [<ffffffff81040f8b>] ? native_safe_halt+0xb/0x10
<4> <<EOE>> [<ffffffff810167ad>] ? default_idle+0x4d/0xb0
<4> [<ffffffff81009fc6>] ? cpu_idle+0xb6/0x110
<4> [<ffffffff8151061a>] ? rest_init+0x7a/0x80
<4> [<ffffffff81c29f8f>] ? start_kernel+0x424/0x430
<4> [<ffffffff81c2933a>] ? x86_64_start_reservations+0x125/0x129
<4> [<ffffffff81c29453>] ? x86_64_start_kernel+0x115/0x124
この内容から、
今回は、
ここからは一歩進んだ情報収集について、
トラシュー事例(上級編①)
「過去のパフォーマンス問題について調査したい」
「過去のパフォーマンス問題について調査したい」
過去のパフォーマンス問題について調査したい場合には、
sysstatパッケージに含まれるsarは、
注意する点としては、
Linux 2.6.32-504.8.1.el6.x86_64 (localhost.localdomain) 2015-02-09 _x86_64_ (1 CPU)
08:38:45 PM LINUX RESTART
08:40:01 PM CPU %usr %nice %sys %iowait %steal %irq %soft %guest %idle
08:50:01 PM all 0.52 0.00 0.09 2.54 0.01 0.00 0.00 0.00 96.84
08:50:01 PM 0 0.52 0.00 0.09 2.54 0.01 0.00 0.00 0.00 96.84
09:00:01 PM all 0.02 0.00 0.08 0.50 0.01 0.00 0.00 0.00 99.40
09:00:01 PM 0 0.02 0.00 0.08 0.50 0.01 0.00 0.00 0.00 99.40
09:10:01 PM all 0.23 0.00 0.31 1.09 0.03 0.00 0.00 0.00 98.33
09:10:01 PM 0 0.23 0.00 0.31 1.09 0.03 0.00 0.00 0.00 98.33
(...省略...)
このようにsarの情報から過去のシステムの稼動状況を確認することができます。今回紹介したCPU使用率以外にも、man1 sar
」
トラシュー事例(上級編②)
「システムがハングした」
「システムがハングした」
このような状況のトラブルシューティングで有用となる情報は、
vmcoreについては、
パラメータ | 内容 |
---|---|
①kernel. | soft lockupを検出した際にパニックさせる |
②kernel. | hung taskを検出した際にパニックさせる |
③vm. | Out of Memoryを検出した際にパニックさせる |
④kernel. | Sysrqファシリティの有効化 |
⑤kernel. | ハードウェアからのNMIを検出した際にパニックさせる |
⑥kernel. | ハードウェアからのNMIを検出した際にパニックさせる |
⑦kernel. | ハードウェアからのNMIを検出した際にパニックさせる |
※ それぞれ
①~③は、
④については、
⑤~⑦はハードウェアによって、
筆者のお勧めは、
vmcoreの解析にはcrashユーティリティを利用しますが、
本稿では、
本誌最新号をチェック!
Software Design 2022年9月号
2022年8月18日発売
B5判/
定価1,342円
- 第1特集
MySQL アプリ開発者の必修5科目
不意なトラブルに困らないためのRDB基礎知識 - 第2特集
「知りたい」 「使いたい」 「発信したい」 をかなえる
OSSソースコードリーディングのススメ - 特別企画
企業のシステムを支えるOSとエコシステムの全貌
[特別企画] Red Hat Enterprise Linux 9最新ガイド - 短期連載
今さら聞けないSSH
[前編] リモートログインとコマンドの実行 - 短期連載
MySQLで学ぶ文字コード
[最終回] 文字コードのハマりどころTips集 - 短期連載
新生「Ansible」 徹底解説
[4] Playbookの実行環境 (基礎編)