讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么配置irqbalance服务让多核CPU均匀分担网卡中断

星婷君_2843

星婷君_2843

发布时间:2026-10-03 10:09:20

|

921人浏览过

|

来源于php中文网

原创

irqbalance 默认在多队列网卡上失效,将所有中断集中到CPU0,因其无法准确识别RSS队列负载;需停用后手动绑定IRQ、启用RPS/RFS并禁用GRO/LRO才能实现真正均衡。

linux怎么配置irqbalance服务让多核cpu均匀分担网卡中断

irqbalance 默认在多队列网卡上经常失效,反而把所有中断塞给 CPU0 —— 不是配错了,而是它压根没识别到 RSS 队列负载,直接放弃均衡。真要均匀分担,得关掉它,手动绑 + 补 RPS/RFS。

为什么 irqbalance 会把所有网卡中断塞给 CPU0

它依赖 /proc/interrupts 的计数更新和 softirq 延迟反馈做负载评估,但 RSS 队列中断计数滞后、NET_RX 软中断延迟不被准确采集、或内核版本(如 4.19/5.4)中 irqbalance 对 MSI-X 多向量中断识别有缺陷,都会让它“以为”只有 CPU0 在干活。现象很典型:cat /proc/interrupts | grep eth0 显示所有 eth0-TxRx-* 行的数字全集中在第一列;watch -n1 'cat /proc/softirqs | grep NET_RX' 里只有 CPU0 的值飙升。

停用 irqbalance 后怎么安全绑定各 RSS 队列到不同 CPU

不能只停服务,必须逐个 IRQ 精确绑定,否则可能误绑系统中断或触发 NUMA 远程访问:

Alpine Linux
Alpine Linux

获取最新发布版本;聚合最新版本架构

下载
  • 先确认网卡队列数:grep eth0 /proc/interrupts | wc -l(比如输出 8,说明有 8 个 RSS 队列)
  • 查可用 CPU 列表:cat /sys/devices/system/cpu/online,排除 isolcpus 或 rcu_nocbs 绑定的核
  • 逐个写入 smp_affinity_list:
    echo 0 > /proc/irq/44/smp_affinity_list(假设 44 是 eth0-TxRx-0 的 IRQ 号)
    echo 1 > /proc/irq/45/smp_affinity_list(45 是 eth0-TxRx-1)
    ……依此类推,确保每个队列对应一个独占 CPU
  • 验证是否生效:cat /proc/irq/44/smp_affinity_list 应返回 0,且 /proc/interrupts 中该行数字开始在对应列增长

RPS/RFS 必须补上,否则中断分开了 softirq 还是挤在单核

单纯绑 IRQ 只控制硬中断投递,NET_RX 软中断仍可能全部在 CPU0 上执行 —— 因为上层收包路径没分流:

  • 检查 RPS 是否启用:cat /sys/class/net/eth0/queues/rx-0/rps_cpus,为空就需配置
    例如 8 核:对每个 rx 队列执行 echo ff > /sys/class/net/eth0/queues/rx-0/rps_cpus(十六进制掩码)
  • RFS 推荐开启:echo 32768 > /proc/sys/net/core/rps_sock_flow_entries,再为每个 rx 队列设 rps_flow_cnt:echo 2048 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt
  • 务必关闭 GRO/LRO:ethtool -K eth0 gro off lro off,否则大包重组会绕过 RPS,集中消耗单核 softirq

验证是否真正均衡的关键命令

别信 top 或 htop 里的 si%,它们只反映采样瞬间,容易漏掉 burst:

  • 持续观察软中断分布:watch -n1 'grep -E "NET_RX|NET_TX" /proc/softirqs',确认各 CPU 列数值同步上升,标准差
  • 检查实际收包队列使用率:ethtool -S eth0 | grep rx_queue_.*_packets,8 个队列数值应大致接近(±20% 内)
  • 如果仍有某核 softirq 持续偏高,大概率是 RPS 掩码没对齐队列数,或应用层 socket 没开 SO_ATTACH_REUSEPORT_CBPF 导致连接哈希倾斜

最易被忽略的是:RSS 队列数 ≠ CPU 数 ≠ RPS 掩码位数。三者不对齐时,哪怕 IRQ 绑对了,RPS 也会把多个队列映射到同一个 CPU,软中断照样打满。动手前一定先跑 ethtool -l eth0 确认 Combined 值,再决定绑几个核、设几位掩码。

热门AI工具

更多
讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3790

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3273

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2393

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5730

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5382

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3193

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2685

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2899

2023.07.25

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

40

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 181人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn