目录
一、硬件层级优化
二、操作系统层级优化
三、内核网络参数调优
四、网卡驱动级优化
五、高级优化策略
六、监控与验证
一、硬件层级优化
高性能网卡选型 优先选择支持多队列(Multi-Queue)的10G/25G/100G网卡,确保PCIe插槽带宽与网卡速率匹配(如100G网卡需配置PCIe 4.0 x16)。避免使用低端网卡成为系统瓶颈。
NUMA与PCIe拓扑优化 确保网卡与其对应CPU处于相同NUMA节点,通过lspci -vv检查设备NUMA归属,绑定网卡中断与数据处理进程到同节点CPU,减少跨节点内存访问延迟。
二、操作系统层级优化
中断亲和性与负载均衡
- 关闭irqbalance服务: systemctl stop irqbalance && systemctl disable irqbalance
- 手动绑定中断:通过/proc/irq/[IRQ]/smp_affinity_list将不同队列中断绑定到独立CPU核心,避免核间竞争。例如: echo 2 > /proc/irq/123/smp_affinity_list # 绑定中断到CPU核心2
CPU调度与节能模式
- 启用performance模式: cpupower frequency-set –governor performance
- 关闭节能选项:在GRUB配置中添加: processor.max_cstate=1 intel_idle.max_cstate=0 更新后执行: grub2-mkconfig -o /boot/grub2/grub.cfg
三、内核网络参数调优
关键参数调整 修改/etc/sysctl.conf并执行sysctl -p生效:
net.core.somaxconn=4096
# 增大TCP连接队列 net.core.netdev_max_backlog=300000
# 提升网卡收包队列 net.ipv4.tcp_rmem="4096 87380 16777216"
# TCP接收缓冲区优化 net.ipv4.tcp_wmem="4096 16384 16777216"
# TCP发送缓冲区优化
网卡队列与缓存配置
ethtool -G ethX rx 4096 tx 4096
# 调整收发环形缓冲区大小(需网卡支持) ethtool -L ethX combined 32
# 启用多队列(如32队列)
四、网卡驱动级优化
中断合并与Offload控制
ethtool -C ethX adaptive-rx off rx-usecs 84
# 关闭自适应中断,固定84μs间隔 ethtool -K ethX tso off gso off
# 小包场景关闭TSO/GSO卸载,降低CPU负载 ifconfig ethX mtu 9000
# 启用巨帧(需网络设备支持)
Intel网卡专用参数(如e1000/ixgbe驱动)
- 调整中断速率与描述符: modprobe ixgbe InterruptThrottleRate=3000
# 动态中断调节 echo 4096 > /sys/class/net/ethX/queues/rx-0/rx_count
# 增加接收描述符
五、高级优化策略
RPS/RFS分流 对不支持多队列的网卡,启用内核软中断负载均衡:
echo ffff > /sys/class/net/ethX/queues/rx-0/rps_cpus
# 绑定所有CPU核心
DPDK/XDP加速(极端性能场景) 部署用户态驱动(如DPDK)或内核旁路技术(XDP),绕过内核协议栈,实现微秒级延迟。需配合绑核和NUMA优化。
六、监控与验证
实时指标观测
sar -n DEV 1
# 网卡吞吐与丢包率 ethtool -S ethX
# 查看网卡统计信息(如dropped、fifo_errors) perf top -C 2
# 监控指定CPU软中断分布
压测工具验证
# 多核并发测试(绑定不同CPU核心) taskset -c 0-7 iperf3 -c <server> -P 8
实施顺序建议:硬件选型→驱动/固件升级→NUMA/中断绑定→内核参数调整→Offload配置→压测验证。需逐层验证效果,避免过度优化。
评论前必须登录!
注册