
# 内核参数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产生非预期的异常重启事件。
#### 约束与限制
本节操作涉及修改系统内核参数，在线修改内核参数会出现内核不稳定，请评估风险后操作。
#### 解决方案
1. 远程登录ECS实例。
2. 执行以下命令，查看ECS实例内核参数kernel.unknown_nmi_panic的值。 **sysctl -n kernel.unknown_nmi_panic**
   如果内核参数的取值为1，说明是由于内核参数配置错误引起的ECS实例异常重启。
   图1排查结果   
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000001612632385.png "点击放大") 

3. 执行以下命令，查看是否存在内核参数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文件   
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000001562112702.png "点击放大") 
4. 按"Esc"，输入**:wq**保存并退出。
5. 执行以下命令，使配置生效。 **sysctl -p**
   图3配置生效   
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000001612513361.png "点击放大")
   ![](https://support.huaweicloud.com/trouble-ecs/public_sys-resources/note_3.0-zh-cn.png)
   该修复方案热生效，无需重启ECS。
   
 
#### 结果验证
1. 执行以下命令，查看结果是否为0。 **cat /proc/sys/kernel/panic_on_unrecovered_nmi**
   图4检查结果1   
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000001612634885.png "点击放大") 
2. 执行以下命令，查看内核参数sysctl -n kernel.unknown_nmi_panic是否为0。
   图5检查结果2   
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000001562274662.png "点击放大")
   如果验证结果符合预期，说明修改成功。
   
 
