浅析Linux内核线程监测机制:Hung Task

文章目录

    • 概述
    • Hung Task配置
    • Hung Task机制初始化
      • Hung Task监测线程
    • 相关参考

概述

Hung Task机制周期性地监测系统中处于TASK_UNINTERRUPTIBLE状态(即D状态)的进程,如果超过120s(时间可配),进程状态还没有进行切换,khungtaskd就会打印提示信息。

Hung Task配置

Hung Task机制支持通过proc文件系统进行配置,包括监测周期、超时时间以及是否触发panic等,相关配置文件位于/proc/sys/kernel/目录下,包括

  • hung_task_all_cpu_backtrace:设置1,则内核给所有CPU发送NMI中断,打印堆栈;
  • hung_task_check_count:配置支持检测线程的数量;
  • hung_task_check_interval_secs:配置检测周期;
  • hung_task_panic:配置为1,则检测到Hung任务时,触发Panic;
  • hung_task_timeout_secs:配置任务Hung超时事件,默认时120时;
  • hung_task_warnings:配置告警次数。

Hung Task机制初始化

Hung Task机制通过subsys_intcall配置初始化,入口为hung_task_init,hung_task_init只做了两个事情:

  • 注册panic_notifier_list通知链事件,监听panic事件通知;
  • 启动khungtaskd内核线程,由khungtaskd完成实际的监测任务。
    在这里插入图片描述

Hung Task监测线程

Hung Task机制会创建一个名为khungtaskd的内核线程,周期性扫描系统中所有的线程,当发现有线程处于TASK_UNINTERRUPTIBLE状态超过一定的时间(通常为120s),则打印告警。
在这里插入图片描述

相关参考

  • 《奔跑吧,Linux内核》
  • Hungtask原理及分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/257507.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ambiguous Medical Image Segmentation using Diffusion Models利用扩散模型分割模糊医学图像

摘要: 事实证明,在临床任务中,来自一组专家的集体见解总是优于个人的最佳诊断。对于医学图像分割任务,现有的基于人工智能的替代研究更多地侧重于开发能够模仿最佳个体的模型,而不是利用专家组的力量。 在本文中&…

实战案例:将已有的 MySQL8.0 单机架构变成主从复制架构

