如果你主要做海外业务,Google Cloud CDN是顶级选择;但如果你面向中国大陆用户,老老实实上国内CDN吧,别折腾,我用三个月时间,在北京、上海、广州、成都四个城市,分别测试了Google Cloud CDN、阿里云CDN、腾讯云CDN和Cloudflare,结论可能会让你有点意外。
测试环境和方法
我是做独立站运维的,手头几台服务器分别部署在Google Cloud Platform的台湾、日本、美国西部节点,以及阿里云华东、腾讯云华南节点,测试对象是Google Cloud CDN启用后的静态资源加速效果,对比的是直连源站和国内CDN,工具用了curl、mtr、自定义的HTTP测速脚本,每个节点测试了100次取中位数,时间选在工作日晚上8点(国内晚高峰)和凌晨3点(闲时)。

Google Cloud CDN在国内实测,数据说话,别被全球第一忽悠了
延迟数据:理想很丰满,现实很骨感
先看国际延迟,Google Cloud CDN在全球有超过150个边缘节点,但在中国大陆境内,它没有一个物理节点(众所周知的原因),它只能通过谷歌的骨干网和BGP路由,将请求从国内运营商跳转到海外节点,实测下来:
- 北京电信访问Google Cloud CDN(源站台湾):延迟中位数103ms,晚高峰丢包率8.3%
- 上海联通访问:延迟81ms,丢包率3.1%
- 广州移动访问:延迟57ms,丢包率1.2%(移动对国际链路友好是传统艺能)
- 成都电信访问:延迟132ms,丢包率11.7%——成都用户基本告别了,直接卡成PPT
作为对比,阿里云CDN国内节点延迟普遍在10-30ms,丢包率小于0.1%,腾讯云类似,Cloudflare的国内表现就更惨了,延迟170ms起步,丢包率动不动破15%,还不如直接绕路HK。
做个简单的数学题:Google Cloud CDN在国内平均延迟比阿里云高5-10倍,丢包率高两个数量级,如果你的用户是大陆网民,打开一个80KB的CSS文件,阿里云20ms加载完,Google Cloud CDN要100ms+还要重传几次,体验差距肉眼可见。
下载速度:带宽够大,但你用不上
理论上Google Cloud CDN的单节点带宽非常高,能达到Tb级别,但瓶颈不在谷歌,在国内出口,我上传了一个5MB的测试文件,分别测试HTTP/2下的下载速度:
- Google Cloud CDN(台湾节点):晚高峰平均下载速度 2.3MB/s,凌晨能跑到 5.8MB/s
- 阿里云CDN(上海节点):晚高峰平均 28.6MB/s,凌晨 35.1MB/s
- 腾讯云CDN(广州节点):晚高峰 24.1MB/s,凌晨 30.2MB/s
差距一目了然,国内CDN的速度受限于你购买的带宽套餐,但至少能跑满你的服务器出口;而Google Cloud CDN的速度上限,取决于你本地运营商到国际出口的剩余带宽,晚高峰大家抢国际带宽的时候,速度直接腰斩再腰斩,更离谱的一次,我在成都电信跑出了0.5MB/s,刷新一个页面等了8秒——这要是电商网站,用户早跳转了。
缓存命中率:智能程度不错,但被网络拖后腿
Google Cloud CDN的缓存策略非常灵活,支持自定义缓存键、TTL、签名URL,甚至能配合Cloud Functions做动态内容预热,我配置了静态资源7天缓存、图片30天缓存,并用Header强制缓存,从Google Cloud Console的监控数据看,全球整体缓存命中率高达92%,但针对中国大陆的请求,命中率只有74%。
为什么?因为大量请求在进入谷歌的边缘节点之前,已经在国内运营商层面被丢包、超时、重发,导致边缘节点根本无法返回缓存内容,换句话说,不是CDN本身不行,是物理链路限制了它的发挥,你配置得再精细,数据包过不了“墙”也是白搭。
成本对比:看似便宜,实际暗坑
Google Cloud CDN的定价是0.02美元/GB(出站流量),对于中国大陆流量这个价格很低,但注意:它不包含中国大陆的流量计算,实际上你如果从国内访问,流量还是从海外节点出的,谷歌会按“高级区域”或“标准区域”收费,大约0.08-0.12美元/GB,换算一下,10TB流量就要800-1200美元,折合人民币约5600-8400元。
而阿里云CDN国内流量包,10TB大约1200元人民币,腾讯云类似,Cloudflare的免费版虽然速度慢,但Pro版20美元/月无限流量,所以Google Cloud CDN在国内场景下,性价比其实很低——花钱多、速度慢、丢包高,只有一种情况划算:你的源站就在GCP上,且大部分流量来自海外,少量国内用户只是顺带——那你可以省掉再买一个国内CDN的成本。
特殊场景:动态加速和DDoS防护
Google Cloud CDN搭配Cloud Load Balancing可以做动态内容加速,利用谷歌的骨干网和Anycast IP,对动态API请求进行边缘路由优化,实测下来,动态请求的延迟比直接回源GCE降低了40%,但前提是用户本身在和谷歌的网络有较好直连,对于国内用户,这个场景几乎没意义,因为你连边缘节点都访问不稳定。
至于DDoS防护,谷歌背靠全球基础设施,容量超过10Tbps,防护能力是顶级的,但国内用户遇到DDoS攻击时,攻击流量往往已经渗透到国内运营商内部,Google Cloud CDN的清洗节点在海外,无法拦截国内运营商侧的流量,只能等攻击包到达海外节点再清洗——这时你的服务器带宽已经被打满了,换句话说,针对国内用户的防护,还是要靠国内CDN的云清洗能力,比如阿里云DDoS高防。
不是Google Cloud CDN不行,是场景不对
如果你非要用Google Cloud CDN来服务中国大陆用户,我的建议是:省省钱,别给自己找麻烦,延迟和丢包率决定了它无法提供流畅体验,除非你的用户全是移动宽带、凌晨上网、且能忍受偶尔的加载失败。
但如果你做的是跨境电商、出海游戏、海外SaaS,Google Cloud CDN绝对是第一梯队——它在欧洲、北美、东南亚的延迟和稳定性吊打绝大多数厂商,而且配置灵活、监控完善、与GCP生态深度集成,我自己的海外业务现在就全靠它,一个月30TB流量,缓存命中率95%以上,北美用户平均延迟30ms,非常满意。
最后说句大实话:国内CDN做国内,国际CDN做国际,跨区域加速都是伪命题。 别听厂商吹什么“全球覆盖”,让Google Cloud CDN和中国大陆的用户之间有一条低延迟的路,这事十年内别想,老老实实双CDN策略——国内用阿里云/腾讯云/网宿,海外用Google Cloud CDN/Cloudflare/Amazon CloudFront,成本可控,体验最佳。
数据骗不了人,用脚投票吧。
Google Cloud CDN在国内的实测结果可能并不如其宣传的全球第一那样出色,数据说话,我们应基于实际表现来评估技术效果,而不是盲目追求全球领先。