Eliminating Cold Starts 2: shard and conquer
8 months ago
- #Cloudflare
- #Performance
- #Serverless
- Cloudflare引入了一项在TLS握手期间预热Worker的技术以消除冷启动
- Worker已进化到能处理更复杂的应用,导致冷启动时间超过TLS握手时长
- Cloudflare采用一致性哈希环部署了'Worker分片'技术,通过将请求路由至现有Worker来减少冷启动
- 冷启动包含获取、编译和初始化Worker脚本,这些过程已变得愈发耗时
- Worker分片通过将请求合并到更少实例来优化内存使用并降低驱逐率
- 负载脱落技术确保过载Worker能优雅处理请求而不报错
- 采用Cap'n Proto RPC实现高效的跨实例通信及嵌套Worker调用处理
- Worker分片使全局驱逐率降低10倍,热请求率从99.9%提升至99.99%
- 流量的幂律分布意味着只需对少量请求分片即可显著提升效率
- 未来目标包括进一步降低冷启动率以实现热请求率五个9的可靠性