浅谈Linux中的软锁定(soft lockup)和硬件监视器(watchdog)
目录
- 1. 问题所示
- 2. 基本知识
- 3. 进阶知识
1. 问题所示
跑深度学习的时候遇到卡顿卡机
hostname kernel:watchdog BUG:soft lockup - CPU#16 stuck for 130s![P2PMain-72:4030570]
界面如下所示:
大概意思是:
watchdog_thresh参数是硬件监视器的超时阈值,即硬件监视器在未接收到系统响应的时间后会触发软锁定检测
2. 基本知识
软锁定(soft lockup)和硬件监视器(watchdog)是两个与Linux系统稳定性和可靠性密切相关的概念
一、 软锁定(Soft Lockup):
软锁定是指CPU长时间运行在内核模式下执行一个任务,而没有释放控制权给其他任务,导致系统无法响应用户输入或其他请求
软锁定通常是由于以下原因之一引起的:
-
内核空间代码执行时间过长:某个内核线程或驱动程序执行时间过长,导致其他任务无法获得CPU时间片
-
内核死循环(Kernel Spinlock):在多线程环境中,如果一个线程持有锁而没有释放,其他线程就无法获得该锁,导致系统停滞
软锁定的检测通常由硬件监视器(watchdog)负责,一旦检测到软锁定,就会发出警告信息并尝试恢复系统
软锁定问题的解决方法通常包括优化内核代码、修复驱动程序漏洞以及调整系统配置
二、硬件监视器(Watchdog):
硬件监视器是一种系统机制,用于监视系统的状态,并在检测到故障或异常情况时采取措施以确保系统的稳定性和可靠性。硬件监视器通常包括一个计时器和一个独立的处理器或电路,它可以监视系统的活动并在预定的时间间隔内接收或产生定时器中断。
在Linux系统中,硬件监视器通常用于监视系统的软锁定情况。当硬件监视器检测到系统停滞或软锁定时,它会向系统发送中断信号,引发相应的处理机制来识别和解决软锁定问题。这通常涉及记录相关信息、尝试恢复系统状态,并在必要时重新启动系统
三、在Linux中的应用:
在Linux中,软锁定和硬件监视器功能通常通过内核模块实现,例如softlockup和watchdog模块,这些模块负责监视系统的活动并在必要时采取措施以确保系统的稳定性和可靠性
可以通过配置内核参数或加载相应的内核模块来调整软锁定和硬件监视器的行为,包括设置监视器的超时时间、启用或禁用监视器功能、以及配置系统对软锁定的响应策略等
3. 进阶知识
调整硬件监视器的超时阈值,以便增加硬件监视器对软锁定的检测时间
一、临时生效的方式:
临时将硬件监视器的超时阈值设置为30秒:echo 30 > /proc/sys/kernel/watchdog_thresh
,(系统重新启动后会失效)
二、永久生效的方式:
通过编辑配置文件/etc/sysctl.conf或/etc/sysctl.d/*.conf
,并添加以下行:
kernel.watchdog_thresh = 30
使其生效:sysctl -p
sysctl
是一个用于查看、设置和管理内核参数的工具,通过使用sysctl命令,可以方便地修改内核参数,例如在运行时临时生效或永久生效
常见的用法包括sysctl -w
用于临时修改参数,以及sysctl -p
用于重新加载配置文件中的参数
相关文章:

浅谈Linux中的软锁定(soft lockup)和硬件监视器(watchdog)
目录 1. 问题所示2. 基本知识3. 进阶知识 1. 问题所示 跑深度学习的时候遇到卡顿卡机 hostname kernel:watchdog BUG:soft lockup - CPU#16 stuck for 130s![P2PMain-72:4030570]界面如下所示: 大概意思是: watchdog_thresh参数是硬件监视器的超时阈值…...
数据库的四个特性?MySQL是如何实现的?
首先MySQL中,数据库的四个特性分为: 原子性一致性隔离性持久性 也就是我们常说的ACID。 那么这四个特性数据库是如何实现的呢? 持久性---> redo log: redo log(重做日志): redolog本身是…...

Jupyter R绘图 汉字显示乱码的解决办法
1.Jupyte中,R绘图,汉字显示乱码 2.如何解决? (1)R中安装showtext 登录linux服务器 #R > install.packages(“showtext”) … 出错 (2)退出R,安装freetype-config #apt install libfreetype6-dev 出错 (3)进入R&…...
推荐几个值得一读的Qt开源项目
VNote - 基于Qt的免费开源笔记软件,适合那些寻找跨平台笔记解决方案的用户。项目地址:https://github.com/vnotex/vnote Qt NodeEditor - 类似于UE4蓝图的节点编辑器,对于想要深入了解Qt图形编辑和节点系统的人来说,这是一个极好…...

【XR806开发板试用】使用PWM模块模拟手机呼吸灯提示功能
一般情况下,我们的手机在息屏状态,当收到消息处于未读状态时,会有呼吸灯提醒,这次有幸抽中XR806开发板的试用,经过九牛二虎之力终于将环境搞好了,中间遇到各种问题,在我的另一篇文章中已详细描述…...
Mysql——索引下推
MySQL的索引下推(Index Condition Pushdown, ICP)是一种查询优化技术,它允许MySQL在存储引擎层执行部分WHERE子句中的过滤条件,而非全部在MySQL服务器层执行。这使得在扫描索引过程中就可以剔除不满足条件的记录,从而减…...
Springboot项目之mybatis-plus多容器分布式部署id重复问题之源码解析
mybatis-plus 3.3.2 部署多个pod id冲突问题 配置: # 设置随机 mybatis-plus.global-config.worker-id: ${random.int(1,31)} mybatis-plus.global-config.datacenter-id: ${random.int(1,31)}源码解析:MybatisSqlSessionFactoryBean 重点:…...

微信答题小程序云开发--实现云函数上传题目图片 base64功能
需求功能 题目带有图片,需要支持上传图片功能。微信答题小程序云开发,实现云函数上传题目图片、存储功能、查询显示等功能。 云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限。 所以普通用户想要使用…...

学会Sass的高级用法,减少样式冗余
在当今的前端开发领域,样式表语言的进步已经显著提升了代码组织性和可维护性。Sass(Syntactically Awesome Style Sheets)作为CSS预处理器的翘楚,以其强大的变量、嵌套规则、混合宏(mixin)、循环和函数等高…...

【Java初阶(五)】类和对象
❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 目录 1. 前言2.面向对象的认识3.类的认识4. 类的实例化4.1什么是实例化4.2类和对象的说明 5.this引用6.对象初始化6.1 构造方法 7.static关键字8.代码块8.1 …...
AWTK-MODBUS 服务器
AWTK-MODBUS 服务器 1. 介绍 AWTK-MODBUS 提供了一个简单的 MODBUS 服务器,可以通过配置文件来定义寄存器和位的数量和初始值。 启动方法: bin/modbus_server_ex config/default.json2. 配置文件 配置文件使用JSON格式。 url: 连接地址auto_inc_in…...
JavaScript快速入门笔记之一(基本概念)
JavaScript快速入门笔记之一(基本概念) 前端三大语言: HTML:专门编写网页内容的语言CSS:专门美化网页样式的语言JavaScript:专门编写网页交互的语言 名词解释: 交互:输入数据&#…...

前端学习之css基本网格布局
网格布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网格布局</title><style>.a{/* grid网格布局 */display: grid;width: 400px;height: 400px;border: 1px solid red;/* 设置当前…...

[网鼎杯2018]Unfinish 两种方法 -----不会编程的崽
网鼎杯太喜欢搞二次注入了吧。上次是无列名盲注,这次又是二次注入盲注。。。不知道方法还是挺难的。哎,网鼎嘛,能理解透彻就很强了。能自己做出来那可太nb了。 又是熟悉的登录框。不知道这是第几次看见网鼎杯的登录框了。后台扫描一下&#x…...

安防监控视频汇聚平台EasyCVR在银河麒麟V10系统中的启动异常及解决方法
安防监控视频平台EasyCVR具备较强的兼容性,它可以支持国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台兼容性强,支持Windows系…...

了解云原生
声明:内容来自AI,未经验证,仅供参考! 1、云原生学习路线 学习云原生(Cloud Native)技术涉及了解和掌握一系列的概念、技术和工具。云原生是一种构建和运行应用程序的方法,旨在充分利用云计算的灵活性、可伸缩性和弹性。以下是一…...
【go从入门到精通】for和for range的区别
作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…...

【C语言】【Leetcode】88. 合并两个有序数组
文章目录 一、题目二、思路再思考 一、题目 链接: link 二、思路 这题属于简单题,比较粗暴的做法就是直接比较两个数组,先把第二个数组加到第一个的后面,如何冒泡排序,这种方法简单粗暴但有效,可是不适用于这题&…...

DMA控制器
前言 大家好,我是jiantaoyab,这是我作为学习笔记的25篇,本篇文章给大家介绍DMA。 无论 I/O 速度如何提升,比起 CPU,总还是太慢。如果我们对于 I/O 的操作,都是由 CPU 发出对应的指令,然后等待…...

SQLiteC/C++接口详细介绍sqlite3_stmt类(十)
返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(九) 下一篇: SQLiteC/C接口详细介绍sqlite3_stmt类(十一) 38、sqlite3_column_value sqlite3_column_valu…...
Android 异步编程中协程的完整实战示例
一、全链路数据加载:网络请求 数据库缓存 在实际开发中,数据加载通常需要先检查本地缓存,若缓存失效则从网络获取,并将结果更新到本地。以下是完整的 MVVM 架构示例: 1. 项目结构 app/ ├── data/ …...

React 第四十九节 Router中useNavigation的具体使用详解及注意事项
前言 useNavigation 是 React Router 中一个强大的钩子,用于获取当前页面导航的状态信息。 它可以帮助开发者根据导航状态优化用户体验,如显示加载指示器、防止重复提交等。 一、useNavigation核心用途 检测导航状态:判断当前是否正在进行…...
【QT】在QT6中读取文件的方法
在QT6中读取文件的方法 QT6提供了多种读取文件的方式,下面我将介绍几种常用的方法,包括处理文本文件和二进制文件。 1. 使用QFile和QTextStream读取文本文件 这是读取文本文件最常用的方法: #include <QFile> #include <QTextSt…...

【Hot 100】121. 买卖股票的最佳时机
目录 引言买卖股票的最佳时机我的解题 🙋♂️ 作者:海码007📜 专栏:算法专栏💥 标题:【Hot 100】121. 买卖股票的最佳时机❣️ 寄语:书到用时方恨少,事非经过不知难! 引…...

Visual Studio笔记:MSVC工具集、MSBuild
1. MSVC工具集 1.1 什么叫MSVC工具集 也可以说Visual Studio平台工具集(Platform toolset). 这些工具包括 C/C 编译器、链接器、汇编程序和其他生成工具以及匹配的库和头文件。 Visual Studio 2015、Visual Studio 2017 和 Visual Studio 2019 是二进制…...

RFID测温芯片助力新能源产业安全与能效提升
在“双碳”目标驱动下,新能源产业正经历爆发式增长。无论是电动汽车、储能电站还是风光发电场,设备安全与能效提升始终是行业核心命题。而温度,这个看似普通的物理参数,却成为破解这一命题的关键密码。RFID测温芯片(集…...
Android高级开发第一篇 - JNI(初级入门篇)
文章目录 Android高级开发JNI开发第一篇(初级入门篇)🧠 一、什么是 JNI?✅ 为什么要用 JNI? ⚙️ 二、开发环境准备开发工具 🚀 三、创建一个支持 JNI 的 Android 项目第一步:创建新项目项目结构…...

智能手表单元测试报告(Unit Test Report)
📄 智能手表单元测试报告(Unit Test Report) 项目名称:Aurora Watch S1 模块版本:Firmware v1.0.4 测试阶段:模块开发完成后的单元测试 报告编号:AW-S1-UTR-2025-001 测试负责人:赵磊(软件架构师) 报告日期:2025-xx-xx 一、测试目的 通过对智能手表关键功能模块进…...

Attention Is All You Need论文阅读笔记
Attention is All You Need是如今机器学习研究者必读的论文,该文章提出的Transformer架构是如今很多机器学习项目的基础,说该文章极大推动了机器学习领域的研究也不为过。 但这么重要,也是必读的文章对初学者来说其实并不友好,很多…...

MySQL + CloudCanal + Iceberg + StarRocks 构建全栈数据服务
简述 在业务数据快速膨胀的今天,企业对 低成本存储 与 实时查询分析能力 的需求愈发迫切。 本文将带你实战构建一条 MySQL 到 Iceberg 的数据链路,借助 CloudCanal 快速完成数据迁移与同步,并使用 StarRocks 完成数据查询等操作,…...