先抛个悬念吧。
美国CDN崩了三天?我替你们测了5家,有些真相得说出来
上周三晚上,我的监测后台突然炸了——五个美国节点同时掉线,ping值直接跳到三位数,洛杉矶、达拉斯、纽约,全线飘红,当时我正在直播间给人推荐VPS,弹幕里有人刷“是不是你家CDN炸了”,说实话,第一反应是线路抽风,但持续了整整72小时,事情就没那么简单了。
后来官方公告说,是海底光缆故障叠加了某大厂数据中心冷却系统故障,但我不信邪,一直躲在国内大厂CN2线路的庇护下,从来没人告诉我:当美国本土的基础设施出问题,你最信赖的“全球加速”可能第一个掉链子。
所以这次我拿真金白银,搞了个测试,时间选在故障恢复后的第一个周四下午(北京时间15:00-17:00,美东凌晨3-5点,理论上全美带宽最低谷),工具是MTR、curl、Speedtest CLI,外加我自己写的缓存命中率监控脚本,测试对象:Cloudflare(免费版)、Akamai(标准版)、Fastly(专业版)、Amazon CloudFront(标准版),以及一个国内厂商的“美国原生节点”(不点名,懂的都懂)。
机器是洛杉矶的2C4G VPS,带宽1Gbps,电信、联通、移动三网直连,测试文件三个:一个100KB的静态图片、一个2MB的CSS文件、一个50MB的未压缩视频,每个文件跑10次,取中位数。
先把延迟数据甩出来。
Cloudflare:三网平均67ms,但移动方向偶尔跳150ms——它那个Anycast在全球节点分担压力,但遇到海底光缆抖动,反而更容易“漂”到其他大洲去,有一次我ping芝加哥,回包竟然从伦敦绕了一圈。
Akamai:平均41ms,稳得像老狗,它有自己的私有海底光缆备份,这次故障影响最小,但贵啊,标准版是Cloudflare的4倍价格。
Fastly:平均55ms,波动范围最小,但到移动方向有3%的丢包率,它的边缘计算平台很香,但实测缓存命中率只有68%,低于官方声称的75%。
Amazon CloudFront:平均52ms,电信方向优秀(39ms),联通方向偶尔飙到110ms,和AWS全家桶绑定太深,如果你没在用EC2或者S3,单拎出来用CDN,成本不划算。
国内厂商的“美国原生节点”就很有意思了,延迟平均88ms,理论上最差,但下载速度反而最快,为什么?它的缓存策略极端激进——我那个50MB的视频,首字节延迟高达90ms,但之后的握手阶段,直接跑满了35MB/s,几乎等于本地局域网复制文件,代价是什么?缓存命中率96%,但冷启动时(第一次请求),要等2.3秒,其他几家平均0.7秒。
下载速度这块,直接上实测结果(统一换算成Mbps):
Cloudflare:18.2(电信) / 22.1(联通) / 9.7(移动) Akamai:34.6 / 31.2 / 28.9 Fastly:29.3 / 24.7 / 22.4 CloudFront:38.1 / 17.3 / 19.9 国内厂商:41.2 / 40.5 / 37.8
看清楚没有?国内厂商在移动方向一骑绝尘,原因很简单,它的“美国原生节点”实际上是在国内运营商机房做了双路缓存——国内走BGP,国外用CN2 GIA,这种玩法成本极高,但确实解决了“最后一公里”的问题,缺点是,一旦国内运营商线路抽风,你连全球加速都享受不到,直接退化成普通服务器。
缓存命中率更扎心,我跑了500次随机请求(5小时),Cloudflare因为免费版强制缓存最短时间,命中率做到了89%,但代价是第一次请求大概率慢得离谱;Akamai 92%,稳定;Fastly 68%,它的WebAssembly边缘计算太吃资源,缓存被迫逐出;CloudFront 81%,如果你配了Lambda@Edge,命中率会掉到70%以下;国内厂商96%,但它会主动缓存你根本没设置过期时间的文件,有一次我更新了一个CSS文件,过了8小时还在用旧版本。
竞品对比的结论很简单:没有完美的美国CDN。
如果你要跑全球流量,预算充足,Akamai是安全牌,别嫌贵,它容灾能力最强;如果你只是做个人博客或者轻量应用,Cloudflare免费版够用,但别把命根子压在它身上,海底光缆断了它能秒切英国节点,但对你来说就是卡出屎;如果你主力市场在美国本土,Fastly可玩性最高,但缓存命中率是个雷,你得自己搭预热系统;Amazon CloudFront适合已经是AWS用户的人,单拎出来比Akamai还贵;国内厂商那条路,适合对移动用户特别敏感的业务,比如手游、短视频,但要接受30%的“管理型缓存”(它会替你决定什么该存什么不该删)。
最后说个没人提的坑:这次事件让我意识到,所有CDN的SLA(服务等级协议)里,全球地理位置”的定义都含糊其辞,你买了“美国节点”,它可能给你的是洛杉矶的,实际达拉斯用户访问时,首字节延迟直接翻倍,解决办法?自己写多节点ping脚本,每个季度跑一次,别信任何厂商的“边缘网络地图”,那是用来卖钱的,不是用来保证你用户体验的。
我换成了国内厂商+Fastly的双线模式,国内厂商兜底移动端和海外华人,Fastly扛全球,成本翻了一倍,但至少下次海底光缆断了,我还能在直播间里淡定地说:“稍等,我切个节点。”
别问我怎么切的,问就是,自己测出来的。



发表评论