CDN 服务质量监控最佳实践

作者:黄小龙,腾讯云云监控高级工程师

前言

什么是 CDN?

CDN 全称 Content Delivery Network,即内容分发网络,它能够有效的避开互联网上有可能影响传输速度和稳定性的因素,使得用户请求的内容传输更加快速和稳定。

[点击查看大图]

CDN 的原理

将静态资源缓存到离用户比较近的节点上,不用千里迢迢去访问服务器。这样不仅能够加快这些资源的访问速度,也能够降低服务器的带宽压力,有效降低服务器负载。

CDN 能够显著的优化网站的访问速度,有效提升用户的实际体验。那么怎么使用 CDN 来加速网站内容呢?

1. 需要选择 CDN 服务商(提供边缘节点的供应商)

2. 在 CDN 服务商上开通 CDN 的服务。

3. 接入需要加速的域名。

4. 在域名解析的供应商上配置域名对应的 CNAME,通过简单的配置就能使用 CDN 来加速网站。

使用 CDN 遇到的问题

使用 CDN 加速网站主要面临两个问题:

1. CDN选型:

用 CDN 加速网站的第一步是要选择一个 CDN 供应商,提供 CDN 服务的供应商国内有腾讯云、阿里云、七牛云等各个云厂商,国外也有 Google、AWS、Gloudflare 等,选择 CDN 服务商优先考虑的是 CDN 的服务质量,其次才会考虑其他因素,毕竟购买 CDN 服务的首要目的就是加速网站,那么选择一个合适的 CDN 服务商就非常重要了。

2. CDN 质量监控:

利用 CDN 加速网站后,CDN 对我们来说就是一个黑盒,不能仅仅依靠 CDN 厂商的监控数据来衡量 CDN 的服务质量。那么怎么去衡量 CDN 的质量就成为了瓶颈。如果 CDN 不可用,或者 CDN 耗时比较大,这会得不偿失。

[点击查看大图]

CDN 服务质量衡量标准

解决使用 CDN 过程中遇到的这些问题,首先先要确定如何衡量一个 CDN 的服务质量,需要制定一些核心指标量化 CDN 加速过程的数据,通过这些数据来衡量 CDN 加速的好坏。

[点击查看大图]

使用 CDN 加速的场景可以分为四个场景:小文件、大文件、音视频点播和音视频直播,在这四个场景中第一个考虑的因素当然是可用性,CDN 能不能正常的提供加速服务是一切的前提,CDN 服务可用性度量前提是要保障源站服务可用,基于本文所提的方法也可以对源站的服务进行监控。

小文件

小文件一般是网页素材,通常是 html、js、jpg、png、css 等这些文件,这类小文件对延迟最为敏感。

前端请求一个网络资源可以分析四个过程:DNS 查询、TCP 连接、请求响应、内容传输,小文件一般关注前三个过程的用时,内容传输的用时很小,参考意义不大。

前三个过程对应的衡量指标是:

DNS 用时:DNS 用时是衡量域名解析用时,DNS 用时的长短和 CDN 的调度策略也有一定的关系。

TCP用时:TCP 用时是指解析到的 IP 创建 TCP 连接的时间,TCP 建立连接的流程是固定的三次握手,TCP 用时能够反映出 CDN 的节点资源和调度策略能力,一般离用户越近的节点 TCP 用时越短。

首包用时:首包用时是衡量小文件场景下 CDN 的一个关键指标,从用户发起请求到 CDN 响应首包内容,这个过程能够最大程度上衡量 CDN 的处理能力。

大文件

大文件类型一般主要包括一些下载安装包,通常是 apk、rar、zip 等一些大于等于 10M 的文件。大文件的场景下相对小文件比较简单,一般对 CDN 的质量要求没有这么苛刻,核心衡量指标用下载速度或下载用时。

这里主要看两个核心指标:

平均传输速度:平均传输速度用来衡量大文件传输的平均速度。

传输用时:传输用时用来衡量下载大文件所需要的时间。

音视频点播/直播

音视频点播通常是 mp4、flv、mkv、wmv 等音视频文件,直播通常是一些 rtmp、hls、httpflv 协议的文件。音视频场景和大文件场景很类似,但是在这种场景下对 CDN 的服务质量要求要严格的多。

这里主要看两个核心指标:

首次缓存时间:首次缓存时间是用户从打开到看到视频画面的时间,会受到域名解析、TCP 连接,首包加载的影响。

卡顿率:卡顿率是衡量用户播放体验的一个很重要的指标, 100 个用户有 90 个播放过程无任何卡顿即卡顿率为 10%。

CDN 监测案例

定义好了 CDN 的衡量指标,下一步就是对 CDN 加速进行监测,需要构建一个平台来对 CDN 的服务质量进行监控,并能够通过对比分析,告警等手段对 CDN 质量进行持续跟进保障。

[点击查看大图]

针对 CDN 加速域名,需要通过布置众多的拨测点对域名加速域名进行访问,收集访问过程中的核心指标数据,对这些数据进行汇聚之后进行存储,再对这些结果进行对比分析和告警。

重点一:拨测点布置

CDN 的核心指标数据要通过访问 CDN 加速域名进行获取,编写好收集这些核心指标的程序后,需要把这些程序布置到各个地区的拨测点上。

重点二:数据汇聚

对于每个拨测点收集到的核心指标数据,需要进行数据汇聚计算,例如需要获取某个时刻的 DNS 用时,应该是每个拨测点在当前时刻的 DNS 用时取平均值,或者取 95 分位数。

重点三:告警能力

需要对核心指标数据持续进行检测,最核心的指标可用性,当可用性下降时要及时进行告警。

从以上的步骤来看,构建一个核心监控系统来监控 CDN 服务质量显得有点困难,也可以选择一些现有的监控平台对 CDN 服务质量进行监控,下面是介绍利用腾讯云云拨测对 CDN 质量进行监控。

[点击查看大图]

[点击查看大图]

创建拨测任务选择任务类型,文件下载任务对应小文件和大文件的场景,音视频点播和直播可以通过音视频体验任务类型进行监测。拨测点支持国内和国外的拨测点,并且还支持移动端拨测点,选择需要监测的运营商和地区的拨测点,创建对应拨测任务后会下发任务到各个拨测点进行拨测。

[点击查看大图]

云拨测会对拨测点的结果数据进行汇聚,通过多维分析就可以查看指标数据。

[点击查看大图]

云拨测也支持告警,设置对应指标的阈值,当 CDN 的访问质量异常时及时触发告警。

总结

目前利用 CDN 加速网站越来越重要,同时再 CDN 提供服务的过程中,我们要持续不断的对 CDN 的服务质量进行监测,如果 CDN 加速效果不理想,切换 CDN 服务商或者再 CDN 服务商选型的时候需要去度量 CDN 的服务质量。通过云拨测可以很快的构建 CDN 监测的平台,利用工具能够快速达到 CDN 服务质量优化的目的。

联系我们

若有任何问题可扫码联系云监控小助手,我们将竭诚为您服务!

点击阅读原文可详细了解云拨测。