Hostping: Diagnosing Intra-host Network Bottlenecks in RDMA Servers

利用拨测,采集intra-host的带宽、延迟与各种总线利用率,判断RDMA服务器中intra-host瓶颈的位置。

RDMA网络性能增长速度太宽,intra-host跟不上,暴露了很多问题。

intra-host带宽小于RNIC收包速率, 在lossy的环境下就会导致丢包,可能导致整个集群的性能下降。 如果不是lossy的环境,RDMA会发PFC pause frame,导致PFC storm。

挑战:

  1. find and measure有效指标
  2. responsive同时low overhead
  3. 高效检测

insight:intra-host的带宽和延迟是有效指标

intra-host bottlenecks的影响

  1. 一个intra-host bottleneck就能极大程度降低分布式机器学习系统的性能
  2. 频繁的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