3. 云网络流量模型与基线测量

在云网络中,性能优化与容量规划的第一步不是调参数,而是把“流量长什么样”看清楚。云网络的流量结构与园区网、传统数据中心差异很大:同一台物理交换机上可能同时承载虚拟机迁移、分布式存储副本同步、租户东西向业务、以及经边界出口的南北向访问。若没有流量矩阵和性能基线,扩容只能靠经验猜测,优化也无从判断收益。本节围绕三件事展开:如何采集流量矩阵、如何区分东西向与南北向流量、如何建立可复用的性能基线,并给出 sFlow、IPFIX、Streaming Telemetry 三种采集手段的定位与配合方式。

一、流量矩阵:把“谁和谁通信”量化

流量矩阵(Traffic Matrix)描述的是源与目的之间的流量强度。在云网络中,节点粒度通常不是单台主机,而是“租户 + 子网 + 可用区”或“VTEP + VNI”的组合。一个实用的矩阵可以表示为 TM[i][j] = 在观测窗口内从节点 i 到节点 j 的字节数或包数。它回答三个问题:哪些路径最热、流量是否对称、热点是否随时间漂移。

采集流量矩阵有两条常见路径。其一是基于流记录的聚合:交换机把采样或全量流导出为 IPFIX/NetFlow 记录,采集器按五元组聚合后映射到节点对。其二是基于接口计数器与路由/转发表推断:用 SNMP 或 gNMI 读取接口字节数,再结合 ECMP 哈希与拓扑推算分布。前者精度高但开销大,后者开销低但只能得到近似矩阵。工程上常把两者结合:用接口计数器做总量约束,用流记录做分布修正。

需要特别说明参照约定:本文中“上行/下行”均以业务服务器为参照,即服务器发出为上行、服务器接收为下行;东西向与南北向的判定也以数据中心边界为参照,凡源和目的都在数据中心内部(含跨可用区)的为东西向,任一端在数据中心之外的为南北向。

二、东西向与南北向流量的识别

东西向流量是云网络的主体,通常占 70%~85%,典型来源包括:微服务间 RPC、分布式数据库副本同步、Hadoop/Spark Shuffle、存储后端复制、虚拟机热迁移。南北向流量占比小,但方向集中、突发明显,典型来源是公网用户请求、跨地域专线、备份出云、镜像拉取。

识别方法并不复杂,关键是定义清晰。以 VXLAN 环境为例:若流记录的源与目的 VTEP 都在本数据中心 VTEP 地址池内,则判为东西向;若目的 IP 属于边界出口网段或经边界防火墙,则判为南北向。对无法直接判定内外的情况,可用“是否经过边界设备”作为兜底条件。识别之后应分别统计:东西向关注路径利用率与 ECMP 均衡度,南北向关注出口带宽峰值与并发连接数。

云网络流量矩阵与采集点示意 数据中心内部(东西向域) 边界出口 / 南北向域 防火墙 · 专线 · 公网出口 Leaf-1 VTEP 10.10.1.1 Leaf-2 VTEP 10.10.1.2 Leaf-3 VTEP 10.10.1.3 Spine-1 / Spine-2 ECMP 哈希转发 VM-A 租户 T1 VM-B 租户 T2 存储节点 副本同步 南北向出口 sFlow / IPFIX 采样点 采集器 / 分析平台 流记录聚合 · 基线计算 东西向流量 南北向流量 流采集点

三、三种采集手段的定位与配合

sFlow 基于报文采样,典型采样率为 1:1000 或 1:2000,由交换机 ASIC 直接完成,对 CPU 影响极小。它适合做全网流量分布与热点发现,能快速回答“哪条链路在涨、哪个租户在涨”。缺点是采样带来统计误差,不适合精确计费或小流量异常检测。

IPFIX(NetFlow v10)基于流缓存导出,可配置全量或采样,字段可扩展。它适合做会话级分析,例如统计某租户到某服务的连接数、重传比例、端口分布。代价是交换机需要维护流表,高并发小流场景下会消耗较多表项与 CPU。

Streaming Telemetry 采用推模式(gNMI/gRPC 或 gRPC dial-out),按订阅周期主动上报接口计数器、队列丢包、ECN 标记、缓存水位等。它适合做秒级基线与实时告警,是建立性能基线最合适的数据源。三者并非互斥:用 Telemetry 建立高频基线,用 sFlow 做分布发现,用 IPFIX 做会话下钻,形成“面—线—点”的采集层次。

四、建立性能基线

基线不是一条静态阈值,而是“正常状态下的统计分布”。建议按以下要素定义:观测对象(链路/接口/队列/租户)、指标(带宽利用率、PPS、丢包率、ECN 标记率、时延)、时间粒度(10s/1min/5min)、统计窗口(至少 7 天,覆盖工作日与周末)、分位值(P50/P95/P99)。

以一条 100G 上联链路为例,假设连续 7 天采集到的 1 分钟利用率分布为:P50 = 32%,P95 = 61%,P99 = 78%,峰值 88%。则可设定:P95 作为日常水位参考,P99 作为预警线,峰值再加 10% 余量作为扩容触发线。若某天 P95 连续 30 分钟超过 75%,说明流量结构已偏离基线,需要下钻到租户或 VTEP 维度定位来源。

基线应随业务节奏滚动更新。建议每月重算一次,并在重大业务上线、大促、版本发布后单独标注事件窗口,避免把异常期数据混入基线。

五、一个可复用的基线记录表

下表给出可直接填写的基线记录结构,字段均围绕云网络实际观测对象设计,不含无关管理字段。

观测对象 指标 粒度 P50 P95 P99 预警线 扩容触发线
Leaf-1 上联 100G 带宽利用率 1 min 32% 61% 78% 75% 持续 30min 85% 持续 10min
Spine-1 下行口 ECN 标记率 10 s 0.02% 0.15% 0.40% 0.30% 0.60%
租户 T1 东西向 PPS 1 min 120k 310k 450k 400k 520k
边界出口 并发连接数 1 min 18k 42k 55k 50k 65k

六、采集配置要点与验证

以 Arista EOS 为例,sFlow 与 IPFIX 的典型配置如下,采样率与导出周期需按链路速率调整:

! sFlow 采样
sflow sample 2000
sflow polling-interval 30
sflow destination 10.20.0.50
sflow source-interface Management1
sflow run

! IPFIX 流导出
flow tracking sampled
  sample 1000
  exporter ipfix 10.20.0.50 port 4739
  record format ipfix
!
interface Ethernet1
  flow tracker sampled

配置完成后需要验证三件事:一是采集器是否收到记录,可用 show sflow 与 show flow tracking 查看导出计数;二是采样率是否与链路速率匹配,100G 链路建议 1:2000~1:4000,避免采集器过载;三是基线数据是否连续,若出现断点,应检查 Telemetry 订阅是否中断或采集器磁盘是否写满。

采样率过高会导致采集器 CPU 与磁盘压力骤增,采样率过低则小流被完全漏掉。建议先在单条链路试运行 24 小时,观察采集器负载与记录量,再推广到全网。

把流量矩阵、方向识别、基线三者串起来,容量规划就有了可量化的依据:矩阵告诉你流量在哪里,方向识别告诉你该优化哪一类路径,基线告诉你什么时候该动手。下一阶段的所有优化动作,都应能回溯到这三类数据中的至少一项。