https://blog.csdn.net/sunny05296/article/details/82858071html
最近碰到了Centos7.2上终端打印soft lockup CPU死锁,系统无响应状态。直接缘由是:若是CPU太忙致使喂狗(watchdog)不及时,系统会打印CPU死锁信息:java
kernel:BUG: soft lockup - CPU#0 stuck for 38s! [kworker/0:1:25758]服务器
kernel:BUG: soft lockup - CPU#7 stuck for 36s! [java:16182]post
......性能
内核参数kernel.watchdog_thresh(/proc/sys/kernel/watchdog_thresh)系统默认值为10。若是超过2*10秒会打印信息,注意:调整值时参数不能大于60。优化
调整该值能够延长喂狗等待时间,可是不能完全解决问题,须要找到根本缘由。.net
能够打开panic,将/proc/sys/kernel/panic的默认值0改成1,便于定位。unix
引起CPU死锁的缘由有不少种:htm
* 服务器电源供电不足,致使CPU电压不稳致使CPU死锁
blog
* vcpus超过物理cpu cores(虚拟CPU数超过物理CPU数)
* 虚机所在的宿主机的CPU太忙或磁盘IO过高
* 虚机的的CPU太忙或磁盘IO过高
* BIOS KVM开启之后的相关bug,关闭KVM可解决,但关闭之后物理机不支持虚拟化
* VM网卡驱动存在bug,处理高水位流量时存在bug致使CPU死锁
* BIOS开启了超频,致使超频时电压不稳,容易出现CPU死锁
* Linux kernel存在bug
* KVM存在bug
* clocksource tsc unstable on CentOS and cloud Linux with Hyper-V Virtualisation
https://unix.stackexchange.com/questions/70377/bug-soft-lockup-cpu-stuck-for-x-seconds
经过设置clocksource=jiffies可解决
* BIOS Intel C-State开启致使,关闭可解决
* BIOS spread spectrum开启致使
当主板上的时钟震荡发生器工做时,脉冲的尖峰会产生emi(电磁干扰)。spread spectrum(频展)设定功能能够下降脉冲发生器所产生的电磁干扰,脉冲波的尖峰会衰减为较为平滑的曲线。 若是咱们没有遇到电磁干扰问题,建议将此项设定为disabled,这栏能够优化系统的性能表现和稳定性; 不然应该将此项设定为enabled。 若是对cpu进行超频,必须将此项禁用。由于即便是微小的脉冲值漂移也会致使超频运行的cpu锁死。 再次强调:CPU超频时,SPREAD SPECTRUM必须关闭,不然容易出现锁死cpu的状况。