性能调优 / 命令文档

Linux硬中断处理

$ interrupt 19 个章节 Linux 命令详解

概述

运维工程师必备技能

实战导向 | 高性能优化

硬中断基础概念

硬中断(Hardware Interrupt)是硬件设备向CPU发送的信号,用于通知CPU需要处理某些紧急事件。

关键特点:优先级高、不可被屏蔽、实时处理

常见硬中断类型:

网络中断:网卡接收/发送数据包

磁盘中断:硬盘读写完成

定时器中断:系统时钟信号

键盘/鼠标中断:用户输入事件

硬中断诊断工具

cat /proc/interrupts

显示系统中所有中断的统计信息

watch -n 1 'cat /proc/interrupts'

每秒刷新中断信息,观察变化趋势

sar -I ALL 1 5

详细显示中断活动情况

中断亲和性设置

# 查看中断绑定的CPU
cat /proc/irq/24/smp_affinity

# 将中断绑定到特定CPU
echo 2 > /proc/irq/24/smp_affinity

IRQ Balance优化

# 停用自动中断平衡
systemctl stop irqbalance

# 手动设置网卡中断分布
./set_irq_affinity.sh eth0

NAPI机制调优

# 调整网络中断合并参数
ethtool -C eth0 rx-usecs 50 rx-frames 32

# 查看当前设置
ethtool -c eth0

CPU0

网络中断专用

CPU1-3

应用程序处理

负载均衡

避免热点CPU

%hi

硬中断CPU使用率正常: < 5%

%si

软中断CPU使用率正常: < 10%

INT/sec

每秒中断次数网卡: < 50k

Context Switches

上下文切换正常: < 10k/s

监控命令组合

# 综合性能监控
top          # 查看各CPU核心使用情况
iostat -x 1     # 磁盘I/O监控
netstat -i      # 网络接口统计
vmstat 1        # 系统整体性能

内核参数调优

# /etc/sysctl.conf 优化配置
net.core.netdev_max_backlog = 5000
net.core.netdev_budget = 600
kernel.sched_migration_cost_ns = 5000000

# 应用配置
sysctl -p

高级技巧

使用isolcpus参数将特定CPU核心专门用于处理中断

GRUB_CMDLINE_LINUX="isolcpus=1,2,3"

接收包转向,将网络处理分散到多个CPU

echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus

用户态网络驱动,绕过内核网络栈

./dpdk-setup.sh --bind=igb_uio eth0

关键警告

生产环境慎重:所有优化都需要在测试环境验证

备份配置:修改前备份原始配置文件

渐进调整:一次只调整一个参数,观察效果

监控先行:建立完善的监控体系

安全检查清单

确认网卡、CPU支持相关特性

准备快速恢复原始配置的方案

记录优化前后的详细性能数据

最佳实践:先观察,再分析,后优化,持续监控

同分类 · 其他命令文档