3. 流量特征与测量基础

容量规划的第一步不是买设备,而是把"网络里到底跑了多少流量、怎么跑的"这件事量化清楚。这一节围绕四个核心问题展开:流量从哪里来到哪里去(流量矩阵)、流量随时间如何波动(峰值与均值)、波动有多剧烈(突发性)、以及用什么手段把流量测出来(NetFlow/sFlow/IPFIX、SNMP 计数器、INT 带内遥测)。

流量矩阵:把"总量"拆成"关系"

接口计数器只能告诉你某条链路上有多少字节,却无法回答"这些字节是谁发给谁的"。流量矩阵(Traffic Matrix, TM)正是用来描述这种源—目的(OD)对之间流量的二维结构:行表示入口节点(或源 PoP、源机架),列表示出口节点,矩阵元素 TM[i][j] 表示从 i 到 j 的流量速率。对于有 N 个节点的网络,完整 TM 有 N² 个元素,其中对角线元素是本地流量,非对角线元素是穿越流量。

直接测量全网 TM 成本极高,工程上常用"链路计数 + 推断"的方式:先通过 SNMP 或流采集获得每条链路的负载 y = A·x(A 为路由矩阵,x 为待求 OD 流量),再用重力模型、Tomogravity 等算法求解欠定方程组。做容量规划时,TM 的价值在于识别"热点 OD 对"——例如某数据中心到备份站点的复制流量在夜间占据 40% 骨干带宽,这类结构性特征只有 TM 才能暴露。

峰值、均值与突发性

均值(Average)描述长期平均负载,峰值(Peak)描述短时间内的最大瞬时速率,两者之比即峰均比(Peak-to-Average Ratio, PAR)。突发性(Burstiness)刻画流量在时间轴上的不均匀程度,常用指标包括:

  • 峰均比 PAR:PAR = 峰值速率 / 均值速率,典型园区网 PAR 在 3~10,数据中心东西向流量可达 20 以上。
  • 突发度 B:在时间窗口 T 内,B = (峰值 - 均值) / 均值,反映瞬时冲击强度。
  • Hurst 指数 H:H>0.5 表示自相似(长程相关),H=0.5 为泊松,H<0.5 为短程相关。真实数据中心流量 H 常在 0.7~0.9。

容量规划中,均值决定"日常够不够用",峰值决定"会不会丢包",突发性决定"缓冲区要多大"。一个常见误区是用 5 分钟均值做规划:若某链路 5 分钟均值 4 Gbps,但 1 秒峰值达 9 Gbps,按 5 Gbps 配置就会在突发时拥塞。因此必须明确采样粒度——SNMP 默认 5 分钟轮询会平滑掉秒级突发,需要结合 sFlow/INT 的毫秒级数据。

流量测量技术对比:采样粒度、覆盖范围与容量规划用途 秒级 分钟级 小时级 天级 SNMP 接口计数器 ifInOctets / ifOutOctets 5 分钟轮询 · 仅链路总量 NetFlow / sFlow / IPFIX 五元组流记录 · 采样比 1:1000 秒级聚合 · 可构建流量矩阵 INT 带内遥测 逐跳时延/队列/端口计数 微秒级 · 精确突发捕获 用途:链路利用率趋势 容量基线 · 告警阈值 用途:流量矩阵构建 Top Talker · 应用画像 用途:微突发检测 队列深度 · 拥塞定位 容量规划组合策略:SNMP 定基线 + Flow 建矩阵 + INT 抓突发

流量采集技术:三种粒度,三种用途

SNMP 接口计数器是最基础的测量手段。通过轮询 ifInOctets、ifOutOctets、ifInErrors 等 OID,可以获取每条链路的累计字节数和错误数。两次轮询之差除以时间间隔即为平均速率。优点是几乎所有设备都支持、开销极低;缺点是只有链路总量、无五元组信息,且 5 分钟轮询会平滑掉秒级突发。适合做长期趋势基线和容量告警。

NetFlow / sFlow / IPFIX 提供流级可见性。NetFlow 由 Cisco 提出,v9 和 IPFIX(RFC 7011)采用模板化格式,可导出源 IP、目的 IP、源端口、目的端口、协议、TOS、字节数、包数、起止时间等字段。sFlow 采用随机采样(典型 1:1000),开销更低但精度略逊。采集架构通常为:设备导出 → 采集器(如 nfdump、pmacct)→ 分析器(如 Elasticsearch + Grafana)。用流数据可以聚合出 OD 矩阵、识别 Top Talker、按应用分类流量。示例:某交换机 10 Gbps 上行口,sFlow 采样比 1:2000,5 分钟内采集到 120 万条流记录,按目的子网聚合后发现 35% 流量指向存储网段,这就是容量规划的关键输入。

INT(In-band Network Telemetry)是近年兴起的高精度手段。数据包在转发路径上被逐跳插入遥测元数据(入端口、出端口、队列深度、时延、时间戳),由末端交换机或接收端收集上报。INT 能捕获微秒级微突发(microburst),这是 SNMP 和 Flow 都做不到的。例如某 AI 训练集群 GPU 服务器在 AllReduce 阶段产生 100 μs 级突发,SNMP 5 分钟均值完全看不出异常,但 INT 可记录到队列深度瞬间从 20 KB 冲到 800 KB,从而指导缓冲区调优和 PFC 阈值设置。

测量数据在容量规划中的使用

三类数据各有分工,组合使用才能形成完整闭环:

数据类型采样粒度核心用途典型工具
SNMP 计数器5 分钟链路利用率基线、扩容触发Zabbix、Prometheus SNMP Exporter
NetFlow/sFlow秒级聚合流量矩阵、应用分布、Top Nnfdump、pmacct、Elastic
INT微秒级微突发、队列、逐跳时延P4 交换机、INT 采集器

具体到容量规划流程,可以这样落地:第一步,用 SNMP 历史数据(建议保留 12 个月)计算每条链路的 95 百分位利用率,作为扩容基线;第二步,用 Flow 数据构建周级流量矩阵,识别增长最快的 OD 对,例如某对 OD 月增 15%,则按 6 个月后翻倍预留;第三步,对关键链路开启 INT,确认是否存在微突发导致的丢包或 PFC 反压,若队列深度频繁超过阈值,则需增加缓冲区或调整调度策略。

实践提示:采样比选择需要权衡。sFlow 1:1000 在 10 Gbps 链路上每秒约 1.25 万采样包,对 CPU 影响可控;若链路升级到 100 Gbps,建议调整为 1:4000 或启用 NetFlow 聚合缓存,避免采集器过载。INT 则需评估交换机 ASIC 是否支持,以及遥测报文本身占用的带宽(通常 <1%)。
常见陷阱:不要用 5 分钟均值直接乘以安全系数来规划带宽。若 PAR 为 8,均值 2 Gbps,峰值可能达 16 Gbps,按 2.5 倍均值(5 Gbps)配置必然拥塞。正确做法是取 95 百分位峰值,再叠加 20%~30% 增长余量。

总结来说,流量矩阵回答"流量在哪",峰值与均值回答"波动多大",突发性回答"冲击多强",而 SNMP、Flow、INT 分别从粗到细提供测量能力。容量规划的本质,是用合适的测量粒度匹配规划目标:长期基线用 SNMP,结构分析用 Flow,微突发防护用 INT,三者缺一不可。