Linuxサーバのハングアップの調査(netconsole,NMI)(2)
前回の続きです。
2.netconsole
netdumpを取得できない場合、手軽に導入できそうなものはnetconsoleです。
- UDP経由でカーネル printk メッセージを記録(コンソールに出るメッセージのこと)
- クラッシュダンプを取得するわけではない
DSASさんにまとまっています。
DSAS開発者の部屋:Linuxの断末魔の叫び(kernel oops)をリモートホストで採取する方法
なお、この際oopsが出たらkernel panicを行う設定をしています。「kernel oops」ってkernel panicとは異なるものだったのですね。
3.NMI watchdog
今までは調査のためのツールを案内していましたが、これはサーバを強制的にハングアップさせるツールです。
サーバの様子がおかしくなったときに、さっさとkernel panicを起こしてリブートしてくれればよいのですが、アプリケーションが全滅なのに中途半端にネットワークだけ生きてたり、コマンドを打っても何も返ってこない半死の状態というのがあります。こういった場合は調査のしようがないので、一刻も早くリブートしてサービスを復旧するのが望まれますが、電源ON/OFFの強制リブートしか手段はないのでしょうか。
こういったときにNMI(Non-Maskable Interrupt) watchdogを利用した自律リブートという手段があるようです。
DSAS開発者の部屋:Linuxでクラッシュダンプを採取(5) 〜 nmi_watchdogとの併用 〜
ただし、NMI割り込みはCPUが対応していなければならないので、どのマシンでも使えるというわけではありません。64bitのCPUは対応しているようです。



