全球CDN节点测试的核心目标, 实际上就只有三个比较关键的方面, 分别是需要来验证节点覆盖情况到底达不达标、通过实际测量来看延迟表现是否处于可以接受的范围内, 以及确认回源链路运行的状态是否能够保持稳定。

这里所提供的操作流程属于可以直接拿来执行的内容, 使用者不需要再去查阅其他的补充资料或者额外信息了。

测试前:明确节点选址标准

CDN节点的选址工作, 它主要是遵循这样一个原则, 那就是要把用户的分布情况放在最优先的位置, 然后才是把骨干网的交汇点作为次一级的考虑因素。具体的操作流程是这样的。

统计目标用户的地理分布情况, 例如东南亚地区占比达到百分之四十、北美地区占百分之三十、欧洲地区占百分之二十、国内地区占百分之十, 然后按照这些具体的比例来配置各个区域的节点数量。

在进行选择的时候, 要把目光聚集在那些处于第一梯度的运营商所拥有的骨干网络相互交汇的城市上。这些城市包括了大家熟知的新加坡、位于德国的法兰克福、在美国的弗吉尼亚、日本的东京, 以及中国的重要枢纽上海等方面。

在边缘区域, 例如非洲以及南美洲, 我们至少需要保留一个POP点, 这样做的目的是为了不让回源过程出现超过两次的绕路情况。

在选址的这个环节完成之后, 就把节点清单按照区域来进行分组处理, 把它当作是之后的测速工作所需要使用的那一个基准。

测试中:延迟与带宽实测方法

1. 进行延迟测试, 其中包括Ping动作以及TCP协议握手过程。

在每个节点部署测试探针, 请求从各区域的典型客户端IP发起。我们记录三项具体的指标, 也就是ICMP Ping延迟、TCP SYN-ACK延迟以及HTTP TTFB首字节时间。

对于合格的判断标准有明确要求, 在同区域之内延迟必须少于30ms, 跨区域的情况下延迟必须少于150ms, 至于TTFB则需要小于200ms。

2. 带宽与吞吐测试

请运用 iperf3 或者 JMeter 这样的工具, 向指定的节点去发起并发的下载操作, 具体的要求是并发数为100, 并且每一个连接的速度都设定为10Mbps, 这个测试过程要持续执行60秒的时间。

全球CDN节点测试怎么搞?选址、测速、调优全流程一次说清(图1)

在这个过程中, 你需要重点去关注三个方面的问题: 第一个方面是要看实际达到的吞吐量有没有能够满足线路标称值的90%以上龙南市就业服务平台,第二个方面是要看抖动的数值是不是小于5ms, 第三个方面则是要去看丢包率是不是也小于0.1%。

3. 回源链路测试

模拟出源站发生故障的场景以后, 我们来测量一下从当前点到备用源站之间切换所需耗费的时间, 这个时间要求是要小于两秒的, 同时我们还需要测量在切换过程中回源带宽占用所达到的峰值是多少。

4. 工具选择

可以选择使用市面上存在的开源解决方案, 比如提到过的pingbench或者check_http, 也可以选取商业化的探针服务, 这种服务内容涵盖了许多云厂商提供的全球拨测平台。

如果遇到需要一站式执行针对全球CDN节点的测试工作并生成可视化报告的需求, 那么可以参考gz88.cn网站所提供的拨测接口功能, 该接口支持按照指定区域和协议进行批量测试操作, 并最终能够将测试结果以CSV格式数据导出。

测试后:判定与调优

针对延迟超标的那些节点, 我们需要进行检查动作, 看看这些节点是不是位于服务提供网络的末尾部分, 如果在末尾的话, 就要考虑把它们从原来的位置移动到核心网络里面去提供服务的地方。

丢包的情况集中在某一些特定的时间范围内。你需要和上游的运营商去确认他们的服务质量策略是怎么设定的。如果确实有必要的情况, 就马上把接入方式切换成由BGP提供多线路支持的接入模式。

回源出现了超时的状况, 因此增加了Anycast架构的节点, 以此来缩短回源的跳数。

在每一轮测试过程中生成基线报告, 然后在之后的时间内每个月进行复查一次操作, 通过对比数据的变化趋势来做出关于链路是不是出现退化的判断。

常见疑难速查

现象 最可能原因 处理动作
某节点Ping正常但HTTP 502 回源端口未放行/源站宕机 检查回源白名单与源站状态
晚高峰延迟突增 本地ISP拥塞 切换至备用ISP或增加本地POP
证书校验失败 节点证书过期 批量刷新证书全球CDN节点测试全球CDN节点测试,设置30天自动轮换

根据上述流程执行一轮完整测试, 这样就能覆盖到节点覆盖度这一条线, 也能覆盖到链路质量这一条线, 同时还可以覆盖到回源稳定性这一条线。