暑假读书笔记第四天

今日文章:

小林coding:什么是软中断?

目录

    • 软中断
      • 软中断概述
      • 软中断类型
      • 如何定位软中断 CPU 使用率过高的问题?

其他:

往期打卡


软中断

中断是系统用来响应硬件设备请求的一种机制,操作系统收到硬件的中断请求,会打断正在执行的进程,然后调用内核中的中断处理程序来响应请求

中断请求的响应程序,也就是中断处理程序,要尽可能快的执行完,这样可以减少对正常进程运行调度地影响。

软中断概述

Linux 系统为了解决中断处理程序执行过长和中断丢失的问题,将中断过程分成了两个阶段,分别是「上半部和下半部分」。

  • 上半部用来快速处理中断,一般会暂时关闭中断请求,主要负责处理跟硬件紧密相关或者时间敏感的事情。
  • 下半部用来延迟处理上半部未完成的工作,一般以「内核线程」的方式运行。

网卡收到网络包后,通过 DMA 方式将接收到的数据写入内存,接着会通过硬件中断通知内核有新的数据到了,于是内核就会调用对应的中断处理程序来处理该事件,这个事件的处理也是会分成上半部和下半部。

上部分要做的事情很少,会先禁止网卡中断,避免频繁硬中断,而降低内核的工作效率。接着,内核会触发一个软中断,把一些处理比较耗时且复杂的事情,交给「软中断处理程序」去做,也就是中断的下半部,其主要是需要从内存中找到网络数据,再按照网络协议栈,对网络数据进行逐层解析和处理,最后把数据送给应用程序。

所以,中断处理程序的上部分和下半部可以理解为:

  • 上半部直接处理硬件请求,也就是硬中断,主要是负责耗时短的工作,特点是快速执行;
  • 下半部是由内核触发,也就说软中断,主要是负责上半部未完成的工作,通常都是耗时比较长的事情,特点是延迟执行;

硬中断(上半部)是会打断 CPU 正在执行的任务,然后立即执行中断处理程序,而软中断(下半部)是以内核线程的方式执行,并且每一个 CPU 都对应一个软中断内核线程,名字通常为「ksoftirqd/CPU 编号」,比如 0 号 CPU 对应的软中断内核线程的名字是 ksoftirqd/0

不过,软中断不只是包括硬件设备中断处理程序的下半部,一些内核自定义事件也属于软中断,比如内核调度等、RCU 锁(内核里常用的一种锁)等。

软中断类型

/proc/interrupts 的 内容来知晓「硬中断」的运行情况

/proc/softirqs 的 内容来知晓「软中断」的运行情况

每一个 CPU 都有自己对应的不同类型软中断的累计运行次数,如图,该操作系统包含了10种软中断类型

在这里插入图片描述

比如 NET_RX 表示网络接收中断,NET_TX 表示网络发送中断、TIMER 表示定时中断、RCU 表示 RCU 锁中断、SCHED 表示内核调度中断。

值得注意的还有同一种类型的软中断在不同 CPU 的分布情况,正常情况下,同一种中断在不同 CPU 上的累计次数相差不多

这些数值是系统运行以来的累计中断次数,数值的大小没什么参考意义,但是系统的中断次数的变化速率才是我们要关注的,我们可以使用 watch -d cat /proc/softirqs 命令查看中断次数的变化速率。

软中断是以内核线程的方式执行的,我们可以用 ps 命令可以查看到对应的线程

在这里插入图片描述

图中可以看到有 4 个 ksoftirqd 内核线程,因为这台服务器是4核心的,每个CPU核心都对应着一个内核线程

内核线程的名字外面都有有中括号,这说明 ps 无法获取它们的命令行参数。一般来说,名字在中括号里的都可以认为是内核线程。

如何定位软中断 CPU 使用率过高的问题?

使用 top 命令查看系统的软中断的系统监控数据

在这里插入图片描述

