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

CentOS7运行报错kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s CentOS7运行报错kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s CentOS内核,对应的文件是/proc/sys/kernel/watchdog_thresh。 CentOS内核和标准内核还有一个地方不一样,就是处理CPU占用时间过长的函数,CentOS下是watchdog_timer_fn()函数。 如果你的内核是标准内核的话,可以通过修改/proc/sys/kernel/softlockup_thresh来修改超时的阈值 参考 阅读详情

近期在服务器跑大量高负载程序,造成cpu soft lockup。如果确认不是软件的问题。

解决办法:

#追加到配置文件中

echo 30 > /proc/sys/kernel/watchdog_thresh

#查看

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

#临时生效

sysctl -w kernel.watchdog_thresh=30

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

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

vi /etc/sysctl.conf

kernel.watchdog_thresh=30

参考文章:

CentOS内核,对应的文件是/proc/sys/kernel/watchdog_thresh。
CentOS内核和标准内核还有一个地方不一样,就是处理CPU占用时间过长的函数,CentOS下是watchdog_timer_fn()函数。
如果你的内核是标准内核的话,可以通过修改/proc/sys/kernel/softlockup_thresh来修改超时的阈值
参考文献:https://zhidao.baidu.com/question/1829924822713415300.html

首先,这条信息可以输出,说明即使发生死锁或者死循环,还是有代码可以执行。第二,可以通过这个日志信息,找到对应的处理函数,这个函数所在的模块就是用来处理CPU被过度使用时用到的。所以通过这个事情,可以看到内核打印出的只言片语都有可能成为你解决问题的关键,一定要从重视这些信息,从中找出有用的东西。
我经常看的内核版本是官方的2.6.32内核,这个版本中我找到的函数是softlockup_tick(),这个函数在时钟中断的处理函数run_local_timers()中调用。这个函数会首先检查watchdog线程是否被挂起,如果不是watchdog线程,会检查当前占有CPU的线程占有的时间是否超过系统配置的阈值,即softlockup_thresh。如果当前占有CPU的时间过长,则会在系统日志中输出我们上面看到的那条日志。接下来才是最关键的,就是输出模块信息、寄存器信息和堆栈信息,检查softlockup_panic的值是否为1。如果softlockup_panic为1,则调用panic()让内核挂起,输出OOPS信息。代码如下所示:/** This callback runs from the timer interrupt, and checks

  • whether the watchdog thread has hung or not:*/void softlockup_tick(void){int this_cpu = smp_processor_id();
    unsigned long touch_timestamp = per_cpu(touch_timestamp, this_cpu);
    unsigned long print_timestamp;
    struct pt_regs regs = get_irq_regs();
    unsigned long now;
    /
    Warn about unreasonable delays: */
    if (now <= (touch_timestamp + softlockup_thresh))return;
    per_cpu(print_timestamp, this_cpu) = touch_timestamp;
    spin_lock(&print_lock);
    printk(KERN_ERR BUG: soft lockup - CPU#%d stuck for %lus! [%s:%d]\n,
    this_cpu, now - touch_timestamp,
    current-comm, task_pid_nr(current));
    print_modules();
    print_irqtrace_events(current);if (regs)show_regs(regs);elsedump_stack();
    spin_unlock(&print_lock);
    if (softlockup_panic)
    panic(softlockup: hung tasks);}
    但是softlockup_panic的值默认竟然是0,所以在出现死锁或者死循环的时候,会一直只输出日志信息,而不会宕机,这个真是好坑啊!所以你得手动修改/proc/sys/kernel/softlockup_panic的值,让内核可以在死锁或者死循环的时候可以宕机。如果你的机器中安装了kdump,在重启之后,你会得到一份内核的core文件,这时从core文件中查找问题就方便很多了,而且再也不用手动重启机器了。如果你的内核是标准内核的话,可以通过修改/proc/sys/kernel/softlockup_thresh来修改超时的阈值,如果是CentOS内核的话,对应的文件是/proc/sys/kernel/watchdog_thresh。CentOS内核和标准内核还有一个地方不一样,就是处理CPU占用时间过长的函数,CentOS下是watchdog_timer_fn()函数。
    这里介绍下lockup的概念。lockup分为soft lockup和hard lockup。 soft lockup是指内核中有BUG导致在内核模式下一直循环的时间超过10s(根据实现和配置有所不同),而其他进程得不到运行的机会。hard softlockup是指内核已经挂起,可以通过watchdog这样的机制来获取详细信息。
