3、监控指标体系:吞吐量、延迟、丢包率、重传率、乱序率、队列深度
监控RoCE网络,说白了就是盯住六个核心指标。我刚开始调RoCE时,面对一堆计数器完全懵了——后来才明白,这六个指标就像汽车的仪表盘,缺一个你都开不稳。
嗯,咱们一个一个来拆解。
3.1 吞吐量:最直观的“能跑多快”
吞吐量就是单位时间内成功传输的数据量。对于RoCE,我们通常看两个层面:
- 网卡级吞吐量:物理端口实际收发的比特率
- 应用级吞吐量:上层业务实际拿到的有效数据速率
我个人习惯用 ethtool -S 或者 perf stat 来抓网卡计数器。举个例子:
# 查看网卡统计
ethtool -S enp175s0 | grep -E "rx_bytes|tx_bytes"
# 用sar看实时吞吐
sar -n DEV 1 5
我在项目中遇到过一个问题:吞吐量显示接近线速,但应用层就是慢。后来发现是MTU没对齐,导致CPU拼命做分片重组。你想想看,网卡跑得再快,CPU扛不住也是白搭。
3.2 延迟:RoCE的“命门”
延迟是RoCE最敏感的指标。RDMA之所以快,就是因为它绕过了内核,把延迟压到了微秒级。一旦延迟飙升,业务立马感知。
延迟分几种:
- 端到端延迟:从发送方应用写到接收方应用读到
- 网络往返延迟(RTT):纯粹的网络传输时间
- 队列延迟:数据在交换机或网卡缓冲区里排队的时间
我常用的测量工具是 ib_write_lat 和 perftest 套件:
# 测量端到端延迟
ib_write_lat -a -d mlx5_0 -i 1
为什么会这样?因为RoCE的流控机制(DCQCN)就是靠延迟信号来调整发送速率的。延迟一抖动,PFC死锁就可能出现。我曾经在某个存储集群里,就因为交换机微突发导致延迟从5μs飙到200μs,整个集群IO直接卡死。
3.3 丢包率:零容忍的指标
RoCE网络对丢包是零容忍的。为什么?因为RDMA协议没有TCP那样的重传机制——丢一个包,整个QP(队列对)就可能挂掉。
丢包率通常用 ethtool -S 看网卡统计:
ethtool -S enp175s0 | grep -E "drop|discard|error"
我建议重点关注这几个计数器:
rx_dropped:接收端丢弃的包tx_discarded:发送端丢弃的包rx_buffer_errors:缓冲区溢出导致的丢包
3.4 重传率:网络健康的“晴雨表”
重传率反映的是数据包需要重新发送的比例。虽然RoCE本身不重传,但上层协议(如iWARP或RoCE v2的拥塞控制)会触发重传。
查看重传率可以用 netstat -s 或者 rdma statistic:
# 查看TCP重传(如果RoCE跑在TCP上)
netstat -s | grep retransmit
# 查看RDMA重传统计
rdma statistic show
重传率升高通常意味着:
- 网络存在拥塞
- 链路质量差(光模块故障、线缆松动)
- 交换机缓存不足
嗯,这里要注意:重传率和丢包率不是一回事。丢包了不一定重传(比如被上层忽略),重传了也不一定是因为丢包(比如超时重传)。
3.5 乱序率:被忽视的“隐形杀手”
乱序率很多人不关注,但我觉得它比丢包更隐蔽。RoCE依赖顺序交付,一旦乱序,接收端就要花额外资源去重组。
乱序率可以用 tcpdump 抓包分析:
# 抓包分析乱序
tcpdump -i enp175s0 -w roce.pcap
# 然后用Wireshark打开,看TCP序列号或RDMA的PSN
我在项目中遇到过:某台服务器的RoCE延迟忽高忽低,查了半天发现是ECMP哈希不均,导致同一个流的数据包走了不同路径,乱序率高达5%。
3.6 队列深度:拥塞的“前兆信号”
队列深度是交换机或网卡缓冲区里排队的数据量。这个指标能提前预警拥塞——队列深度开始涨,说明网络快扛不住了。
查看队列深度的方法:
- 网卡队列:
ethtool -S看tx_queue_len - 交换机队列:通过SNMP或CLI查看端口队列统计
- RDMA QP深度:
ibv_devinfo查看QP的发送/接收队列深度
# 查看网卡发送队列长度
ip -s link show enp175s0
# 查看RDMA QP状态
rdma resource show qp
我个人习惯把队列深度和延迟放在一起看。队列深度从0涨到100,延迟可能只增加10μs;但从100涨到200,延迟可能直接翻倍。这就是拥塞的“非线性效应”。
3.7 六个指标的关系:一张图看懂
这六个指标不是孤立的。我画了一张图,帮你理清它们之间的因果关系:
从这张图可以看出:队列深度是“前兆”,延迟和丢包是“症状”,重传和乱序是“并发症”,吞吐量是“最终结果”。监控时,我建议按这个优先级来:队列深度 > 延迟 > 丢包率 > 重传率 > 乱序率 > 吞吐量。
公众号:蓝海资料掘金营,微信deep3321