CDN 边缘节点通过缓存对象和回源获取的组合来提供流量。其网络必须同时支持正常交付以及部署、失效或故障后出现的不利状态。仅按高稳态缓存命中率来规划容量,可能导致缓存冷启动时源站路径或服务器容量不足。
区分请求数与字节数
请求命中率描述有多少请求由缓存提供。字节命中率描述有多少交付数据来自缓存。当对象大小差异较大时,两者可能相差悬殊。应使用与容量计算相匹配的指标。
对于一个说明性的简化模型,假设客户端交付量为 100 Gb/s,字节命中率为 85%。忽略协议开销、重新验证和其他流量,大约需要从源站获取 15 Gb/s。如果字节命中率降至 40%,相应的估算值变为 60 Gb/s。这些是规划计算,并非对特定 CDN 产品的预测。
对异常状态建模
| 状态 | 需考察的容量或行为 |
|---|---|
| 缓存热 | 客户端交付、存储读取和稳态源站流量 |
| 缓存冷 | 源站获取容量和并发对象创建 |
| 大规模失效 | 突发未命中及对上游服务的保护 |
| 节点丢失 | 流量转移到剩余节点及缓存局部性变化 |
| 源站受损 | 允许的新鲜度行为及用户可见错误 |
HTTP 缓存规则决定存储的响应能否被重用。必须遵守新鲜度、验证以及请求/响应指令;网络容量目标并不授权从共享缓存提供私有或其他不适宜的内容。R33
服务器与网络协同规划
将面向客户端和面向源站的流量映射到网卡、交换机端口、上联以及任何安全或负载均衡系统。包括实际的服务器存储和处理路径。100G 接口并不能证明节点在所选对象组合和连接行为下能够维持 100 Gb/s 的有效对象交付。
测量具有服务代表性的并发数、对象大小分布和交付特征。在加密连接处理和缓存管理工作影响系统时,应使其保持可见。
将弹性定义为剩余服务容量
在一个节点或上联故障后,计算分配给幸存节点的流量。考虑替换节点启动时缓存是热还是冷。一个缓存为空的额外服务器在提升交付容量之前,可能先增加源站需求。
使用适合应用的速率控制和上线流程,使恢复事件不会压垮上游服务。这些控制属于运营设计,而不仅仅是交换机采购规格。
用服务负载进行验证
分别测试热和冷条件,并将对象语料库、并发数、缓存策略和网络拓扑与结果一同保留。将破坏性吞吐量测试与生产环境隔离;实验室基准测试指南不应不加批判地应用于现网。R46R47
最终设计应将缓存假设与节点数量、源站容量、上联预算和恢复流程联系起来。有用的咨询应包括交付需求、字节命中行为、对象组合、源站约束以及必须保持可服务的故障状态。
配套工程示意图
以下配图用于说明本篇设计思路,图中英文术语可结合文末释义阅读;不代表实测结果、认证配置或随货清单。
专业术语说明
- 字节命中率byte hit ratio
- 缓存提供的交付数据量占总交付数据量的比例。与请求命中率不同,当对象大小差异大时两者可能显著不同,容量规划应使用与计算匹配的指标。
- 请求命中率request hit ratio
- 由缓存直接响应的请求数量占总请求数量的比例。它反映请求层面的缓存效率,但不直接等同于字节层面的交付节省。
- 缓存冷cold cache
- 缓存中缺少所需对象或缓存刚启动、被清空的状态。此时大量请求需回源获取,源站获取容量和并发对象创建成为规划重点。
- 缓存热warm cache
- 缓存中已存有常用对象、命中率较高的状态。此时主要考察客户端交付、存储读取和稳态源站流量,是正常运行的参考状态。
- 失效invalidation
- 使缓存中已存储对象不再有效、必须重新获取的过程。大规模失效会导致突发未命中,需保护上游服务不被回源流量压垮。
- 新鲜度freshness
- HTTP 缓存中判断已存储响应是否仍可直接重用的属性。源站受损时,允许的新鲜度行为会影响用户可见错误和回源压力。
- 重新验证revalidation
- 缓存向源站确认已存储响应是否仍然有效的过程。它会产生额外流量,在容量估算中若忽略可能导致源站路径规划偏小。
延伸阅读
资料来源
资料核对:
参数、兼容性与操作步骤应结合文中引用资料、完整型号及实际软件版本核对。配图为工程示意。


