第3章 容量规划方法论与常用指标

核心指标速记:TCO(总拥有成本)、有效容量(可用存储空间)、预留比(故障/增长缓冲)、水位线(触发扩容的阈值百分比)、扩容阈值设定(触发扩容的具体数值)。

📐 容量规划回答框架

面试中被问到“如何做容量规划”时,按以下四层递进回答,展示系统思维与指标落地能力。

① 业务模型 ② 容量基线 ③ 预留 & 水位 ④ 扩容策略 业务增长曲线 读写QPS、数据量增速 用户数 & 留存率 有效容量计算 裸容量 × 副本数 × 纠删码 压缩/去重后实际可用 预留 & 水位 预留比 15%~30% 水位线 70%~85% 扩容阈值 触发前7天准备 单次扩容20%~50% 追问:如何预测增长? 追问:压缩率怎么评估? 追问:水位线设多少合理? 追问:扩容触发后多久完成? 加分点:引出实际案例(如某集群从50TB→200TB扩容过程)

📌 面试问答卡片 × 3

Q1 请解释容量规划中的TCO(总拥有成本)包含哪些组成部分?你如何优化TCO?
考察点:成本意识、全链路思考、对存储硬件和运营费用的理解。
回答框架:TCO = 硬件采购 + 电力/散热 + 运维人力 + 软件许可 + 故障替换。优化方向:选择高密度盘、使用纠删码降低副本系数、利用智能温冷分层。
示例回答:“TCO包括硬件、电力、运维和替换成本。我曾在冷数据场景将3副本改为EC(8+2),容量效率从33%提升至80%,同时通过SSD缓存池降低热数据请求延迟,整体TCO降低约35%。”
可能追问:你如何量化OPEX与CAPEX的权衡?能否用一个公式说明?
避坑提醒:不要只谈硬件价格,忽略电力密度和运维成本;避免给出未经校验的粗略估算。
Q2 “有效容量”和“裸容量”有什么区别?请以一个100TB集群为例计算有效容量。
考察点:对纠删码、副本、压缩去重等机制的理解,以及实际计算能力。
回答框架:裸容量=磁盘总大小;有效容量=裸容量 / 副本数(或纠删码系数)× 压缩比。需扣除系统预留、坏盘替换池。
示例回答:“100TB裸容量,3副本则有效容量=100/3≈33TB;若启用EC(4+2) + 1.5x压缩,则有效容量=100×4/6×1.5≈100TB。后者大幅提升利用率。”
可能追问:压缩比1.5x是如何得出的?能不能保证所有数据类型都是这个值?
避坑提醒:避免忽略元数据和索引占用的空间;不要假设压缩比恒定,需说明样本测试。
Q3 容量水位线和扩容阈值怎么设定?线上集群水位接近阈值时你要怎么做?
考察点:风险意识、自动化流程、应急预案设计。
回答框架:水位线=预留比决定;通常设70%~85%告警,90%紧急。扩容阈值=集群剩余容量支撑业务增长N天的量,N建议7~14天。
示例回答:“我们设水位线75%黄牌、85%红牌。扩容阈值:当剩余容量仅支撑10天增长时触发,提前7天启动采购/上架流程,确保3天内扩容完毕。”
可能追问:如果采购周期超过7天怎么办?如何做临时降级或限流?
避坑提醒:不要把水位线设得太紧(如95%),留出搬迁/故障缓冲;避免只谈阈值不谈自动化告警和SLA。

📁 项目案例:快手冷热数据分层存储容量规划

项目名称快手短视频冷热数据分层存储容量规划
业务背景快手月活用户6.5亿,每天新增PB级短视频数据,80%为冷数据。热数据要求毫秒级延迟,冷数据可接受分钟级加载。需要设计合理的分层结构以降低TCO。
规模指标总数据量:200PB(裸容量);日增量:3PB;热节点:800台NVMe SSD;冷节点:3000台SATA HDD;EC(8+2) + 压缩率1.8x。
技术栈Ceph(RADOS + BlueStore)、自研冷热迁移Agent、Kafka + Flink做元数据统计、Prometheus + Grafana监控水位。
核心难点1. 冷热边界模糊:部分数据读写频率波动大;2. 迁移调度不能影响热节点IO;3. 水位动态调节:均衡避免局部热点。
面试高频追问
  • 你用什么指标判断数据冷热?时间窗口 + 最近N次访问时间 + 文件大小?
  • 迁移过程中如果冷节点写满,如何处理反压?
  • 热节点预留比设了多少?为什么是30%而不是15%?
  • 如果扩容周期因供应链延误怎么办?是否有降级策略?
可迁移回答话术“我主导了冷热分层容量模型:按数据年龄3天为热、7天为温、30天为冷。热节点预留比30%(应对突发写入),冷节点15%(成本敏感)。扩容阈值设为剩余容量支撑15天增长,提前10天上报警告。通过Flink实时统计各节点水位,触发迁移或限流。”
💡 案例加分点:提到“我们曾遇到磁盘故障导致单节点水位飙升到92%,通过临时关闭该节点写入并将流量分发到其他节点,撑过了48小时等待新磁盘上架”——体现应急能力。

📊 指标速查表

指标 定义 典型值 面试易错点
TCO 总体拥有成本(硬件+运营+电力+人力) 每TB/年 成本 忽略电力密度和运维成本
有效容量 用户可用的存储空间(扣除副本/EC/压缩后) 裸容量×利用率因子 忘记元数据开销
预留比 保留给故障、迁移、突发写入的缓冲空间 15%~30% 所有节点用同一个比例
水位线 触发告警或扩容的容量阈值 75%黄牌 / 85%红牌 设得太高(>90%)没有缓冲区
扩容阈值 剩余容量可支撑业务增长的天数 7~14天 不考虑采购周期的波动
⚠️ 避坑警语:面试时不要只说“我设了80%水位线”就结束,必须跟出“如何监控、告警、扩容操作流程”。把指标关联到可执行的SOP才是面试官要的答案。