linux内核中watchdog、lockup、stall、hung等检测 系统(在一个或多个CPU核上)保持在长时间无反应状态。检测类型有watchdog、soft lockup、hard lockup、 hung task、workqueue stall 等。3、CONFIG_RCU_CPU_STALL_TIMEOUT 值的范围 (3~300)在此时间内一定能检测到。在内核模式下运行的CPU内核仍处于紧密循环状态,不允许其他硬件中断运行;1、硬锁定只能由NMI,在本机x86_64上检测到;内核处于紧密的循环中,长时间不让其他任务得到调度。检测系统的健康状态,有能力重启系统。 阅读详情

相关推荐

Linux系统报错NMI watchdog: BUG: soft lockup - CPU#5 stuck for 24s

目录一、问题描述二、解决方法1.将 watchlog_thresh 临时设置为 302.将 watchlog_thresh 永久设置为 303.将 watchlog_thresh 写入启动文件 一、问题描述 Linux 系统响应变慢,显示错误信息如下: May 9 14:43:05 localhost kernel: NMI watchdog: BUG: soft lockup - CPU#5 stuck for 24s! [watchdog/5:34] May 9 14:43:05 localhos

邓邓子的博客 8056

kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死

环境说明:虚拟机 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原因分析 ...

weixin_30879833的博客 5792

学习C++的递归函数(包含汉诺塔讲解)

简单来讲,递归函数就是函数本身自己调用自己,那么函数又是什么呢?#include <stdio.h> //这行是头文件,不同的头文件可以用不同的函数int main() //这里就是一个main函数//这里是你要编写程序的内容return 0;(这是个小细节如下)所以我们平时用来练习的就是一个main函数,而且是一个整型类型的函数,而这也是最后一句话为什么要加一句 return 0;了,因为它最后要返回整数类型,其它整数也可以,但是大家规定为0,这是C++自带的函数。

2302_81032013的博客 2594

报错kernel:NMI watchdog: BUG: soft lockup - CPU的解决办法

#!/bin/bash #修改阈值为30,写入文件 echo 30 > /proc/sys/kernel/watchdog_thresh #修改阈值为30,临时生效 sysctl -w kernel.watchdog_thresh=30 #修改阈值为30,写入启动文件 grep 'watchdog_thresh' /etc/sysctl.conf if [ $? -ne 0 ]; then echo "kernel.watchdog_thresh=30" >> /etc/sysctl

JAVA_LuZiMaKei的博客 2万+

保姆级教程:IAR for STM8 3.11版本安装与破解全流程(附资源包)

本文提供IAR for STM8 3.11版本的详细安装与破解教程,涵盖环境准备、主程序安装、许可配置及实战验证全流程。针对新手常见问题,如许可证报错、驱动安装失败等,给出了具体解决方案,帮助开发者快速搭建稳定的STM8开发环境。

study的专栏 952

Open5GS实战指南:Ubuntu 22.04环境下的5G核心网快速部署

本文提供Open5GS在Ubuntu 22.04环境下部署5G核心网的实战指南,涵盖环境准备、MongoDB配置、核心组件安装、WebUI部署及网络调优等关键步骤。通过详细的安装教程和常见问题解决方案,帮助开发者快速搭建开源5G核心网测试环境。

weixin_29202213的博客 540

全志平台Android 系统调试方法(5)内核异常调试

以下技术在盈鹏飞嵌入式的A40I/T3核心板(CoM-X40I)和主控板(SBC-X40I)上经过验证,欢迎 交流! CoM-X40I核心板和SBC-X40I主板见下图: 1. 前言 这里总结几种内核异常时,常用的几种调试方法 2. Watchdog softlockup linux-3.4\Documentationlockup-watchdogs.txt (1) Linux3.4 Watchdog softlockup配置 Munuconfig配置 CONFIG_BOOTPARAM

