zoukankan      html  css  js  c++  java
  • CPU死锁

    https://blog.csdn.net/sunny05296/article/details/82858071

    最近碰到了Centos7.2上终端打印soft lockup CPU死锁,系统无响应状态。直接原因是:如果CPU太忙导致喂狗(watchdog)不及时,系统会打印CPU死锁信息:

    kernel:BUG: soft lockup - CPU#0 stuck for 38s! [kworker/0:1:25758]

    kernel:BUG: soft lockup - CPU#7 stuck for 36s! [java:16182]

    ......

    内核参数kernel.watchdog_thresh(/proc/sys/kernel/watchdog_thresh)系统默认值为10。如果超过2*10秒会打印信息,注意:调整值时参数不能大于60。

    调整该值可以延长喂狗等待时间,但是不能彻底解决问题,需要找到根本原因。

    可以打开panic,将/proc/sys/kernel/panic的默认值0改为1,便于定位。

    引发CPU死锁的原因有很多种:

    服务器电源供电不足,导致CPU电压不稳导致CPU死锁

    * 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的情况。

  • 相关阅读:
    BZOJ 1021 循环的债务
    BZOJ 1019 汉诺塔
    BZOJ 1018 堵塞的交通
    BZOJ 1017 魔兽地图
    BZOJ 1016 最小生成树计数
    Luogu 3008 [USACO11JAN]道路和飞机Roads and Planes
    Luogu 3625 [APIO2009]采油区域
    Luogu 4139 上帝与集合的正确用法
    Luogu 3629 [APIO2010]巡逻
    Luogu 3626 [APIO2009]会议中心
  • 原文地址:https://www.cnblogs.com/linuxws/p/10535251.html
Copyright © 2011-2022 走看看