MAD 拥塞控制
SA 管理数据报 (MAD) 是通用管理数据包 (GMP),用于与 InfiniBand 子网内的 SA 实体通信。SA 通常是子网管理器的一部分,并且包含在单个活动实例中。因此,SA 通信级别可能会发生拥塞。
拥塞控制通过仅允许最大未完成 MAD 来完成,其中未完成 MAD 意味着尚未收到响应。它还维护一个 FIFO 队列,用于保存由于 max_outstanding 溢出而延迟发送的 SA MAD。
队列的长度为 queue_size,旨在限制 FIFO 增长超出机器内存容量。当 FIFO 队列已满时,SA MAD 将被丢弃,并且丢弃计数器将相应地递增。
当队列中 MAD 的时间到期 (time_sa_mad) 时,它将从队列中移除,并且用户将收到项目过期的通知。
此功能是按每个 CA 端口实现的。
SA MAD 拥塞控制值可以使用以下 sysfs 条目进行配置
/sys/class
/infiniband/mlx5_0/mad_sa_cc/
├── 1
│ ├── drops
│ ├── max_outstanding
│ ├── queue_size
│ └── time_sa_mad
└── 2
├── drops
├── max_outstanding
├── queue_size
└── time_sa_mad
cat /sys/class
/infiniband/mlx5_0/mad_sa_cc/1
/max_outstanding 16
至
更改 当前 值:
echo 32
> /sys/class
/infiniband/mlx5_0/mad_sa_cc/1
/max_outstanding
cat /sys/class
/infiniband/mlx5_0/mad_sa_cc/1
/max_outstanding
32
至
重置 丢弃 计数器:
echo 0
> /sys/class
/infiniband/mlx5_0/mad_sa_cc/1
/drops
参数的有效范围
参数 | 范围 | 默认值 | |
最小值 | 最大值 | ||
max_oustanding | 1 | 2^20 | 16 |
queue_size | 16 | 2^20 | 16 |
time_sa_mad | 1 毫秒 | 10000 | 20 毫秒 |