上图中的黄色部分 si,就是 CPU 在软中断上的使用率,而且可以发现,每个 CPU 使用率都不高,两个 CPU 的使用率虽然只有 3% 和 4% 左右,但是都是用在软中断上了。

另外,也在图片下方的表格中可以看到 CPU 使用率最高的进程也是软中断 ksoftirqd,因此可以认为此时系统的开销主要来源于软中断。

如果要知道是哪种软中断类型导致的,我们可以使用 watch -d cat /proc/softirqs 命令查看每个软中断类型的中断次数的变化速率。

一般对于网络 I/O 比较高的 Web 服务器,NET_RX 网络接收中断的变化速率相比其他中断类型快很多。如果发现 NET_RX 网络接收中断次数的变化速率过快,接下来就可以使用 sar -n DEV 查看网卡的网络包接收速率情况,然后分析是哪个网卡有大量的网络包进来。

在这里插入图片描述

接着,在通过 tcpdump 抓包,分析这些包的来源,如果是非法的地址,可以考虑加防火墙,如果是正常流量,则要考虑硬件升级等。

往期打卡

暑假读书笔记第三天

暑假读书笔记第二天

暑假读书笔记第一天

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

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

相关文章

跨平台的ARM 和 x86 Docker 镜像:汇编语言实验环境搭建

一、安装和配置 Docker 1.安装 Docker 官网链接:https://www.docker.com/ 以Debian(Ubuntu)系统为例: #安装依赖包 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release#添加 Docker 官方 GPG 密钥 sudo mkdir -p /etc/apt/keyr…

【前端知识】HTML页面渲染:底层原理与技术实现剖析

HTML页面渲染:底层原理与技术实现剖析HTML页面渲染:底层原理与技术实现剖析渲染引擎的核心工作流程深度解析渲染关键阶段1. 解析与构建DOM(Document Object Model)2. 构建CSSOM(CSS Object Model)3. 渲染树…

Catmull-Rom平滑多段线在奇异点处的扭曲问题(1)

Catmull-Rom在奇异点处的扭曲问题 引言 在计算机图形学和动画中,我们经常需要在已知点之间创建平滑的过渡。Catmull-Rom样条是一种流行的插值方法,它以简单直观的方式生成经过所有控制点的平滑曲线。本文将深入探讨Catmull-Rom插值的原理、实现和应用。…

SX8652IWLTRT Semtech升特超低功耗触控芯片 12通道+I²C接口 重新定义人机交互!

SX8652IWLTRT(Semtech)产品解析与推广文案一、产品定位SX8652IWLTRT是Semtech(升特半导体)推出的低功耗电容式触摸控制器,采用IC接口,专为便携式设备和小家电的触摸交互设计,支持多点触控和手势…

第02章 MySQL环境搭建

1.MySQL的卸载 步骤1:停止MySQL服务 在卸载之前,先停止MySQL8.0的服务。按键盘上的“Ctrl Alt Delete”组合键,打开“任务管理器”对话框,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态&#…

实战Linux进程状态观察:R、S、D、T、Z状态详解与实验模拟

前言 在Linux系统中,进程状态是系统管理和性能调优的核心知识。一个进程从诞生到终止,会经历运行(R)、可中断睡眠(S)、不可中断睡眠(D)、停止(T)、僵尸&#…

数据库与关系数据库的区别是什么

数据库,简单来说,就是一个存储数据的地方,就像一个超级大仓库,能把各种各样的数据都收纳进来。它可以是一个简单的文本文件,用来记录一些基本信息;也可以是一个复杂的系统,存储着企业的大量业务…

如何解决微信小程序出现两个下拉刷新样式?

在微信小程序中,如果出现两个下拉刷新的情况,可能是因为在多个地方启用了下拉刷新功能,或者在同一个页面中多次调用了下拉刷新的API。以下是一些可能的原因和解决方法: 多次调用下拉刷新API: 确保在页面的生命周期中只…

