/proc/interrupts 和 /proc/softirqs 两者是相互关联的,但它们各自记录的信息和作用有所不同,反映了硬中断和软中断的两个处理阶段。

两者的关系:

  1. 硬中断引发软中断:

硬中断通常由外部设备(如网络卡、键盘等)触发,当 CPU 响应硬中断时,会暂时停止当前正在执行的任务,去处理该硬件中断。

在硬中断的处理中,通常会执行最少量的必要工作,例如标记事件已发生,然后安排更多的处理工作通过软中断来执行。这种设计的目的是为了减少硬中断处理的时间,避免阻塞其他重要的实时任务。

硬中断(记录在 /proc/interrupts 中)引发软中断(记录在 /proc/softirqs 中),软中断用于延迟处理更复杂的任务,如网络数据包的完整处理。

  1. 分工明确:

硬中断处理阶段(记录在 /proc/interrupts)通常只处理那些必须立即执行的任务,如告知 CPU 某个硬件事件已发生。

软中断处理阶段(记录在 /proc/softirqs)用于完成大部分的实际工作,比如数据传输和处理。软中断也可以通过内核调度器在不同的 CPU 核心上处理,这可以提高并行性和系统性能。

/proc/interrupts 的作用:

虽然 /proc/softirqs 记录了实际处理软中断的情况,但 /proc/interrupts 提供了关于硬件事件来源的详细信息。如果硬中断没有触发,软中断也就不会发生。因此,/proc/interrupts 可以帮助你了解:

  1. 硬件中断源:哪个设备产生了中断。

  2. 中断分布:中断在不同的 CPU 核上是如何分布的,有助于检查中断是否过于集中在某个核心上导致性能瓶颈。

  3. 中断频率:可以监控硬中断的发生频率,帮助识别是否存在硬件问题,如某个设备不断产生大量的中断。

诊断作用:如果发现软中断处理性能差,可以查看 /proc/interrupts 来确认是否有某些硬中断高频触发,造成 CPU 负载增加。也可以通过 /proc/interrupts 检查是否存在硬件中断异常,比如某个硬件没有按预期产生中断。

何时使用 /proc/interrupts:

硬件问题诊断:如果怀疑某个硬件设备引起了系统性能问题,/proc/interrupts 可以帮助你确定哪些设备频繁触发硬中断。

CPU 中断负载平衡:通过观察硬中断在多个 CPU 核心上的分布情况,可以判断是否需要进行中断负载的重新分配。

系统性能分析:如果需要了解系统性能下降的根本原因,/proc/interrupts 能展示硬件中断对 CPU 资源的消耗,帮助分析瓶颈。

hardirq中断绑核

echo xxx >/proc/irq/xxx/smp_affinity

softirq中断绑核

taskset -p cpu_mask pid.

softirq和hardirq中断亲和度的更多相关文章

  1. CPU亲和度

    CPU亲和度(CPU Affinity),就是将一个进程或者线程强制绑定在CPU的某一个core上运行. 参考:https://www.cnblogs.com/zhangxuan/p/6427533. ...

  2. Linux kernel的中断子系统之(八):softirq

    返回目录:<ARM-Linux中断系统>. 总结:中断分为上半部和下半部,上半部关中断:下半部开中断,处理可以延迟的事情.下半部有workqueue/softirq/tasklet三种方式 ...

  3. Linux中断 - softirq

    一.前言 对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),是全程关闭中断的,另外一部分是deferable task(bottom half),属于不那 ...

  4. Linux 内核中断内幕

    转自:http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/index.html#resources Linux 内核中断内幕 ...

  5. Linux驱动设计—— 中断与时钟

    中断和时钟技术可以提升驱动程序的效率 中断 中断在Linux中的实现 通常情况下,一个驱动程序只需要申请中断,并添加中断处理函数就可以了,中断的到达和中断函数的调用都是内核实现框架完成的.所以程序员只 ...

  6. Linux 内核中断内幕【转】

    转自:http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/ 本文对中断系统进行了全面的分析与探讨,主要包括中断控制器.中断分类 ...

  7. linux调度全景指南

  8. python之系统性能信息模块psutil

    系统性能信息模块psutil 跨平台库 轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息. 主要用于系统监控,分析和限制系统资源及进程的管理 实现同等命令行工具提供的功能( ...

  9. 转:Linux网络IO并行化技术概览

    转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...

  10. [转]python3之模块psutil系统性能信息

    转自:https://www.cnblogs.com/zhangxinqi/p/9106265.html 阅读目录 1.psutil模块安装 2.获取CPU信息 3.内存信息 4.磁盘信息 5.网络信 ...

随机推荐

  1. 加压测试TPS上不去的性能分析

    加压测试TPS上不去的性能分析 阶梯式加压测试接口异常可能存在的原因: 压力机本身性能测试的瓶颈 分析:单机负载能力有限,如果需要模拟的用户请求数超过其负载极限,也会间接影响TPS ,可以通过进行分布 ...

  2. linux学习(7):Linux最常用150个命令汇总

    Linux最常用150个命令汇总 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作 ...

  3. Vue Hook 封装通用型表格

    一.创建通用型表格的需求 实现一个通用型表格组件,具备以下功能: 动态列配置. 分页功能. 排序功能. 可扩展的行操作功能. 二.设计通用型表格组件 首先,需要设计一个基础的表格组件,它接受列配置.数 ...

  4. Gartner web3 的未来市场前景

    内行人叫web3 外行人叫元宇宙 元宇宙(Metaverse) Gartner将元宇宙定义为一个由通过虚拟技术增强的物理和数字现实融合而成的集体虚拟共享空间.这个空间具有持久性,能够提供增强沉浸式体验 ...

  5. 【转载】 tf.slice()介绍

    原文地址: https://blog.csdn.net/nini_coded/article/details/79852031 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议, ...

  6. 【转载】 arch linux下nvidia 驱动死机问题

    原文地址: https://my.oschina.net/u/947271/blog/288063 ================================================== ...

  7. 为baselines算法库安装mujoco环境支持——ubuntu 20.04安装MuJoCo2.1.1

    下载开源版本的mujoco二进制文件: wget https://github.com/deepmind/mujoco/releases/download/2.1.1/mujoco-2.1.1-lin ...

  8. conda 安装pytorch

    配置:win 10 ,python=3.6 安装pytorch-1.1.0,cudatoolkit-9.0,torchvision-0.3.0. 出现的问题:import torch 的时候,出现了O ...

  9. 【单调栈+倍增】[P7167 [eJOI2020 Day1] Fountain

    [单调栈+倍增][P7167 [eJOI2020 Day1] Fountain 思路 用单调栈处理每个圆盘溢出后流到的第一个位置,然后倍增优化. 代码 #include <bits/stdc++ ...

  10. sc2 天梯地图

    没记错的话以前 7 张 ban 3 张,非常合理,现在 9 张怎么还是 ban 3 张 好哥哥达蒙星际2教学 Goldenaura ban 三四矿近,挂运输机的地方长,架坦克的点位多,ZvT 打不了一 ...