当前位置: 首页 > news >正文

浅谈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 重点&#xff1a…...

微信答题小程序云开发--实现云函数上传题目图片 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 两种方法 -----不会编程的崽

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

安防监控视频汇聚平台EasyCVR在银河麒麟V10系统中的启动异常及解决方法

安防监控视频平台EasyCVR具备较强的兼容性&#xff0c;它可以支持国标GB28181、RTSP/Onvif、RTMP&#xff0c;以及厂家的私有协议与SDK&#xff0c;如&#xff1a;海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台兼容性强&#xff0c;支持Windows系…...

了解云原生

声明&#xff1a;内容来自AI&#xff0c;未经验证&#xff0c;仅供参考! 1、云原生学习路线 学习云原生(Cloud Native)技术涉及了解和掌握一系列的概念、技术和工具。云原生是一种构建和运行应用程序的方法&#xff0c;旨在充分利用云计算的灵活性、可伸缩性和弹性。以下是一…...

【go从入门到精通】for和for range的区别

作者简介&#xff1a; 高科&#xff0c;先后在 IBM PlatformComputing从事网格计算&#xff0c;淘米网&#xff0c;网易从事游戏服务器开发&#xff0c;拥有丰富的C&#xff0c;go等语言开发经验&#xff0c;mysql&#xff0c;mongo&#xff0c;redis等数据库&#xff0c;设计模…...

【C语言】【Leetcode】88. 合并两个有序数组

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

DMA控制器

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

SQLiteC/C++接口详细介绍sqlite3_stmt类(十)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;九&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;十一&#xff09; 38、sqlite3_column_value sqlite3_column_valu…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...