szembed的博客 980

卫星通信链路预算实战:从EIRP到Eb/N0的完整计算指南(含Excel模板)

本文提供了一份卫星通信链路预算的实战指南,详细解析了从EIRP到Eb/N0的完整计算流程。文章重点对比了C波段与Ku波段在应对降雨衰减等动态因素时的不同策略,并分享了包含核心公式的Excel模板,帮助工程师将理论转化为可执行的系统设计依据。

weixin_29230773的博客 535

系统自己弹出诸如 kernel:NMI watchdog: BUG: soft lockup - CPU#2 stuck for 26s [mysqld:2875]

系统在没有人使用的情况下自己弹出诸如以下关于内核的报错 [root@bkce tmp]# Message from syslogd@bkce at Oct 13 14:25:00 … kernel:NMI watchdog: BUG: soft lockup - CPU#2 stuck for 26s! [mysqld:2875] Message from syslogd@bkce at Oct 13 14:25:00 … kernel:NMI watchdog: BUG: soft lockup - CP

佳佳不是熊猫 8593

病理组学分析系列教程1:使用Python-histolab进行病理图像预处理,tiles切片自动生成

病理图像tiles自动生成,WSI图像预处理

qq_43449643的博客 1742

【华为OD机试真题】65、高矮个子排队 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。 >  我们现在希望小朋友排队,以"高" "矮" "高" "矮" 顺序排列,每一个高位置的小朋友要比相邻的位置高或者相等;每个 "矮" 位置的小朋友要比相邻的位置矮或者相等; >  要求小朋友们移动的距离和最小,第一个从“高"位开始排,输出最小移动距离即可。 >  例如,在示范小队{5,3,1,2,3}中, {5, 1, 3, 2, 3}是排序结果。 > 

KJ.JK 2102

mysql soft lockup_kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死...

环境说明:虚拟机 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原因分析:网上找资料分析了一下...

weixin_39540018的博客 444

SAP_SD模块销售开票计划预收款系统配置及前台操作说明

在 SAP SD 中,开票计划(Billing Plan)是一种允许根据时间节点或里程碑对销售订单进行分期开票的功能。其中最常见的一种应用就是预收款(Down Payment Billing),即在销售订单中直接定义某个百分比或金额作为预收款,系统在开票时自动生成预收账单。大额合同或长期项目型销售(先收 20%,交货前收 30%,交货后收 50%)。分期付款模式(分阶段收款)。必须预收款才能安排生产或交货的业务。后台路径:SPRO—销售与分享—销售—销售凭证—销售凭证项目—定义项目类别。

我小时候很黑的博客 1409

linux内核中cpu被禁用,kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死...

环境说明:虚拟机 CentOS7中解压一个8G的包时,内核报错phpMessage 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]html内核软死锁(soft lockup)bug缘由分析:网上找...

weixin_28889765的博客 2266

融合Retinex理论与Transformer的YOLOv8低光照目标检测增强方法【YOLOv8】

图像分解:将输入图像分解为光照成分和反射成分。光照估计:估计光照图以消除暗光区域。图像重建:将光照增强后的反射图像重建成最终图像。Retinexformer通过在Transformer中引入Retinex的图像增强思路,使得低光照图像的细节能够得到充分保留。本文提出了一种基于Retinexformer的低光照增强方法,用于改进YOLOv8模型在夜间和低光照环境下的目标检测性能。

博客 1931

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s

我是按照步骤把nomodeset去掉,ubuntu就再也不卡住,加或者不加看你启动文件里有没有nomodeset,出问题有nomodeset就删掉,没有就加上,多试试; ubuntu 安装完成后重启电脑报错: BUG soft lockup 的解决办法_xrinosvip的博客-优快云博客安装linux(ubuntu)遇到soft lockup问题_thrashx的博客-优快云博客 ...

z15f34的博客 1040

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 解决Jenkins时间与系统时间不一致
下一篇: linux sshfs挂载命令使用
lcm_linux
博客等级 码龄7年 7258粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值