📘 RDMA 编程陷阱与调试
30章 · 完整目录
⚡ 友好 · 硬核技术
01
RDMA基础概念与硬件选型陷阱
IB、RoCE v1/v2、iWARP区别,网卡/交换机/线缆兼容性坑
02
内存注册与MR管理
错误注册方式、内存钉扎性能问题、MR泄漏与生命周期
03
QP状态机与连接管理
状态转换错误、非正常断开重连、SRQ死锁
04
CQ与完成事件处理
轮询vs事件通知误区、CQ溢出、丢失完成事件
05
WR构造与提交
错误SGE、无效L_Key、Inline Data使用不当
06
RDMA原子操作与一致性
Fetch&Add、Compare&Swap硬件限制与跨节点原子性误解
07
可靠连接(RC)与不可靠连接(UC)选择
RC保序性、UC丢包处理、UD多播陷阱
08
内存窗口(MW)与绑定
MW类型选择、绑定时机错误、权限控制安全
09
RDMA与CPU亲和性
中断绑定、NUMA感知、CPU过载导致WQE饥饿
10
GID与地址解析
GID索引错误、RoCE v2 GID/IP映射、多网卡路径选择
11
PKey与分区管理
PKey不匹配连接失败、默认PKey误解、虚拟化配置
12
RDMA与操作系统交互
用户/内核态切换开销、Page Fault、OOM Killer影响
13
调试工具链
ibv_devinfo, ibstat, perftest, rdma-core 解读
14
抓包与分析
tcpdump/Wireshark分析RoCE、CNP识别与定位
15
性能调优
带宽延迟平衡、MTU、PFC流控、QoS标记
16
错误处理与重连机制
AE异步事件、错误QP重置、优雅重连策略
17
多线程与并发安全
共享CQ/PD锁竞争、线程安全内存注册、WR序列化
18
RDMA与GPU Direct
P2P CUDA注册、GDR Copy/Direct区别、NCCL陷阱
19
虚拟化与容器环境
SR-IOV VF、Passthrough vs 共享、Docker设备挂载
20
RDMA与存储协议
NVMe over Fabrics、iSER、RDS常见问题
21
拥塞控制算法
DCQCN、Timely、HPCC配置调优、ECN硬件支持
22
RDMA与内核协议栈共存
IPoIB、Kernel Bypass与TCP/IP混合、ARP/NDP
23
持久化内存与RDMA
PMem DAX映射、Flush语义、跨节点一致性模型
24
RDMA安全
SMC-R/TLS offload、信任域隔离、恶意QP攻击防范
25
大规模集群部署
Subnet Manager、多子网路由、Fat-Tree路径优化
26
RDMA与异步编程模型
libibverbs vs libfabric、Completion vs Event-driven
27
固件与驱动兼容性
固件升级ABI变化、驱动版本匹配、厂商Bug Workaround
28
RDMA与大数据框架
Spark Shuffle、AllReduce、Horovod集成问题
29
RDMA与分布式数据库
Ceph、Cassandra、MySQL Cluster加速陷阱
30
未来趋势与新兴技术
CXL over RDMA、Disaggregated Memory、SmartNIC影响