华为云服务器内核参数kernel.unknown_nmi_panic配置错误导致Linux ECS实例异常重启_云淘科技
问题描述
Linux操作系统的ECS实例发生异常重启事件,错误提示如下:
Kernel panic - not syncing: NMI: Not continuing
同时,内核日志打印如下信息:
[645683.754132] Uhhuh. NMI received for unknown reason 20 on CPU 1. [645683.754133] Do you have a strange power saving mode enabled? [645683.754133] Kernel panic - not syncing: NMI: Not continuing
可能原因
如果Linux操作系统ECS实例的内核参数kernel.unknown_nmi_panic配置为1,则ECS会在系统收到NMI中断时主动通过panic系统重启。
通常情况下,内核参数kernel.unknown_nmi_panic配置为1的目的是为了通过触发NMI中断主动通过panic系统进行定位。由于个别型号的CPU会在正常业务流程中产生NMI中断,在这种情况下如果将内核参数kernel.unknown_nmi_panic配置为1,将会导致ECS产生非预期的异常重启事件。
解决方案
远程登录ECS实例。
执行以下命令,查看ECS实例内核参数kernel.unknown_nmi_panic的值。
sysctl -n kernel.unknown_nmi_panic
如果内核参数的取值为1,说明是由于内核参数配置错误引起的ECS实例异常重启。
图1 排查结果
执行以下命令,查看是否存在内核参数kernel.unknown_nmi_panic相关配置。
vim /etc/sysctl.conf
在/etc/sysctl.conf文件中,排查是否存在kernel.unknown_nmi_panic的相关配置。
如果存在kernel.unknown_nmi_panic=1的配置,将该配置改为kernel.unknown_nmi_panic=0
如果不存在kernel.unknown_nmi_panic=1的配置,增加kernel.unknown_nmi_panic=0
图2 查看/etc/sysctl.conf文件
按“Esc”,输入:wq保存并退出。
执行以下命令,使配置生效。
sysctl –p
图3 配置生效
该修复方案热生效,无需重启ECS。
结果验证
执行以下命令,查看结果是否为0。
cat /proc/sys/kernel/panic_on_unrecovered_nmi
图4 检查结果1
执行以下命令,查看内核参数sysctl -n kernel.unknown_nmi_panic是否为0。
图5 检查结果2
如果验证结果符合预期,说明修改成功。
父主题: 操作系统类(Linux)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家