2. 容量规划基础:容量规划的定义与目标、日志平台容量模型(存储、计算、网络)、容量规划的输入与输出

2.1 容量规划的定义与核心目标

容量规划(Capacity Planning)是确保 IT 资源在满足当前业务负载的同时,能够以可预测的成本和性能水平支撑未来增长的系统性方法。在日志平台场景中,容量规划直接决定了数据写入延迟、查询响应时间以及历史数据的可回溯周期。

核心目标:在“资源过度供应”与“资源不足导致服务降级”之间找到最优平衡点,使日志平台始终运行在健康水位。
目标维度 说明 日志平台关键指标
性能保障 确保写入吞吐与查询延迟满足 SLA 写入 TPS、P99 查询延迟
成本控制 避免过度采购硬件或云资源 每 TB 存储成本、每万条日志写入成本
可扩展性 容量模型支持水平扩展,无单点瓶颈 节点数 vs 吞吐量线性度
数据持久性 满足合规保留周期,防止数据丢失 副本因子、磁盘利用率、冷热数据比例

2.2 日志平台容量模型:存储、计算、网络

日志平台的容量模型可拆解为三个相互耦合的资源域。任何单一维度的瓶颈都会导致整体服务质量下降。

2.2.1 存储容量模型

存储是日志平台最直观的容量约束。模型需考虑原始数据量、压缩比、副本因子以及索引开销。

有效存储容量 = 原始日志量 × (1 / 压缩比) × 副本因子 × (1 + 索引膨胀率)

示例:
原始日志量 = 10 TB/天
压缩比 = 5:1(Gzip)
副本因子 = 2
索引膨胀率 = 15%
有效存储容量 = 10 × (1/5) × 2 × 1.15 = 4.6 TB/天
参数 典型值范围 影响因素
压缩比 3:1 ~ 8:1 日志文本重复度、编码格式(Gzip/Zstd)
副本因子 1 ~ 3 高可用策略、数据恢复时间目标(RTO)
索引膨胀率 10% ~ 30% 字段数量、分词粒度、索引类型(倒排/列存)
日志平台存储容量模型 存储容量模型:输入 → 计算 → 输出 原始日志量 10 TB/天 压缩比 5:1 (Gzip) 副本因子 2 索引膨胀 15% 容量计算引擎 有效存储容量 = 原始量 / 压缩比 × 副本 × (1+膨胀率) 输出:4.6 TB/天

2.2.2 计算容量模型

计算资源主要消耗在数据写入(解析、索引、分词)和查询(聚合、过滤、排序)两个阶段。模型通常以 CPU 核心数和内存大小作为主要约束。

写入所需 CPU = 日志条数/秒 × 单条处理耗时(ms) / 1000
查询所需 CPU = 并发查询数 × 平均查询耗时(ms) / 1000

示例:
写入 50,000 条/秒,单条处理 0.5ms → 25 核
并发查询 20 个,平均耗时 800ms → 16 核
总计算需求 ≈ 41 核(不含系统开销)
容量规划提示:计算容量需预留 20%~30% 的缓冲水位,用于应对突发流量峰值和版本升级期间的资源消耗增加。

2.2.3 网络容量模型

网络带宽决定了数据从采集端到存储节点的传输能力,以及跨节点数据同步的效率。瓶颈通常出现在日志采集 Agent 与 Broker 之间,以及存储节点间的副本同步链路。

网络路径 流量方向 带宽计算公式
采集 → Broker 上行 原始日志量(GB/s) × 网络协议开销(1.1~1.3)
Broker → 存储 上行 压缩后日志量(GB/s) × 副本因子
存储节点间同步 内网 压缩后日志量(GB/s) × (副本因子 - 1)
查询响应 下行 查询结果集大小(MB) × 并发查询数 / 响应时间
日志平台网络流量路径 网络容量模型:流量路径与带宽计算 日志采集 Agent 集群 消息队列 Kafka / Pulsar 存储集群 Elasticsearch / Loki 查询层 API / Kibana 上行 1.2x 上行 ×副本 下行查询 节点间同步 (副本-1)

2.3 容量规划的输入与输出

容量规划不是一次性的估算活动,而是一个持续迭代的闭环流程。清晰的输入与输出定义是保证规划结果可落地、可验证的前提。

2.3.1 输入要素

  • 业务增长预测:未来 6~18 个月的日志量增长率(通常参考历史月环比 + 业务线扩展计划)。
  • SLA 要求:写入延迟上限、查询 P99 响应时间、数据可用性百分比。
  • 数据保留策略:热数据保留天数、温数据保留月数、冷数据归档周期。
  • 版本升级计划:目标版本对资源消耗的变化(如新索引格式、压缩算法变更)。
  • 硬件/云资源清单:现有节点规格、磁盘类型(SSD/HDD)、网络带宽上限。

2.3.2 输出产物

输出项 内容描述 使用场景
容量基线报告 当前各资源域利用率、峰值水位、瓶颈点 日常运维、故障排查
增长预测模型 按时间轴(月/季度)的资源需求曲线 预算编制、采购申请
版本升级影响评估 目标版本对存储/计算/网络的增量需求 升级窗口规划、回滚预案
扩容建议方案 扩容节点数、规格、时间窗口、成本估算 变更执行、架构评审
常见误区:只关注存储容量而忽略计算和网络。日志平台在版本升级后,经常出现因查询语法变更导致 CPU 消耗激增,或副本同步带宽打满引发写入积压。容量规划必须三域联动。

2.4 容量规划闭环:从输入到决策

完整的容量规划流程应形成 PDCA 循环:

  1. Plan(计划):收集输入,建立基线,设定增长模型。
  2. Do(执行):根据规划进行扩容或版本升级。
  3. Check(检查):监控升级后实际资源消耗,对比规划预期。
  4. Act(改进):修正模型参数,更新下一轮规划输入。