1. 容量规划基础:定义、目标与核心指标

在深入 Cilium 网络接口配置优化之前,必须建立统一的容量规划认知框架。容量规划不是一次性的性能测试,而是贯穿系统全生命周期的动态管理过程,其核心在于回答三个问题:当前系统能承载多少负载?、未来需要多少资源?、如何以最低成本满足服务质量要求?

1.1 容量规划的定义与目标

容量规划(Capacity Planning)是指通过系统化的方法,预测、监控和调整 IT 资源,使其在满足业务负载需求的同时,保持可接受的服务质量与资源效率。在 Kubernetes 网络场景下,容量规划的对象包括节点带宽、Pod 网络接口、eBPF 程序处理能力、Cilium Agent 内存与 CPU 开销等。

维度 定义 在 Cilium 网络中的体现
资源供给 确保硬件/软件资源足以支撑峰值负载 节点带宽、CPU 核数、内存大小、eBPF Map 容量
服务质量 在负载波动下维持稳定的延迟与吞吐 P99 延迟、连接建立速率、丢包率
成本效率 避免过度配置,实现资源利用率最大化 Pod 密度、网络接口复用、eBPF 程序共享
可扩展性 系统能够平滑扩展以应对增长 节点数、Service 数、Endpoint 数、策略规则数
关键认知:容量规划的目标不是“跑得更快”,而是“在给定的成本与质量约束下,找到最优的资源配比”。Cilium 的 eBPF 技术虽然高效,但错误的接口配置(如过大的 ring buffer、过多的并发连接跟踪条目)同样会导致资源浪费或性能瓶颈。

1.2 核心指标:QPS、P99 延迟与资源利用率

容量规划依赖三个黄金指标,它们共同构成了评估网络接口配置是否合理的量化基础。

1.2.1 QPS(每秒查询数)

QPS 衡量系统处理请求的速率,是容量规划中最直观的吞吐指标。在 Cilium 网络场景中,QPS 可以细分为:

  • Pod 到 Pod QPS: 经过 Cilium eBPF 转发的数据包处理速率。
  • Service 转发 QPS: 通过 Cilium 实现的 kube-proxy 替代模式的请求转发速率。
  • 策略匹配 QPS: 网络策略(NetworkPolicy)规则匹配与执行的速率。

1.2.2 P99 延迟

P99 延迟表示 99% 的请求在某个时间阈值内完成,是衡量服务质量稳定性的关键指标。网络接口配置对延迟的影响体现在:

  • eBPF 程序执行时间: 每个数据包经过的 eBPF 钩子函数数量与复杂度。
  • Ring Buffer 大小: 过小的 ring buffer 会导致数据包丢失和重传,增加尾部延迟。
  • 连接跟踪表(Conntrack)大小: 表满时的新建连接会触发 GC 或丢包,造成延迟抖动。

1.2.3 资源利用率

资源利用率反映系统资源的消耗程度,是容量规划中成本效率的直接体现。关键资源包括:

资源类型 监控指标 容量规划阈值参考
CPU Cilium Agent CPU 使用率、eBPF 程序 CPU 开销 长期平均 < 60%,峰值 < 80%
内存 Cilium Agent RSS、eBPF Map 内存占用 预留 20% 余量,避免 OOM
网络带宽 节点网卡吞吐量、Pod 网络接口带宽 峰值利用率 < 70% 以避免拥塞
eBPF Map Conntrack 表、路由表、策略表条目数 不超过最大容量的 80%
容量规划黄金法则:QPS 决定吞吐上限,P99 延迟决定服务质量,资源利用率决定成本效率。三者必须联合评估,任何单一指标的优化都可能牺牲其他指标。例如,盲目增大 ring buffer 虽然能降低短期丢包率,但会显著增加内存占用和 P99 延迟。

1.3 三指标联动关系

三个核心指标并非独立存在,它们之间存在典型的权衡关系。以下 SVG 图展示了在 Cilium 网络接口配置场景下,QPS、P99 延迟与资源利用率之间的动态关联。

容量规划三指标联动关系(Cilium 网络场景) QPS(吞吐量) 每秒请求处理数 P99 延迟 尾部请求响应时间 资源利用率 CPU/内存/带宽消耗 三指标权衡关系 • QPS ↑ → 资源利用率 ↑ → P99 延迟可能 ↑(资源争抢) • 资源利用率 ↑ → 成本效率 ↑,但超过阈值后 P99 延迟急剧恶化 • 优化目标:在目标 P99 延迟约束下,最大化 QPS 并保持合理资源利用率

1.4 容量规划在 Cilium 网络中的特殊考量

与传统网络方案不同,Cilium 基于 eBPF 的实现引入了新的容量规划维度:

  • eBPF 程序复杂度: 每个数据包经过的 eBPF 指令数直接影响 CPU 开销和延迟。
  • Map 大小与 GC 策略: Conntrack Map、Policy Map 等的大小需要根据 Pod 数量和连接数精确规划。
  • Agent 资源开销: Cilium Agent 本身需要 CPU 和内存来管理 eBPF 程序、同步状态。
  • 接口配置参数: 如 mtu、ring-buffer-size、tcp-keepalive 等直接影响网络性能。
常见误区:很多团队只关注节点带宽利用率,却忽略了 eBPF Map 的内存占用和 Agent 的 CPU 开销。在 Pod 密度较高的集群中,eBPF Map 的内存消耗可能成为首要瓶颈,而非网络带宽。

1.5 容量规划流程

一个完整的容量规划流程包含以下步骤,后续章节将围绕这些步骤展开 Cilium 网络接口的优化实践:

  1. 需求分析: 明确业务负载的 QPS 目标、P99 延迟 SLA 和资源预算。
  2. 基线测量: 在现有配置下测量 QPS、P99 延迟和资源利用率。
  3. 瓶颈定位: 通过 profiling 和监控工具识别网络接口配置中的瓶颈。
  4. 配置优化: 调整 Cilium 网络接口参数(如 ring buffer、MTU、Conntrack 大小)。
  5. 验证与迭代: 在测试环境中验证优化效果,确认未引入新的问题。
  6. 持续监控: 建立容量监控仪表盘,设置告警阈值,定期复盘。

以下 SVG 图展示了容量规划在 Cilium 网络接口配置优化中的完整闭环流程:

Cilium 网络接口容量规划闭环流程 1. 需求分析 2. 基线测量 3. 瓶颈定位 4. 配置优化 5. 验证迭代 6. 持续监控 持续反馈与迭代优化

1.6 本章小结