操作步骤 修改 master 主节点 的配置( server-id log-bin )master 主节点 完全备份( mysqldump )master 主节点 创建复制用户并授权master 主节点 将完全备份文件拷贝至从节点修改 slave 从节点 的配置( server-id rea…

gorm day9(结)

gorm day9 实体关联gorm会话 实体关联 自动创建、更新 在创建、更新数据时,GORM会通过Upsert自动保存关联及其引用记录。 user : User{Name: "jinzhu",BillingAddress: Address{Address1: "Billing Address - Address 1"},Ship…

[数学建模] 计算差分方程的收敛点

[数学建模] 计算差分方程的收敛点 差分方程:差分方程描述的是在离散时间下系统状态之间的关系。与微分方程不同,差分方程处理的是在不同时间点上系统状态的变化。通常用来模拟动态系统,如在离散时间点上更新状态并预测未来状态。 收敛点&…

git stash 正确用法

目录 一、背景 二、使用 2.1 使用之前,先简单了解下 git stash 干了什么: 2.2 git stash 相关命令 2.3 使用流程 1. 执行 git stash 2. 查看刚才保存的工作进度 git stash list 3. 这时候在看分支已经是干净无修改的(改动都有暂存到 stash) 4. 现在…

NLP快速入门

NLP入门 课程链接:https://www.bilibili.com/video/BV17K4y1W7yb/?p1&vd_source3f265bbf5a1f54aab2155d9cc1250219 参考文档链接1:NLP知识点:Tokenizer分词器 - 掘金 (juejin.cn) 一、分词 分词是什么? 每个字母都有对应…

数据分析案例-基于亚马逊智能产品评论的探索性数据分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

URL编码算法:解决特殊字符在URL中的烦恼

引言: URL编码算法是一种将URL中的特殊字符转换为特定格式的编码方式。它在网络传输中起到了保护数据安全与完整性的重要作用。本文将深入探讨URL编码算法的优点与缺点,并介绍它在Web开发、网络安全等方面的应用。 URL编码解码 | 一个覆盖广泛主题工具…

JavaWeb学习|i18n

学习材料声明 所有知识点都来自互联网,进行总结和梳理,侵权必删。 引用来源:尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版 i18n 国际化(Internationalization)指的是同一个网站可以支持多种不同的语言&…

Ubuntu 22 部署Zabbix 6.4

一、安装及配置postgresql sudo apt-get update sudo apt-get install postgresql postgresql-client 修改配置文件,配置远程访问:(PostgreSQL安装路径下的data,也是安装时data的默认路径)data目录下的 pg_hba.conf …

BN介绍:卷积神经网络中的BatchNorm

一、BN介绍 1.原理 在机器学习中让输入的数据之间相关性越少越好,最好输入的每个样本都是均值为0方差为1。在输入神经网络之前可以对数据进行处理让数据消除共线性,但是这样的话输入层的激活层看到的是一个分布良好的数据,但是较深的激活层…

.NET命令行(CLI)常用命令

本文用于记录了.NET软件开发全生命周期各阶段常用的一些CLI命令,用于开发速查。 .NET命令行(CLI)常用命令 项目创建(1)查看本机SDK(2)查看本机可以使用的.NET版本(3)生成…

C语言--------数据在内存中的存储

1.整数在内存中的存储 整数在内存是以补码的形式存在的; 整型家族包括char,int ,long long,short类型; 因为char类型是以ASCII值形式存在,所以也是整形家族; 这四种都包括signed,unsigned两种,即有符号和无符号&am…

Python Matplotlib 的学习笔记

Python Matplotlib 的学习笔记 0. Python Matplotlib 简介1. 为什么要用 Matplotlib?2. Matplotlib 基础类详解2-1. Line(线)2-2. Marker(标记)2-3. Text(文本)2-4. Legend(图例&…

Python面向对象学习小记

python中的类可以分为经典类和新式类。 类的定义方法: class 类名: pass 类名后面没有小括号!!! 【注意和函数的定义做区分。】 函数的定义: def 函数名(): pass

【Linux】并发解决(上)-中断屏蔽,原子操作

🔥博客主页:PannLZ 🎋系列专栏:《Linux系统之路》 😘欢迎关注:👍点赞🙌收藏✍️留言 文章目录 并发解决1.中断屏蔽2.原子操作2.1整形原子操作2.2位原子操作原子变量使用例子 并发解决…

(力扣)1314.矩阵区域和

给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&#xff1a; 输入&a…

【运维测试】移动测试自动化知识总结第1篇:移动端测试介绍(md文档已分享)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论移动测试相关知识。主要知识点包括&#xff1a;移动测试分类及android环境搭建&#xff0c;adb常用命令&#xff0c;appium环境搭建及使用&#xff0c;pytest框架学习&#xff0c;PO模式&#xff0c;数据驱动&#xff0…

随机过程及应用学习笔记(三)几种重要的随机过程

介绍独立过程和独立增量过程。重点介绍两种独立增量过程-—维纳过程和泊松过程。 目录 前言 一、独立过程和独立增量过程 1、独立过程&#xff08;Independent Process&#xff09; 2、独立增量过程&#xff08;Independent Increment Process&#xff09; 二、正态过程&am…

C语言求解猴子分桃子

问题&#xff1a;海滩上有一堆桃子&#xff0c;五只猴子来分。第一只猴子把这堆桃子平均分为五份&#xff0c;多了一个&#xff0c;这只 猴子把多的一个扔入海中&#xff0c;拿走了一份。第二只猴子把剩下的桃子又平均分成五份&#xff0c;又多了 一个&#xff0c;它同样把多的…