转载: http://www.cnblogs.com/Bozh/archive/2013/03/21/2973769.html

Linux 2.4内核之后引入了将特定中断绑定到指定的CPU的技术,称为SMP IRQ affinity.

当一个硬件(如磁盘控制器或者以太网卡), 需要打断CPU的工作时, 它就触发一个中断. 该中断通知CPU发生了某些事情并且CPU应该放下当前的工作去处理这个事情. 为了防止多个设置发送相同的中断, Linux设计了一套中断请求系统, 使得计算机系统中的每个设备被分配了各自的中断号, 以确保它的中断请求的唯一性. 从2.4 内核开始, Linux改进了分配特定中断到指定的处理器(或处理器组)的功能. 这被称为SMP IRQ affinity, 它可以控制系统如何响应各种硬件事件. 允许你限制或者重新分配服务器的工作负载, 从而让服务器更有效的工作. 以网卡中断为例,在没有设置SMP IRQ affinity时, 所有网卡中断都关联到CPU0, 这导致了CPU0负载过高,而无法有效快速的处理网络数据包,导致了瓶颈。 通过SMP IRQ affinity, 把网卡多个中断分配到多个CPU上,可以分散CPU压力,提高数据处理速度。

相关设置文件

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),则这些设置的值将保持不变(既关联到所有CPU). 设置方法如下

echo $bitmask > /proc/irq/IRQ#/smp_affinity

示例(把44号中断绑定到前4个CPU(CPU0-3)上面)
echo f > /proc/irq/44/smp_affinity

2. /proc/irq/IRQ#/smp_affinity_list 设置该文件取得的效果与/proc/irq/IRQ#/smp_affinity是一致的,它们两者是联动关系(既设置其中之一,另一个文件也随着改变), 有些系统可能没有该文件, 设置方法如下

echo $cpuindex1-$cpuindex2 >/proc/irq/IRQ#/smp_affinity_list

示例(把44号中断绑定到前4个CPU(CPU0-3)上面)
echo 0-3 > /proc/irq/44/smp_affinity_list

3. /proc/irq/default_smp_affinity /proc/irq/default_smp_affinity 指定了默认情况下未激活的IRQ的中断亲和掩码(affinity mask).一旦IRQ被激活,它将被设置为默认的设置(即default_smp_affinity中记录的设置). 该文件能被修改. 默认设置是0xffffffff.

SMP IRQ affinity相关推荐

  1. Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity)

    转载 - Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity) 作者 digoal 日期 2016-11-20 标签 Linux , IRQ , 中断 , CPU亲和 , 绑定中断 ...

  2. 一次因网络引起的诡异GC问题,DBA该怎么做?

    来自:DBAplus社群 作者介绍 袁伟翔,新炬网络高级专家,长期服务于运营商,精通Oracle数据库故障诊断.内核技术,具有10多年数据库开发运维经验. 我们在日常工作中,就像西天取经的僧人,总是会 ...

  3. Linux 操作系统原理 — 多处理器架构

    目录 文章目录 目录 计算平台体系结构 单核 CPU 和超线程 多核架构的出现 SMP 对称多处理结构 NUMA 非统一内存访问结构 MPP 大规模并行处理结构 Linux 上的 NUMA 基本对象概 ...

  4. Linux技巧:多核下绑定硬件/进程到不同CPU

    http://www.51testing.com/html/07/n-222407.html 硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同 ...

  5. linux 网络RPS/RFS/XPS

    1. 介绍 在网络非常 heavy 的情况下,对于文件服务器.高流量 Web 服务器这样的应用来说,把不同的网卡 IRQ 均衡绑定到不同的 CPU 上将会减轻某个 CPU 的负担,提高多个 CPU 整 ...

  6. Linux内核深入理解中断和异常(5):外部中断

    Linux内核深入理解中断和异常(5):外部中断 rtoax 2021年3月 1. 外部中断简介 外部中断包括:键盘,鼠标,打印机等. 外部中断包括: I/O interrupts; IO中断 Tim ...

  7. 网卡多队列:RPS、RFS、RSS、Flow Director(DPDK支持)

    Table of Contents 多队列简介 RPS介绍(Receive Packet Steering) RFS介绍(Receive flow steering) RSS介绍(receive si ...

  8. 云服务器ECS网卡多队列优化

    背景 在服务器网卡收包发包数量非常大时,在系统繁忙时,如果过多网卡中断集中在单一cpu上导致cpu来不及响应造成网络性能下降,网络性能的瓶颈一般不在网卡而在cpu,现在的网卡很多支持万兆和多队列. 为 ...

  9. Linux内核中断系统处理机制-详细分析

    原文地址::https://blog.csdn.net/weixin_42092278/article/details/81989449 相关文章 1.Linux中断管理 (1)Linux中断管理机制 ...

最新文章

  1. IE8-开发人员工具使用(一)
  2. 【转】基于jquery,bootstrap数据验证插件bootstrapValidator 教程
  3. php我赢职场季枫_我赢职场 - 主页
  4. VC打包程序,并修改注册表(详细以后补充)
  5. pytorch FC_regression
  6. 学习clojure(2)
  7. 自旋锁--Test and Set Clock机制分析
  8. 求两个整数最大公约数
  9. 游戏付费中的金融学和心理学小知识
  10. Python爬虫与数据可视化案例(共享源码)
  11. Sublime 使用笔记(九):汉字乱码问题的解决方法
  12. 第一章 老虎Linux简介
  13. 2022年5月月度总结
  14. 数据挖掘学习之认识数据
  15. vmware虚拟机上网设置教程(vmware虚拟机设置网络)
  16. tomcat如何增大并发_tomcat最大并发连接数的修改方法
  17. BlackBerry 代码签名工具申请及安装介绍
  18. 戏子多秋用计算机怎么弹,戏子多秋 - 刘雨Key - 5SING中国原创音乐基地
  19. CTF小白新手导航(基础建议)
  20. 莫名惊诧:中国客户被FUCK

热门文章

  1. python函数调用的三种方式_python函数调用的四种方式
  2. zookeeper安装与测试
  3. 如何在MySQL中设置外键约束
  4. 大数据学习笔记02-HDFS-常用命令
  5. php判断检测一个数组里有没有重复的值
  6. Discuz修改笔记-Discuz代码的使用
  7. heX:用HTML5和Node.JS开发桌面应用
  8. 全新 HTML 5.1 工作草案发布
  9. C#子窗体精确定位到父窗体的某个位…
  10. logstash增量同步mysql数据到es