利用拨测,采集intra-host的带宽、延迟与各种总线利用率,判断RDMA服务器中intra-host瓶颈的位置。
RDMA网络性能增长速度太宽,intra-host跟不上,暴露了很多问题。
intra-host带宽小于RNIC收包速率, 在lossy的环境下就会导致丢包,可能导致整个集群的性能下降。 如果不是lossy的环境,RDMA会发PFC pause frame,导致PFC storm。
挑战:
- find and measure有效指标
- responsive同时low overhead
- 高效检测
insight:intra-host的带宽和延迟是有效指标
intra-host bottlenecks的影响
- 一个intra-host bottleneck就能极大程度降低分布式机器学习系统的性能
- 频繁的intra-host bottlenecks给性能瓶颈诊断带来挑战,要先确定是不是host/network的问题
Design
分成三部分
- hardware monitor
- Hostping engine
- 利用RNIC测量intra-host的延迟和带宽
- 监控总线利用率
- data analyzer
Hostping Engine
讲了一些采集的细节。
Responsiveness with Low Overhead
需要解决responsiveness和low overhead的trade-off,也就是全量指标采集和准确度的问题。 解决方法是在机器空闲的时候频繁主动运行,在机器繁忙时由异常指标触发。
Bottleneck Analysis
这边其实有个小问题,好像直接判断主要是带宽,那么latency起了什么作用呢?是不是和Hostping Engine那一节有关系(但是那边没仔细看)。
我理解就是一个Vote算法。 因为直接得到的指标是Path的指标,用多条Path的异常来投票决定是哪个Link出的问题。
Evaluation
很关键,提了几个异常场景。
Scenario 1: link failure引起的intra-host带宽下降
- RNIC PCIe links
- GPU PCIe links
- memory channels
- CPU root port failures
- Memory channel flapping
Scenario 2: 配置错误导致性能下降
- Enabling ACS results in high PCIe latency
- Disabling ATS results in high PCIe latency
- Enabling slow start on the RNIC
- Setting Tx window too small on the RNIC
Scenario 3: 拥塞导致带宽下降
- Overloaded inter-socket buses
- Overloaded memory channels