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 均衡度,南北向关注出口带宽峰值与并发连接数。
三、三种采集手段的定位与配合
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 订阅是否中断或采集器磁盘是否写满。
把流量矩阵、方向识别、基线三者串起来,容量规划就有了可量化的依据:矩阵告诉你流量在哪里,方向识别告诉你该优化哪一类路径,基线告诉你什么时候该动手。下一阶段的所有优化动作,都应能回溯到这三类数据中的至少一项。