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 延迟与资源利用率之间的动态关联。
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 网络接口的优化实践:
- 需求分析: 明确业务负载的 QPS 目标、P99 延迟 SLA 和资源预算。
- 基线测量: 在现有配置下测量 QPS、P99 延迟和资源利用率。
- 瓶颈定位: 通过 profiling 和监控工具识别网络接口配置中的瓶颈。
- 配置优化: 调整 Cilium 网络接口参数(如 ring buffer、MTU、Conntrack 大小)。
- 验证与迭代: 在测试环境中验证优化效果,确认未引入新的问题。
- 持续监控: 建立容量监控仪表盘,设置告警阈值,定期复盘。
以下 SVG 图展示了容量规划在 Cilium 网络接口配置优化中的完整闭环流程: