使用 CDN 遇到的问题
使用 CDN 加速网站主要面临两个问题:
CDN 选型:
用 CDN 加速网站的第一步是要选择一个 CDN 供应商,提供 CDN 服务的供应商国内外都有众多的厂商,选择 CDN 服务商优先考虑的是 CDN 的服务质量,其次才会考虑其他因素,毕竟购买 CDN 服务的首要目的就是加速网站,那么选择一个合适的 CDN 服务商就非常重要了。
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 分位数。
重点三:告警能力
需要对核心指标数据持续进行检测,最核心的指标可用性,当可用性下降时要及时进行告警。
操作步骤
1. 登录 云拨测控制台。
2. 在左侧菜单栏单击任务列表,在任务列表中单击新建任务。
3. 分别创建文件上传、文件下载和音视频体验任务。
4. 创建完成后,对应拨测任务后会下发任务到各个拨测点进行拨测。
拨测数据展示: