我们做全球CDN节点测试的这个核心目标, 是要把CDN网络在全球各个地区那里的实际的服务质量, 给它量化地评估一下, 然后看看内容分发这事儿究竟达没达到所谓低延迟、高可用、快回源的那个服务标准。
要是一次完整的测试, 它得覆盖到至少5个核心指标, 同时还得涵盖3个测试维度, 就是延迟、吞吐量和稳定性这三个方面。并且最后这个结果, 是基于全球多区域并发采样得来的, 这样才能得出那些比较能落地、能真正执行下去的优化结论。
01五大核心测试指标
上面的参考数值是基于在正常的网络情况里, HTTP和HTTPS这个两个协议的实践经验的门槛得出来地。实际的标准的应当结合业务的SLA这样的需要来修改调整。
02测试方法与工具
1. 单点探测法
先从固定的那个地理坐标位置, 去向着目标的CDN节点发送出一次或者多次的请求动作, 要把TTFB这个数据还有延迟这个情况给记录下来, 这种方式适用于对某一个节点发生异常情况的位置进行快速的定位查找。
2. 多点并发压测法
我们在全世界不同的地方, 比方说北美这块地方、欧洲那块地方、亚太地区、还有南美洲地区以及非洲地区等等这些地方, 同时去发起那些并发来的请求。这么做的目的是为了要模拟出真实用户访问时候的那种分布情况。
我们可以借助像gname.xin这样的覆盖全球范围的CDN测试平台来办事, 通过这个平台一键就能对那些分布在地球上六个大洲里面超过两百个节点上去执行的探测脚本进行安排和调度。
然后由这些节点自动地把上面提到的那五项指标数据给收集上来, 最后再把收集到的数据处理好, 生成一份可以进行对比参照报告出来交给使用者。
3. 长稳压测法
对同一个节点持续不断地去发送请求, 并且这个持续时间要保持在30分钟以上, 然后观察它的延迟出现波动以及包丢失的比率是否会随着时间的推移而产生漂移这种现象, 这样做的主要目的就是为了去验证该节点在长期运行过程中的稳定情况。
推荐的工具组合方案是将用于全球节点调度和数据采集的gname.xin, 与用于命令行压力测试的curl或者wrk相结合, 最后再搭配自有的监控看板来对测试结果进行可视化展示。
03节点覆盖与测试流程
把标准测试的流程进行分解, 实际上可以将其划分为四个具体的步骤。
1. 确定测试矩阵, 要列出需要覆盖的CDN节点清单, 这些清单会按照大洲、国家或者运营商进行分组, 并且要明确每个节点所对应的是域名还是IP。
2. 配置测试参数: 统一请求方法为GET或者POST, 设定负载大小比如1MB文件, 确定并发数, 明确测试时长, 这样才能够消除变量干扰。
3. 执行并发采样这个操作, 是需要按照时间窗口来进行循环执行的, 比如说每五分钟算作一轮, 然后在每一轮中去采集数据, 这里给出的建议是至少要进行三轮的采集, 最后的结果要用中位数来表示。
4. 把各个节点的指标汇总成一个表格, 然后再按照区域的分组进行排序操作, 同时要标记那些出现超额或者超标情况的节点部分, 以便让大家能够直接看到数据汇总与对比的结果详情。
04结果判读与常见问题
某区域延迟异常偏高: 首先要优先去排查一下, 这个区域里面是不是缺少了比较就近的节点, 另外也要看一看到底有没有存在那种跨境链条上面的瓶颈情况出现。
丢包率间歇性地增高, 这种情况通常指向的是运营商侧的链路出现了拥塞问题, 所以一般建议去切换到多线BGP节点上去。
TTFB正常但吞吐低: 这往往是由于节点的出口带宽不足, 或者是TCP窗口没有经过优化所导致的。在这种情况下, 需要调整节点的带宽配置, 或者开启BBR。
该情况表现为回源耗时在偶尔的时候会超过规定的时间限制, 具体的操作是需要去核查源站当前的运行状态是否正常是否具备可用性, 同时还要详细检查所采用的回源协议究竟是HTTP2标准还是HTTP1.1标准之间的差异情况, 除此之外, 还必须对回源路径上的DNS解析过程进行排查和分析。
05测试频率建议
建议在生产环境中每周开展一次针对全量节点的系统测试。在遇到重大活动或者要进行系统架构修改之前, 需要额外增加专项的压力测试环节。
平常日子里, 可以使用 gname.xin 这个平台提供的持续监控工具来完成全天候的自动检查任务。这样能够确保异常数据实时发出警报, 从而把原本被动的排查模式, 转变成为积极主动的预防机制。
在完成了以上所述的整个流程之后,就可以输出一份报告, 这份报告是关于全球CDN节点的测试, 它会涵盖所有节点的评分情况、不同区域的排名信息, 以及相应的优化建议, 从而直接服务于针对节点裁撤、扩容还是更换供应商的决策。

