低延迟网卡驱动调优完全指南

📚 共计 30 章节
01
网卡调优总览
什么是低延迟?为什么需要调优?核心指标:延迟、吞吐、CPU占用
总览指标
02
硬件基础
网卡硬件架构 (PCIe、MAC、PHY)、MSI-X、多队列RSS原理
硬件中断
03
驱动选择
Intel igb/ixgbe、Mellanox mlx5、Broadcom bnxt 对比 · 内核 vs 厂商
驱动对比
04
内核参数调优
net.core.rmem_default、netdev_budget、somaxconn 等关键参数
内核协议栈
05
中断亲和性
CPU隔离 (isolcpus)、irqbalance vs 手动绑定、RPS/RFS 机制
中断亲和性
06
NAPI 机制
轮询 vs 中断、NAPI 权重调整、busy poll 模式
NAPI轮询
07
Ring Buffer 调优
RX/TX Ring 大小设置、描述符数量对延迟的影响
Ring缓冲区
08
TCP/IP 协议栈卸载
TSO/GSO、LRO/GRO、RSC 开启与关闭场景
卸载TCP
09
UDP 优化
UDP 接收缓冲区、GRO 对 UDP 的影响、UFO 现状
UDP优化
10
DPDK 基础
DPDK 架构、UIO/VFIO 驱动、大页内存配置
DPDK大页
11
DPDK 轮询模式
PMD 线程、无锁队列、零拷贝原理
PMD零拷贝
12
DPDK 多核分发
RSS & Flow Director、Pipeline vs Run-to-completion
多核分发
13
XDP 基础
XDP_PASS/DROP/TX、BPF 映射
XDPBPF
14
XDP 实战
用 XDP 实现 UDP 包过滤、XDP vs DPDK 对比
XDP过滤
15
AF_XDP
AF_XDP 套接字、UMEM 管理、零拷贝路径
AF_XDPUMEM
16
网卡硬件卸载
Checksum Offload、VLAN Offload、Flow Steering
硬件卸载
17
时间戳与 PTP
硬件时间戳、PTP 协议、精确时间同步
PTP时间戳
18
多队列与 RSS
RSS 哈希算法、Indirection Table 调整、对称 RSS
RSS多队列
19
流分类与 QoS
DCB、PFC、ETS、SR-IOV 虚拟化
QoSDCB
20
监控与诊断工具
ethtool、perf、bpftrace、netstat 高级用法
监控诊断
21
延迟测量
ping 局限、RTT、One-way delay、tcpdump 时间戳
延迟测量
22
CPU 调优
频率缩放 (cpufreq)、C-State 控制、NUMA 绑定
CPUNUMA
23
内存调优
大页 (Hugepages)、内存池、NUMA 本地分配
内存大页
24
中断合并
Interrupt Coalescing 参数 (rx-usecs/rx-frames)、trade-off
中断合并参数
25
驱动编译与定制
内核源码编译、驱动模块参数、patch 应用
编译定制
26
容器环境调优
网络命名空间、Macvlan/Ipvlan、Calico + DPDK
容器网络
27
云环境调优
AWS ENA、GCP gVNIC、Azure Accelerated Networking
虚拟化
28
性能基准测试
iperf3、netperf、pktgen、TRex 使用指南
基准测试
29
常见问题排查
丢包分析 (dropwatch)、环形缓冲区溢出、中断风暴
排查丢包
30
综合案例
金融交易系统低延迟架构、直播推流低延迟优化
案例金融直播