APIC表示高级可编程中断控制器(Advanced Programmable Interrupt Controlle),APIC是SMP体系的核心,通过APIC可以将中断分发到不同的CPU来处理.即将中断绑定CPU或者把中断处理平摊到CPU上,这个过程叫做 SMP IRQ Affinity 1、使用前提 需要多CPU的系统,使用uname -a可以查询是否支持SMP 需要大于等于2.4的Linux 内核 ,使用unam...
SMP_AFFINITY文件:在/proc/irq/{IRQ}/目录下都有一个smp_affinity文件,这个文件中,所表示的CPU核心以十六进制来表示的。 1、查找硬件IRQ号 [root@wmstianjin16172 ~]# cat /proc/interrupts CPU0 CPU1 ... CPU10 CPU11 0: 151 0 ... 0 0 IR-IO-APIC-edge timer 4: 1 0 ... 0 0 IR-IO-APIC...
新的内核, Linux改进了分配特定中断到指定的处理器(或处理器组)的功能. 这被称为SMP IRQ affinity, 它可以控制系统如何响应各种硬件事件. 允许你限制或者重新分配服务器的工作负载, 从而让服务器更有效的工作. 以网卡中断为例,在没有设置SMP IRQ affinity时, 所有网卡中断都关联到CPU0, 这导致了CPU0负载过高,...
1. /proc/irq/IRQ#/smp_affinity /proc/irq/IRQ#/smp_affinity 和 /proc/irq/IRQ#/smp_affinity_list 指定了哪些CPU能够关联到一个给定的IRQ源. 这两个文件包含了这些指定cpu的cpu位掩码(smp_affinity)和cpu列表(smp_affinity_list). 不允许关闭所有CPU, 同时如果IRQ控制器不支持中断请求亲和(IRQ affinity)...
Linux改进了分配特定中断到指定的处理器(或处理器组)的功能. 这被称为SMP IRQ affinity, 它可以控制系统如何响应各种硬件事件. 允许你限制或者重新分配服务器的工作负载, 从而让服务器更有效的工作. 以网卡中断为例,在没有设置SMP IRQ affinity时, 所有网卡中断都关联到CPU0, 这导致了CPU0负载过高,而无法有效快...
比如我这里的0号中断都是由CPU 来处理的,一些其他的中断可以绑定CPU或者可以把中断处理平摊到CPU 上,这个过程叫做 SMP IRQ Affinity 14号中断是属于硬盘设备中断,可以看到中断处理全部由单个CPU完成,这是因为为了使CPU 缓存的命中率提高等因素,使得CPU和硬盘中断绑定(IRQBalance) ...
新的内核, Linux改进了分配特定中断到指定的处理器(或处理器组)的功能. 这被称为SMP IRQ affinity, 它可以控制系统如何响应各种硬件事件. 允许你限制或者重新分配服务器的工作负载, 从而让服务器更有效的工作. 以网卡中断为例,在没有设置SMP IRQ affinity时, 所有网卡中断都关联到CPU0, 这导致了CPU0负载过高,...
该功能主要针对单队列网卡多CPU环境,如网卡支持多队列则可使用SMP irq affinity直接绑定硬中断,要是不支持多队列,那就用RPS解决网络软中断的负载均衡,即单个网卡的软中断分散到多个CPU处理,避免单个CPU负载过大导致性能瓶颈。 如何确定你的网卡支持多队列~
2,调研了SMP irq affinity与 rps/rfs的具体作用后,发现它们是Linux内核不同时期的两个产物,目的都是为了优化cpu irq不均的问题以提高系统性能。rps/rfs技术是早期软件层面的一个实现,现在的SMP irq affinity技术完全能满足需求,尤其在CPU计算密集的场景中使用rps/rfs可能还会降低性能,因为中间多了一次性能消耗。 3...
如果开启了irqbalance则需要先将其停止,可将一个设备绑定到多个CPU上 echo 000002 > /proc/irq/65/smp_affinity # eth0-tx-0 --将eth0绑定到CPU1 echo 000006 > /proc/irq/65/smp_affinity # eth0-tx-0 --将eth0绑定到CPU1/CPU2 查看IRQ性能 可通过/proc/interrupts查看每个CPU的中断...