(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别

手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别前言ref 扩展ref 和 reactive 区别前言 ref 扩展 在之前博文《(2)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】》中有提到: 当时已基本类型 进行演练说明,此时以 对象…

机器视觉运动控制一体机在SCARA机器人柔振盘上下料的应用

市场应用背景 SCARA机器人是一种高效、高精度的圆柱坐标系工业机器人,专精于装配任务。其独特的机械结构赋予其在特定方向(通常是XY平面)高度顺应性,同时在垂直方向保持优异刚性。 SCARA机器人本体通常包含三个轴线平行的旋转关…

3D 演示动画在汽车培训与教育领域中的应用

在企业培训这一至关重要的领域中,3D 演示动画犹如一颗璀璨的明星,发挥着无可替代的关键作用,大显身手。以某知名汽车制造企业为例,当对新入职员工开展汽车装配培训工作时,企业精心利用先进的 3D 演示动画技术制作了极为…

华锐视点 VR 污水处理技术对激发学习兴趣的作用​

华锐视点的 VR 虚拟仿真平台,尤其是 VR 污水处理模块,不仅仅是让学生观察,还设置了丰富多样的互动操作环节,充分激发学生的学习兴趣和主动性。​在平台的 VR 污水处理模拟中,学生可以模拟操作各种污水处理设备。比如&a…

百度斩获大模型中标第一,股价上涨5%

7月7日(周一),百度(BIDU.US)股价上涨 5%,收报 90.68美元。最新数据显示,2025上半年我国大模型相关项目呈现爆发式增长态势:中标项目累计达 1810个,金额突破 64亿元&#…

【计算机网络】4网络层②

概念是什么?以太网有线联网的标准LAN小范围网络(家里/公司)WAN大范围网络(跨城市)Internet全球公共互联网 🌍internet任意互联的网络 🔗子网将一个LAN通过路由器的硬件隔离分为多个LAN(广播域)VLAN将一个LAN通过交换机的软件方法分为多个VLAN(广播域)以太网和Wi-Fi建L…

微信小程序81~90

1. 配置分包加载以及打包、引用原则 小程序如果需要进行分包加载,需要在 app.json 中,通过 subPackages 或者 subpackages 定义分包结构 每个分包结构含三个常用字段: root:分包的根目录,该目录下的所有文件都会被打包…

深度学习——神经网络1

一、神经网络 1.神经网络定义:人工神经网络(Artificial Neural Network,ANN)也简称为神经网络(NN),是一种模仿生物神经网络结构和功能的计算模型。人脑可以看作是一个生物神经网络,由…

ipmitool 使用简介(ipmitool sel list ipmitool sensor list)

常用IPMI命令扩展使用ipmitool查看传感器信息ipmitool是一个用于管理IPMI(Intelligent Platform Management Interface)设备的命令行工具,可用于监控服务器硬件状态,包括传感器数据。运行以下命令可以列出所有传感器信息&#xff…

小米YU7预售现象深度解析:智能电动汽车的下一个范式革命

小米YU7预售现象深度解析:智能电动汽车的下一个范式革命一、预售数据创造三项行业新纪录 2025年6月26日的小米YU7发布会,不仅刷新了智能汽车预售速度,更揭示了新时代的消费心理变迁: (1)订单爆发速度史无前…

xlog-Android15适配之16KB对齐

背景 前两天查看Google play控制台突然发现有告警,一看原来是要求必须尽快适配Android15。 过程 先看了一下网上的资料,Android15适配 发现对我的apk基本上没有什么影响,除了 动态库必须16KB对齐这一项。 最简单查看apk是否16KB对齐的方法…

Crazyflie支持MATLAB/Simulink控制 基于NOKOV度量动捕系统实现

Crazyflie支持MATLABSimulink控制 基于NOKOV度量动捕系统实现 一、动捕软件VRPN配置 以动捕软件版本XINGYING 4.2.0.5495为例,其他版本同理。打开动捕软件,连接上镜头。单击菜单栏下的视图->数据广播。在数据广播中的VRPN流下,将单位下拉…