Linux Kernel崩溃分析的法宝:Kdump+Crash(上)
前言
虽然Linux内核向来以稳定著称,但是,总会有崩溃发生的时候,而内核崩溃问题一直是极具挑战性的难题。因为一旦内核崩溃,系统将面临停机或没有响应的困境,在这种情况下,想要分析并解决导致崩溃的原因,就会很棘手。
导致内核崩溃的事件有如下几种:
-
Kernel panic
-
Non-maskable interrupts (NMI)
-
Machine check exceptions (MCE)
-
Hardware failure
-
Manual intervention
对于其中一些事件(Kernel panic、NMI),内核将自动作出反应,并通过kexec触发崩溃转储机制。在其他情况下,需要手动干预才能捕获内存。每当发生上述事件之一时,找出根本原因以防止其再次发生是很重要的。
幸运的是,Linux内核提供了kdump和crash,这一对强大的组合,无疑是攻克这一难题的关键利刃,它们为我们深入分析内核崩溃原因、快速定位问题提供了精准且高效的解决方案。
由于kdump+crash篇幅较长,所以准备分上下两篇来讲