环境说明:虚拟机 CentOS7中解压一个8G的包时,内核报错

Message from syslogd@cosmo-01 at Apr 25 11:05:59 ...
kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 21s! [xfs-data/dm-0:451]

内核软死锁(soft lockup)bug原因分析:

网上找资料分析了一下原因,直接原因是:如果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死锁
  https://ubuntuforums.org/showthread.php?t=2205211
  
  I bought a small (500W) new power supply made by what I feel is a reputable company and made the swap.
  GREAT NEWS: After replacing the power supply, the crashes completely stopped! 
  I wanted to wait a while just to be sure, but it is now a few weeks since the new powersupply went in, and I haven't had a single crash since.
  The power supply is not something that I would normally worry about, but in this case it totally fixed my problem.
  Thanks to those who read my post, and especially to those who responded.

* vcpus超过物理cpu cores
  https://unix.stackexchange.com/questions/70377/bug-soft-lockup-cpu-stuck-for-x-seconds

* 虚机所在的宿主机的CPU太忙或磁盘IO太高

* 虚机的的CPU太忙或磁盘IO太高
  https://www.centos.org/forums/viewtopic.php?t=60087
  
* BIOS KVM开启以后的相关bug,关闭KVM可解决,但关闭以后物理机不支持虚拟化
  https://unix.stackexchange.com/questions/70377/bug-soft-lockup-cpu-stuck-for-x-seconds
  
* VM网卡驱动存在bug,处理高水位流量时存在bug导致CPU死锁

* BIOS开启了超频,导致超频时电压不稳,容易出现CPU死锁
  https://ubuntuforums.org/showthread.php?t=2205211
  
* Linux kernel存在bug
  https://unix.stackexchange.com/questions/70377/bug-soft-lockup-cpu-stuck-for-x-seconds

* KVM存在bug
  https://unix.stackexchange.com/questions/70377/bug-soft-lockup-cpu-stuck-for-x-seconds
  
* 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开启导致,关闭可解决
  https://unix.stackexchange.com/questions/70377/bug-soft-lockup-cpu-stuck-for-x-seconds
  https://support.citrix.com/article/CTX127395
  http://blog.sina.com.cn/s/blog_906d892d0102vn26.html

* BIOS spread spectrum开启导致
  当主板上的时钟震荡发生器工作时,脉冲的尖峰会产生emi(电磁干扰)。spread spectrum(频展)设定功能可以降低脉冲发生器所产生的电磁干扰,脉冲波的尖峰会衰减为较为平滑的曲线。
  如果我们没有遇到电磁干扰问题,建议将此项设定为disabled,这栏可以优化系统的性能表现和稳定性;
  否则应该将此项设定为enabled。 如果对cpu进行超频,必须将此项禁用。因为即使是微小的脉冲值漂移也会导致超频运行的cpu锁死。
  再次强调:CPU超频时,SPREAD SPECTRUM必须关闭,否则容易出现锁死cpu的情况。

#追加到配置文件中

echo  > /proc/sys/kernel/watchdog_thresh 

#查看

[root@git-node1 data]# tail - /proc/sys/kernel/watchdog_thresh

#临时生效

sysctl -w kernel.watchdog_thresh=

#内核软死锁(soft lockup)bug原因分析

Soft lockup名称解释:所谓,soft lockup就是说,这个bug没有让系统彻底死机,但是若干个进程(或者kernel thread)被锁死在了某个状态(一般在内核区域),很多情况下这个是由于内核锁的使用的问题。

vi /etc/sysctl.conf

kernel.watchdog_thresh=

kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死的更多相关文章

  1. CentOS7运行报错kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s

    CentOS内核,对应的文件是/proc/sys/kernel/watchdog_thresh.CentOS内核和标准内核还有一个地方不一样,就是处理CPU占用时间过长的函数,CentOS下是watc ...

  2. 报错kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s

    近期在服务器跑大量高负载程序,造成cpu soft lockup.如果确认不是软件的问题. 解决办法: #追加到配置文件中 echo 30 > /proc/sys/kernel/watchdog ...

  3. NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!

    今天测试环境一虚拟机运行中突然报错,,, 没见过的内核报错,于是google一番. 系统日志: Nov :: dev- kernel: NMI watchdog: BUG: soft lockup - ...

  4. 内核报错kernel:NMI watchdog: BUG: soft lockup - CPU#1

    1.现象描述 系统管理员电话通知,描述为一台服务器突然无法ssh连接,登录服务器带外IP地址并进入远程控制台界面后,提示Authentication error,重启后即可正常进入系统,进入后过20分 ...

  5. 线上centos6出现软死锁 kernel:BUG: soft lockup

    线上centos6出现软死锁 kernel:BUG: soft lockup 今天线上一台centos6机器用xshell一直连接不上,然后在xshell上显示 Message from syslog ...

  6. 安装ubuntu出现BUG soft lockup的解决方法(16.04 14.04)

    对于16.04而言,当时用的是UtrISO 安装的,导致安装过程用会出现 “not a com32r image” 的错误,解决方法见上文的: boot: live 华硕Z9主板安装16.04以上系统 ...

  7. Linux soft lockup分析

    关键词:watchdog.soft lockup.percpu thread.lockdep等. 近日遇到一个soft lockup问题,打印类似“[ 56.032356] NMI watchdog: ...

  8. Linux soft lockup 和 hard lockup

    一. 整体介绍 soft lockup:检测调度异常, 一般是驱动禁止调度或者阻塞比如while(1), 导致无法调度其他线程, 需要注意的是, 应用程序while(1)不会影响其调度, 只要有更高的 ...

  9. linux內核輸出soft lockup

    創建的內核線程長期佔用cpu,一直內核認為線程soft lockup,如無法獲取自旋鎖等:因此線程可適度調用schdule(),以進行進程的調度:因為kwatchdog的執行級別低,一直得不到執行 [ ...

随机推荐

  1. mysql8.0 定时创建分区表记录 每天定时创建下一天的分区表

    因单表数据太大, 需要表按时间分区 分区字段 pay_out_date 按天分 要求自动创建 1. 创建分区表 MYSQL的分区字段,必须包含在主键字段内 常见错误提示 错误提示:#1503 A PR ...

  2. 通过创建制定版本react-native项目解决“Unable to resolve module `AccessibilityInfo` ”的问题

    react-native init MyApp --version 0.55.4 注:不能将--version简写成-v

  3. day20.序列化模块

    参考云游道士:https://www.cnblogs.com/yyds/p/6563608.html 1.什么是序列化 序列化就是将字典,数字等数据类型转换为字符串数据类型 所说的序列就是字符串 2. ...

  4. Pytoch机器学习乱玩(一):数学建模作业,体重与心率

    动物心率与体重的模型 动物消耗的能量p主要用于维持体温,而体内热量通过其表面积S散失,记动物体重为w,则\(P \propto S \propto w^{\alpha}\).又\(P\)正比于血流量\ ...

  5. flask权限控制

    大概思路为通过管理员id的查询角色,然后查看相应权限,为列表类型,然后通过id查询对应的路由规则,进而得出结论得出是否具有该权限 具体代码: def admin_auth(f): @wraps(f) ...

  6. TensorFlow卷积网络常用函数参数详细总结

    卷积操作 tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) 除去name参数用以指定该操作 ...

  7. Python 代码片段整理

    1.numpy.random.shuffle(x) import numpy as np x = [] for i in range(10): x.append(i) print(x) np.rand ...

  8. Markdown初使用

    Markdown是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式. 相比WYSIWYG编辑器 优点:1.因为是纯文本,所以只要支持Markdown的地方都能获得一样的 ...

  9. over(partition by..) 的运用(转)

    oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每 ...

  10. vue事件修饰符

    阻止单击事件冒泡 <a v-on:click.stop="doThis"></a>提交事件不再重载页面<form v-on:submit.preven ...