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...
/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),则这些设置的值将保持不变(既关联...
/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),则这些设置的值将保持不变(既关联...
比如,一般 eth0 的 IRQ 编号是 16,所以控制 eth0 中断绑定的 /proc 文件名是 /proc/irq/16/smp_affinity。上面这个命令还可以看到某些中断对应的CPU处理的次数,缺省的时候肯定是不平衡的。 设置其值的方法很简单,smp_affinity 自身是一个位掩码(bitmask),特定的位对应特定的 CPU,这样,01 就意味着只有第一个...
SMP IRQ affinity Linux 2.4内核之后引入了将特定中断绑定到指定的CPU的技术,称为SMP IRQ affinity. 原理 当一个硬件(如磁盘控制器或者以太网卡), 需要打断CPU的工作时, 它就触发一个中断. 该中断通知CPU发生了某些事情并且CPU应该放下当前的工作去处理这个事情. 为了防止多个设置发送相同的中断, Linux设计了一套...
Redis Cluster服务平台化之路
修改其smp_affinity 如果开启了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...
2,调研了SMP irq affinity与 rps/rfs的具体作用后,发现它们是Linux内核不同时期的两个产物,目的都是为了优化cpu irq不均的问题以提高系统性能。rps/rfs技术是早期软件层面的一个实现,现在的SMP irq affinity技术完全能满足需求,尤其在CPU计算密集的场景中使用rps/rfs可能还会降低性能,因为中间多了一次性能消耗。 3...
http://www.vpsee.com/2010/07/load-balancing-with-irq-smp-affinity/ 原文 硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。现在的服务器上动不动就是多 CPU 多核、多网卡、多硬盘,如果能让网卡中断独占1个 ...