nmcli 本身不能查看软中断或硬件中断平衡状态,仅管理网络连接;需先用 nmcli 确认网卡设备名与驱动,再通过 /proc/interrupts、smp_affinity_list、ethtool 等工具诊断 IRQ 分布、亲和性及多队列启用情况。

nmcli 本身不能查看软中断(softirq)或硬件中断(IRQ)的平衡状态。它只负责网络连接管理——比如启停接口、配置IP、显示连接状态,不接触中断子系统、CPU亲和性或/proc/interrupts这类底层信息。
要评估物理网卡的中断平衡状态并优化网络资源,必须分两步走:
✅ 先用 nmcli 快速确认网卡设备名和基础状态;
? 再用真正能读中断、查亲和性、看队列的工具深入诊断。
一、用 nmcli 确认目标物理网卡设备名与驱动状态
这是所有后续分析的前提,避免查错设备(如把 bond 接口当物理口,或误认虚拟网卡):
- 运行
nmcli device status,找出类型为ethernet且状态为connected的设备(例如enp5s0f0或ens3f0) - 补充验证驱动:
nmcli -p device show enp5s0f0 | grep -i "driver\|vendor"- 常见多队列驱动包括
ixgbe(Intel X550)、i40e(X710)、mlx5_core(Mellanox)、ice(E810) - 若显示
virtio_net或vmxnet3,需额外确认是否启用多队列(默认常为单队列)
- 常见多队列驱动包括
⚠️ 注意:不要依赖
ifconfig或模糊名称(如eth0),现代系统使用可预测命名,nmcli device status输出最可靠。
二、用 /proc/interrupts + watch 观察 IRQ 分布倾斜程度
这是判断“是否单核瓶颈”的最直接方式:
-
查该网卡对应的所有中断行:
grep -i "enp5s0f0" /proc/interrupts
输出类似:47: 12456789 0 0 0 234567 0 0 0 IR-PCI-MSI 32768-edge enp5s0f0-rx-0 48: 9876543 0 0 0 198765 0 0 0 IR-PCI-MSI 32769-edge enp5s0f0-rx-1
关键看每行中各 CPU 列数值:若 只有 CPU0 列数字极大,其余几乎为 0,说明中断全部压在 boot CPU 上
实时观察增长是否偏斜:
watch -n 1 'grep -i enp5s0f0 /proc/interrupts'
? 提示:带
-rx-、-tx-后缀的行代表独立接收/发送队列中断,每个都应分散到不同 CPU。若所有-rx-*都只涨 CPU0,就是典型单核瓶颈。
三、检查中断亲和性(smp_affinity_list)是否生效
即使有多队列,若未正确绑定 CPU,中断仍会集中:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
对任一 IRQ(如 47),查当前设置:
cat /proc/irq/47/smp_affinity_list- 输出
0→ 只绑 CPU0,风险高 - 输出
1,3,5,7→ 已分散到多个物理核(推荐避开 CPU0,尤其在 NUMA 系统中)
- 输出
-
验证内核是否真按此执行:
cat /proc/irq/47/effective_affinity- 若两者不一致,大概率是
irqbalance在后台覆盖了你的设置
- 若两者不一致,大概率是
-
检查 irqbalance 状态:
systemctl is-active irqbalance- 若为
active,且你在做低延迟或高性能调优,建议:sudo systemctl stop irqbalance && sudo systemctl disable irqbalance
- 若为
四、确认多队列与 RSS 是否启用(中断分散的基础)
没有多队列,就谈不上中断平衡:
- 查最大支持队列数:
ethtool -l enp5s0f0 - 查当前启用数:看
Current hardware settings行 - 启用 8 队列(需 root):
sudo ethtool -L enp5s0f0 rx 8 tx 8 - 验证是否生效:再次
ethtool -l enp5s0f0,且/sys/class/net/enp5s0f0/device/sriov_numvfs不为负值(表示非 VF 模式下正常)
? 补充:若
ethtool -S enp5s0f0 | grep rx_interrupts显示rx_interrupts远高于rx_packets(如比例 > 3:1),说明 NAPI 未有效工作,可能 RSS 未启用或 GRO/LRO 干扰,需进一步查ethtool -k enp5s0f0中receive-offload状态。
不复杂但容易忽略










