【案例分享】SuSE12SP5宕机分析报告

一、故障描述
接到客户通知,一台SuSE12SP5内核版本为4.12.14-122.54-default的机器宕机自动重启,业务受到影响,OS重启后正常进入系统,业务恢复,需要分析宕机原因。
二、故障分析
收集信息
联系客户收集supportconfig日志,在supportconfig中看到,系统在宕机时刻在/var/crash目录下面生成了2023-01-07-09:18目录,由此可见系统在出现问题的时候生成了dump文件,需要从生成的dump文件去分析,并将客户的2023-01-07-09:18目录上传到分析kdump的机器上。
准备工具
1. 安装crash

2. 准备kernel文件

3. 提取文件

4. 分析crash

根据上面输出得到如下信息: 在执行 "top" 命令时发生了双重故障(double fault)导致系统崩溃。双重故障通常表示处理器执行两次异常处理过程,其中第二次异常处理过程发生在第一次异常处理过程的上下文中,导致系统无法恢复正常运行。

根据 backtrace(bt)信息,内核崩溃的原因是在执行do_page_fault函数时发生了异常,导致双重故障。do_page_fault是一个用于处理页面故障(page fault)异常的内核函数,它被用来处理在内存访问时发生的页面错误。(比如缺页异常)

通过dis查到这个函数在内存中的地址为ffffffffb4076cf6,看到实际CPU操作的是push %rbx,将寄存器%rbx中的数据入栈,入栈地址为fffffe000013c000,但%rbx的地址全部为0,为空数据,所以有可能是内存硬件存在问题。
三、故障处理
后续通过检查硬件发现:内存存在异常告警,更换内存后现象消失,宕机重启现象不再出现。
四、经验总结
当我们不能完全确定是物理内存出现问题时,建议可以从以下几个方面配合检查:
◆检查物理内存是否存在
◆存储设备是否正常
◆处理器是否正常
◆第三方内核模块是否有异常