存储容量估算

存储估算按数据量、副本系数、索引与日志开销、增长速率综合计算,并预留归档与备份空间;增长率与保留策略决定何时需要扩容或归档。

存储估算怎么算

存储估算不能只算裸数据:要按“单条记录大小 × 日增量 × 保留天数”得到原始量,再乘上索引开销系数、副本数与预留余量,另外单独计入备份副本、日志与临时空间(排序、临时表、批量导入)。算完之后,用增长速率推算容量耗尽时间点,与扩容或归档的前置周期对齐,才能提前排期而不是事后救火。

基本信息

输入单条记录字节日均增量、保留策略、索引与副本系数
系数索引与副本通常使实际占用达到裸数据的一倍以上,需实测校准
另计备份副本、WAL 与日志、临时空间、碎片与膨胀
输出容量曲线与耗尽时间点,以及归档或扩容的时间表

典型使用场景

  • 新业务上线前评估:确定初始存储规格与采购周期
  • 数据库扩容排期:按增长曲线推算何时需要扩容磁盘或分片
  • 日志与追踪数据:按采样率、单条大小与保留天数估算成本
  • 归档策略设计:比较热存储与冷归档的单位成本与访问延迟
  • 大促与活动准备:为临时数据与批量导入预留额外空间

估算样例

估算样例
订单表:单条 1KB × 日增 200 万条 = 2GB/天(裸数据)
索引系数 1.5、副本 2 → 实占约 2 × 1.5 × 2 = 6GB/天
保留 180 天热数据 ≈ 1.1TB;压缩归档后冷区约降至 1/3
再预留 20% 余量应对批处理、临时表与碎片

容易被漏算的科目

科目常见倍数或量级漏算后果
索引开销按实测常在 1.2~2 倍之间磁盘提前写满
副本按副本数成倍增加冗余与容灾需求无法满足
备份与保留策略相关,常与主数据同量级备份空间不足,备份任务失败
临时与日志按批量任务规模波动,可达平时的数倍批处理期间磁盘打满导致任务中断
碎片与水位通常预留 10%~20%可用空间不足,扩容频繁

使用要点

  • 用实测校准系数:导出样本数据对比实际存储占用,别只用理论值
  • 把日志、备份与临时空间纳入总量
  • 设容量水位告警(如 70%),按增长率推算扩容时间点
  • 预留要覆盖扩容前置期:采购、审批与数据迁移都需要时间
  • 定期复核估算与实际占用,偏差大时更新系数与曲线
索引与副本的系数不可忽略:实测口径通常比裸数据大一倍以上,按实测校准比按经验倍数更可靠。
磁盘写满会影响数据库可用性而非仅仅写入失败:多数数据库在无法写入 WAL 或临时空间时会拒绝服务,容量水位必须提前告警而不是等到写满。

易错点

  • 只算裸数据,忽略索引与副本开销,导致提前写满
  • 无增长监控,扩容总是事后处理,紧急扩容成本与风险都更高
  • 忽略备份与日志空间,备份任务因空间不足长期失败且无人发现
  • 临时空间按日常规模预留,批量任务与排序操作把磁盘打满
  • 预留未覆盖采购与审批周期,容量计划与实际到货时间错位

数据来源与参考

  • 《数据密集型应用系统设计》(Kleppmann)
  • AWS Well-Architected Framework:Performance Efficiency
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