作者:张医博
背景:面向不同业务类型的网站,很多人都选择了 CDN 加速来优化自己的网站,目的在于加速网民的体验效果,赢取流量。
在网站调优的过程中,如果正确理解基于 CDN 的网络调优以及正确的配合 CDN 服务方来快速提供调优信息做了详细的讲解,
希望对大家有用,希望对从事 CDN 的人和对网络调优感兴趣的人能有作用。
1、确认调优类型
1.1、静态文件
- 小文件: URL 小于 64KB
- 大文件: URL 大于 1MB
- 视频流:相当于大文件,要求速度平稳无卡顿
- 全页面:网页包含多个域名及元素
1.2 动态
- 小文件: URL 小于 64KB
- 全页面网页: 包含多个域名及元素
- 事物流程:模拟访问,登录,点击,提交等行为
1.3 协议
- http、https
1.4 调优评测机制
- NetworkBench 、Gomez、 Bonree
1.5 用户自定义评测
- 日志统计(下载日志分析对比)
- client 端探测(内嵌入播放器)
- 自定义监测点(苹果 ADSL 检测)
2 观察指标时间,找出阻塞时间点
DNS 时间
建联时间
- 定义:
浏览器和 WEB 服务建立 TCP/IP 连接时间
- 特征
代表 RTT ,直接体现 ping 值,反应 CDN 边缘节点质量
建联时间应该在 30ms 以内,小文件建联时间应越小越好。
建连时间是基础,建联时间长会引发一系列慢的情况,不同 CDN 服务商会有不同的 TCP/IP 的优化。
SSL 握手时间
- 定义
浏览器和 WEB 服务端建立安全套接层(SSL)链接的消耗时间
- 特征
只有 HTTPS 协议中才有这个时间指标,反应服务端的处理能力,SSL 握手时间长会导致整体时间长
首包时间
- 定义:是从浏览器发送 HTTP 请求结束后,收到 WEB 服务器返回的第一个有效载荷数据包
- 特征:代表建联时间和服务器的响应时间之和
建联时间长且首包时间长:网络问题
建连时间端但首包时间长:服务器负载过高,或者静态数据没能缓存住
内容下载时间
- 定义:浏览器从收到首包开始计时,至数据包全部接收全所需要的时间
- 特征:
受网路质量(RTT 和丢包率)影响
受设备负载影响
受 TCP 协议栈技术影响
3、CDN 调优可调的指标有哪些
- 解析层级 :应控制台二层以内,解析层级过多损耗更多。
- CDN 节点配置:节点精细化比较好,一般都是到省级别的骨干节点,辅助个别地市级别的节点
- 如果遇到域名劫持,需要向当地运营商反馈,目前 CDN 在 client 端防劫持的手段可以通过 HTTPS 预防,效果不一定是 100% 但是在 DNS 阶段不太好禁止。DNS 劫持我们可以通过 nslookup 或者 dig 验证。
检查设备负载
- CPU 负载高,导致应用处理能力下降
- 磁盘 I/O 负载高,导致服务器给出资源耗时长
- cache server 响应时间
- 网络负载
-
带宽负载
- 设备带宽
虚拟机(网桥性能问题)接近阈值丢包响应时间长
物理机(网卡级别)接近阈值丢包,响应时间长
- 连接数异常高,导致网络处理能力下降
长连接
keepalive 是使用同一个 TCP 链接来发送和接收多个 HTTP 请求/应答,而不是每一个新的请求/应答打开新的连接的方法。
未完待续