全球CDN节点测试的核心目标, 是要把CDN服务在世界各地那些地方的实际加速效果给验证清楚, 还要看服务能不能用, 以及网络质量怎么样。

测试这件事儿呢, 得围绕着延迟、带宽、丢包率、节点响应时间, 还有HTTPS握手耗时这五个核心指标来进行。只有结合不同地域以及不同运营商那儿, 真实用户的那些个探测视角, 才能够得出有参考价值的结论。

五项核心指标说明

1. 延迟(RTT / TTFB)

需要测量的是从客户端到达最近的CDN节点的时间, 也就是首字节时间, 通常简称为TTFB。当CDN加速功能实际生效之后, 同一区域之内测得的这项目指标数值, 应当被控制在一百毫秒的时间范围以内;如果是跨区域的测试场景, 这个时长最好也不要超过两百毫秒的值。

进行具体的测试工作的时候, 必须全面地覆盖北美地区、欧洲地区、亚太地区、南美地区以及中东和非洲主要区域等这些地方, 绝对不可以仅仅依据某一个单一的地点情况来做判断或者下结论。

2. 带宽与吞吐量

在目标节点上发起大文件下载, 这里的文件大小建议不低于100MB, 并且需要记录实际吞吐量, 然后CDN节点的实际带宽应当达到服务商标称值的80%以上, 如果达不到这个标准的话, 就说明节点可能存在着拥塞的现象, 或者调度策略存在异常的情况。

3. 丢包率

我们会使用ICMP或者TCP探测包, 在10分钟时间间隔内统计丢包的比例, 一旦丢包率超过了1%, 就视为异常,如果丢包率超过了5%灵音心图, 则需要立即排查中间链路或节点的健康状态。

4. 节点响应时间

需要记录的是, 从HTTP请求被发出开始, 一直到接收到完整的响应为止, 这整个过程所花费的总时间, 同时也要把这段时间和服务器直接直连时的耗时长短放到一起来做相互比较。CDN节点给出的响应速度应当明显地低于源站的速度, 假如发现加速链路的情况没有生效, 或者判断回源策略方面存在有问题的迹象。

5. HTTPS握手耗时

全球CDN节点测试:5项核心指标怎么测、怎么看、怎么优化(图1)

测量TLS握手完成的时间, 按照正常标准, 这个时间应该控制在100毫秒以内。如果耗时过长, 通常意味着节点SSL证书配置存在异常, 或者是会话复用功能未开启, 再或者是在中间链路中存在加密拦截设备。

实操测试步骤

1. 确定覆盖范围: 你要根据目标用户的分布情况, 去选取那些作为探测点的地方。这些探测点所在的区域至少要包括五个大洲的数量, 并且涉及到的国家或者地区的数量要在十个以上。同时, 你还得把主流运营商区分开。

2. 选择测试工具这一工作, 你可以利用 gname.xin 所提供的全球节点探测平台来发起相关的测试请求。这个平台已经覆盖了二百多个位于全球的监测点。它能够支持 HTTP、HTTPS、TCP、ICMP 这些多种协议的探测任务。

除此之外, 你也可以选择配合自研的脚本来进行补充验证的动作。举个例子, 可以是 Python requests 结合多地域的 VPS 这种方式来完成相关的工作。

3. 执行测试的时候, 要对同一个用来CDN加速的URL, 在所有用来探测的地方, 同时把请求发过去, 然后把各项指标最原始的数据记录好, 同时要保存完整的请求日志和响应日志。

4. 数据对比这一环节需要把测试结果拿出来和CDN服务商承诺的SLA数值进行对照, 同时还要和这个区域里的基准线做比较, 然后一项一项地检查清楚, 标记出那些出现异常的节点以及这些异常的具体指标。

5. 复测确认: 要对那些出现异常的节点执行不少于3次的复测工作, 借此排除偶然的抖动情况。只有在确认真实存在故障之后, 才可以提出工单或者对调度进行调整事宜。

注意事项

测试时间应该把业务的高峰阶段给包含进去,就像在 UTC 的 8:00 到 12:00 这段时间一样全球CDN节点测试, 千万不要只根据那些没什么业务的低谷时期的数据就给事情定个结论。

不同的运营商业(包括电信、联通、移动以及国际的服务提供商), 它们访问同一个内容分发网络节点的时候, 情况可能存在着很大的不同, 因此我们必须要按照每一个运营商业来分别进行记录和保存数据这一件事情。

由于手机端和电脑端的网络情况不一样,所以我们建议要把那个3G、4G或者是5G的手机网络模拟测试给增加上去。

测试数据应当持续地被记录下来全球CDN节点测试, 并且进行归档处理, 以此来形成一份CDN质量趋势报告, 而不应该依赖单次测试结果当作长期决策的依据。