2. 交换系统性能指标体系

在 Broadcom 交换芯片(如 Tomahawk、Trident 系列)构成的系统中,性能优化不能凭感觉,必须建立在一套可量化、可采集、可对比的指标体系之上。本节围绕六个核心指标展开:吞吐量、时延、抖动、丢包率、缓存利用率,以及 PFC/ECN 触发频率。理解它们的定义、采集位置与优化目标,是后续流量工程调优的前提。

一、吞吐量:系统实际承载能力

吞吐量指单位时间内成功转发的数据量,通常以 Gbps 或 pps(包每秒)表示。需要区分三个层次:线速吞吐量(端口物理上限,如 400GE 端口理论 400 Gbps)、实测吞吐量(RFC 2544 打流测得的转发速率)、有效吞吐量(扣除协议开销后的净荷速率)。

采集方法上,Broadcom 芯片可通过 SDK 的 bcm_port_stat_get() 读取端口计数器,或使用 show counters 类命令查看 RX_BYTES、TX_BYTES、RX_PKT、TX_PKT。优化目标通常设定为:在无拥塞场景下,实测吞吐量达到线速的 95% 以上;在拥塞场景下,保证关键业务流吞吐量不低于其 SLA 承诺值。

二、时延与抖动:时敏业务的命脉

时延(Latency)是数据包从入端口到出端口的穿越时间,包含存储转发时延、排队时延和交换结构时延。抖动(Jitter)是时延的变化量,即同一业务流不同数据包时延的方差。对于 RoCEv2、音视频等时敏业务,抖动比平均时延更致命。

采集时延的常用方法是使用硬件时间戳:在入端口打时间戳 T1,出端口打时间戳 T2,时延 = T2 − T1。Broadcom 芯片支持 INT(In-band Network Telemetry)或 PTP 硬件时间戳,精度可达纳秒级。抖动则通过连续采样多个包的时延,计算其标准差或峰峰值。

优化目标示例:对于 RoCEv2 存储流量,端到端时延目标可设为 < 10 μs,抖动目标 < 2 μs;对于普通 TCP 业务,时延目标可放宽至 < 100 μs,抖动 < 20 μs。这些目标需结合业务 SLA 和芯片能力合理设定。

三、丢包率:拥塞的直接信号

丢包率 = 丢弃包数 / 总接收包数。在交换系统中,丢包主要发生在三个位置:入端口缓冲区溢出、出端口队列溢出、以及 ACL/策略主动丢弃。Broadcom 芯片提供 RX_DISCARDS、TX_DISCARDS、PG_DISCARDS 等计数器,可精确定位丢包位置。

优化目标:对于无损网络(RoCEv2),丢包率应趋近于 0,依靠 PFC/ECN 实现无损;对于普通以太网业务,丢包率目标通常 < 0.01%。若丢包率持续高于阈值,需检查缓冲区分配、队列调度和流控配置。

四、缓存利用率:拥塞吸收能力

缓存利用率 = 当前占用缓存 / 总可用缓存。Broadcom 芯片的缓存分为共享池(Shared Pool)和端口/队列预留(Reserved)。缓存利用率过高说明拥塞严重,过低则说明缓存资源浪费。

采集方法:通过 SDK 读取 MMU 相关计数器,如 SHARED_USAGE、PG_FREE、QUEUE_USAGE。优化目标:稳态下共享池利用率保持在 40%~70% 之间,突发时允许短时超过 80%,但不应持续满载。

五、PFC/ECN 触发频率:无损网络的关键

PFC(Priority Flow Control)和 ECN(Explicit Congestion Notification)是构建无损网络的两大机制。PFC 触发频率指单位时间内 PFC Pause 帧的发送次数;ECN 触发频率指单位时间内被标记 ECT 的包数量。

采集方法:PFC 统计可通过 PFC_STAT 寄存器读取,ECN 标记计数可通过 ECN_STAT 获取。优化目标:PFC 触发频率应尽可能低,理想情况下仅在大突发时触发;ECN 标记频率应稳定在合理区间,过高说明拥塞严重,过低说明阈值设置过松。

交换系统性能指标体系 — 采集位置与优化目标 Broadcom 交换芯片 Tomahawk / Trident 系列 ① 吞吐量 (Throughput) 定义:单位时间成功转发数据量 采集:RX_BYTES / TX_BYTES 计数器 目标:≥ 线速 95%(无拥塞) ② 时延 (Latency) 定义:入端口到出端口穿越时间 采集:INT / PTP 硬件时间戳 T2−T1 目标:RoCEv2 < 10 μs ③ 抖动 (Jitter) 定义:时延的变化量(方差/峰峰值) 采集:连续采样时延计算标准差 目标:RoCEv2 < 2 μs ④ 丢包率 (Packet Loss) 定义:丢弃包数 / 总接收包数 采集:RX_DISCARDS / TX_DISCARDS 目标:无损网络趋近 0 ⑤ 缓存利用率 (Buffer Usage) 定义:当前占用 / 总可用缓存 采集:SHARED_USAGE / QUEUE_USAGE 目标:稳态 40%~70% ⑥ PFC/ECN 触发频率 定义:单位时间 Pause/标记包数 采集:PFC_STAT / ECN_STAT 寄存器 目标:PFC 仅大突发触发 采集原则:所有指标均通过 Broadcom SDK 寄存器/计数器读取,采样周期建议 1s~10s 优化闭环:采集 → 对比目标 → 定位瓶颈(缓冲区/队列/流控)→ 调整参数 → 复测验证 吞吐量 时延 抖动 丢包率 缓存利用率 PFC/ECN 触发频率

六、指标间的联动关系与优化闭环

这六个指标并非孤立,而是相互关联。例如:缓存利用率升高 → 队列排队时延增加 → 抖动增大 → 若持续溢出则丢包率上升 → 触发 PFC/ECN → 反过来抑制发送速率。因此优化时不能只看单一指标,而应建立联动视图。

一个实用的优化闭环是:采集 → 对比目标 → 定位瓶颈 → 调整参数 → 复测验证。例如,若发现 PFC 触发频率异常高,同时缓存利用率持续 > 85%,则说明共享缓冲区分配不足或 ECN 阈值设置过松,应调整 MMU 的 PG_MIN 和 ECN_THRESHOLD 参数,然后重新打流验证。

采集建议:使用 Broadcom SDK 的 bcm_stat_get() 系列接口,配合 collector 工具以 1s 为周期轮询关键计数器。对于时延和抖动,建议开启 INT 或 PTP 硬件时间戳,避免软件时间戳带来的误差。所有采集数据应带时间戳存储,便于事后关联分析。
注意:不同 Broadcom 芯片型号(如 Tomahawk 4 与 Trident 4)的计数器命名和寄存器地址可能不同,采集前需查阅对应芯片的 SDK 编程手册。优化目标值应结合具体业务 SLA 和芯片规格设定,不可盲目套用。