首页 > 其他分享 >softirq和hardirq中断亲和度

softirq和hardirq中断亲和度

时间:2024-09-27 15:01:52浏览次数:7  
标签:softirq 中断 interrupts 亲和度 hardirq 硬件 处理 proc CPU

/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,中断,interrupts,亲和度,hardirq,硬件,处理,proc,CPU
From: https://www.cnblogs.com/linhaostudy/p/18435755

相关文章

  • 2023.7.16 linux 软中断Softirqs 队列 Workqueues 并发管理队列cmwq
    Implementingwork-deferringmechanisms 延期任务Softirqs:Executedinanatomiccontext # kernel/softirq.c ;<linux/interrupt.h>.Tasklets:Executedinanatomiccontext Workqueues:Executedinaprocesscontext structsoftirq......
  • 【Linux中断】中断下半部-软中断softirq的原理与使用
    软中断软中断是中断下半部的典型处理机制,是随着SMP的出现应运而生的,也是tasklet实现的基础,软中断的出现是为了满足中断上半部和下半部的区别,使得对时间不敏感的任务延后执行,而且可以在多个CPU上并行执行,使得总的系统效率可以更高。软中断有以下特性:产生后并不是马上可以执行,必......
  • 第八周 资源限制及亲和度相关
    第八周资源限制及亲和度相关1.KubernetesContainer、Pod、Namespace内存及CPU限制1)如果运行的容器没有定义资源(memory、CPU等限制,但是在namespace定义了LimitRange限制,那么该容器会继承LimitRange中的默认限制。2)如果namespace没有定义LimitRange限制,那么该容器可以占用宿主......
  • Linux内核机制—softirq
     基于Linux-5.10.110一、软中断简介1.软中断是一种中断底半部机制,允许在中断上下文中,因此软中断函数中不能休眠。2.软中断是函数是在开中硬断的环境下调用,但是调用前......