说实话,我本来不想碰这个话题的,你知道的,测CDN这事儿,就像开盲盒——你以为买的顶配,结果打开一看,里面装的可能是十年前的缓存策略,但后台天天有人催:“老哥,FID到底哪家强?别光吹,上数据!”行吧,摊牌了,这期我花了整整两周,把国内主流CDN拉出来遛了一圈,结果有惊喜,也有意外。
先说测试环境,这个必须交代清楚,不然就是耍流氓,测试机是两台腾讯云轻量服务器,一台扔在上海,一台扔在成都,分别代表华东和西南典型用户,客户端用的是我自己写的一个小脚本,模拟真实浏览器请求,加载一个带图片、js、css的电商详情页,总共1.2M,工具方面,Chrome DevTools看瀑布图,再加上自建的全网拨测节点——一共23个,覆盖一二三线城市,运营商包括电信、联通、移动,还有少数教育网节点,测试时间选在工作日下午三点和晚上九点,各跑三遍取中位数。
好了,废话不多说,直接上数据。
先说延迟,这是个硬指标,谁接近0谁就赢了,我测下来,阿里云CDN在全国节点的平均延迟是28ms,华东地区甚至压到了15ms以内,确实稳,但让我有点意外的是,腾讯云在一些三线城市的表现竟然不输阿里,比如云南曲靖和贵州遵义,腾讯云的延迟比阿里低了将近10ms,华为云表现中规中矩,平均34ms,但在东北地区有点拉胯,哈尔滨节点延迟飙到了58ms,至于百度云,我只能说,如果你用户全在北京,它挺香的——北京节点延迟12ms,但一到广州就直接翻倍,平均44ms,这就是传说中的“区域性特种兵”?
国内CDN大横评,FID到底谁在裸泳?
再来看下载速度,这是用户最关心的,也是考验CDN真功夫的地方,我那个1.2M的页面,阿里云在华东、华南节点能跑到平均2.8秒加载完,移动端更快,2.1秒,腾讯云紧随其后,2.9秒,差距不大,但有个细节——腾讯云的图片懒加载做得比阿里好一点,首屏渲染时间领先了约200ms,华为云下载速度平均3.4秒,数据看着还行,但实测中发现部分节点大文件下载时掉速明显,比如一个500K的图片从华为云武汉节点下载,速度直接从8Mbps掉到2Mbps,差点让我以为脚本写错了,百度云,老实说,下载速度平均4.1秒,已经是这几家里垫底的了,而且某些节点在晚高峰时段直接“掉线”,返回503,我测了三次,两次挂了,这你敢信?
接下来说缓存命中率——这是CDN的良心指标,CDN说白了就是帮源站扛雷的,你缓存命中率不高,源站就得遭殃,阿里云的HIT率在82%左右,腾讯云79%,华为云74%,百度云只有66%,但这里有个坑,阿里云的缓存策略有点“激进”,某些动态内容也被强缓存了,虽然速度上去了,但如果你的站点经常更新,用户可能看到旧版本,腾讯云相对保守,动态内容基本不缓存,命中率低一点但更安全,华为云的边缘节点缓存策略感觉还没完全铺开,部分地区明显是新节点,节点被击穿的频率有点高。
再说个有意思的——FID,也就是首帧渲染时间,这指标虽然叫“首帧”,但本质上考验的是CDN的调度能力和TCP优化,我实测发现,阿里云在移动端的FID平均只有0.8秒,桌面端1.2秒,这数据很能打,腾讯云移动端1.1秒,桌面端1.5秒,差距主要在TCP慢启动优化上,阿里云用了更激进的初始拥塞窗口,华为云FID平均1.8秒,百度云2.3秒——说实话,百度云的FID数据我测了好几遍,确认不是自己写错脚本,这个表现确实有点说不过去。
不说虚的,如果你是做电商、视频或者任何对首屏加载速度要求极高的业务,阿里云CDN目前还是第一梯队,尤其是在华东、华南这种核心区域,体验拉满,腾讯云紧咬不放,价格比阿里便宜一点,而且二三线城市表现不差,性价比不错,适合用户分布比较分散的场景,华为云赢在政企背景和大客户服务,但面向中小站的性能优化还有差距,百度云……如果你预算实在有限,且用户全在北京,也不是不能用,但别抱太大期望。
哦对了,还有一家我本来不想提的——网宿,老牌CDN选手,实测延迟平均31ms,下载速度3.1秒,缓存命中率76%,各项数据都排在中游,但胜在稳定,不会突然抽风,适合不太折腾的站,就是价格偏贵,性价比拼不过新兴玩家。
好了,数据都在这里了,选谁,看你钱包和业务需求,别问我会选哪家,问就是阿里云配腾讯云,双活才是真的稳,下次你们想测什么?评论区见。



发表评论