1.
先确认问题范围与症状(必做)
小分段:
- 1.1 明确是全部页面慢还是部分接口慢:打开多个页面/接口并记录响应时间(浏览器开发者工具 Network 或 curl -w "%{time_total}" -o /dev/null -s URL)。
- 1.2 确认是否是全球/某个地区慢:使用在线测速或 VPN 在不同地区测试。记录慢的节点和时间段。
- 1.3 识别缓慢类型:DNS 解析慢 / 首字节慢(TTFB)/ 资源下载慢。用 curl -I、curl -w 或浏览器 DevTools 捕获时间分解。
2.
在腾讯云控制台上核查 CDN 配置(逐项检查)
小分段:
- 2.1 登录腾讯云控制台 → 产品与服务 → CDN → 加速域名,找到出问题的域名。
- 2.2 检查加速域名状态:确认已启用且未在停用/审核中。
- 2.3 打开“基础配置”核对回源配置:回源域名/IP、回源协议(HTTP/HTTPS)、回源端口是否正确。
- 2.4 检查“缓存配置/缓存键”:查看忽略的参数、缓存时间(TTL)设置是否过短/过长导致大量回源请求。
- 2.5 查看“请求头与回源校验”是否添加了特定 Header 或防盗链规则,可能导致回源拒绝或慢响应。
3.
DNS 排查(解析是否向 CDN 指向正确)
小分段:
- 3.1 使用 dig/nslookup 检查域名 CNAME:dig +short CNAME example.com,确认是否解析到 Tencent CDN 的域名。
- 3.2 检查 TTL:如果最近修改过 DNS,应确认全局生效时间是否造成旧解析。
- 3.3 测试本地 DNS 与公共 DNS:使用 dig @8.8.8.8、@1.1.1.1 验证解析结果一致性。
4.
回源(Origin)服务器检查:首要排查点
小分段:
- 4.1 直接访问回源:在本机或临时修改 hosts,将域名指向回源 IP,或通过回源域名直接访问,比较响应时间。
- 4.2 检查回源压力:查看回源服务器的 CPU、内存、连接数、慢查询日志(如数据库)是否是瓶颈。
- 4.3 校验回源网络:从不同地域用 curl -I --resolve 域名:端口:回源IP URL 或用 telnet 回源IP 端口 测试连通性和握手延迟。
5.
使用抓包和链路工具定位问题节点
小分段:
- 5.1 在浏览器中用 DevTools Network 看各资源时间分解(DNS/Connect/SSL/TTFB/Content)。
- 5.2 用 traceroute/tracert 或 mtr 追踪到 CDN 节点或回源的网络路径,观察丢包或跳点延迟。示例:mtr -rwzbc 100 example.com。
- 5.3 在服务器端抓包(tcpdump)或在客户端用 curl -v 观察 TCP 三次握手与 TLS 握手耗时。
6.
缓存规则与缓存穿透检查(常见导致回源慢的原因)
小分段:
- 6.1 检查 CDN 缓存命中率:腾讯云 CDN 控制台有缓存命中统计,定位是否大量 MISS。
- 6.2 若动态接口被 CDN 缓存规则错误包含,可能导致每次都回源:调整路径匹配或添加忽略缓存。
- 6.3 对于参数化 URL,确认是否设置了忽略参数或自定义缓存键,减少缓存碎片化。必要时设置更长的缓存时间并配置主动刷新策略。
7.
压缩与加速协议设置(gzip、http2、连接复用)
小分段:
- 7.1 在 CDN 配置中开启 Gzip/ Brotli 压缩,检查 response header 是否返回 Content-Encoding。
- 7.2 开启 HTTP/2 或 HTTP/3(QUIC)支持,减少连接和串流延迟。用 curl -I --http2 URL 验证。
- 7.3 开启长连接与 keepalive,检查是否存在频繁 TCP 建立导致延迟。
8.
HTTPS/TLS 问题排查(证书与握手)
小分段:
- 8.1 确认证书是否在 CDN 控制台正确上传或使用自动证书。
- 8.2 用 openssl s_client -connect domain:443 -servername domain 查看握手耗时与证书链是否完整。
- 8.3 若回源为 HTTPS,确认回源证书是否被 CDN 信任或需要关闭回源校验测试性能。
9.
访问日志与监控(定位时间段与请求模式)
小分段:
- 9.1 开启 CDN 访问日志(控制台 → 日志服务或对象存储),下载并分析慢请求或错误码分布。
- 9.2 对比监控指标:带宽、QPS、5xx/4xx、回源成功率,确认是否为突发流量导致。
- 9.3 使用日志筛选大响应时间记录,查看请求路径、来源 IP 与回源响应时间,定位热点接口。
10.
临时回滚与验证步骤(安全与快速定位)
小分段:
- 10.1 临时停用 CDN:控制台停用加速后,DNS 回退或修改 hosts 指向回源,观察站点恢复速度。
- 10.2 若停用后变快,说明问题集中在 CDN 层,继续逐项回退配置(关闭压缩、关闭 HTTP/3、恢复默认缓存规则)。
- 10.3 若停用后仍慢,说明回源或上游问题,优先排查回源性能。
11.
具体修复建议清单(按优先级执行)
小分段:
- 11.1 优先:修复回源性能(数据库优化、缓存层、减小响应体),保证回源稳定。
- 11.2 次优:优化缓存策略,增加静态资源缓存时间并启用 CDN 节点压缩。
- 11.3 再次优先:调整 DNS TTL、验证 CDN 配置、启用慢日志告警与自动回滚脚本。
12.
联系腾讯云支持的准备工作(提升处理效率)
小分段:
- 12.1 收集材料:慢时段的具体请求示例、curl 输出、CDN 控制台域名截图、访问日志和 traceroute 输出。
- 12.2 在工单中附上复现步骤与影响范围,注明是否已临时停用 CDN 及回源测试结果。
- 12.3 请求腾讯云提供节点侧抓包或IDC链路信息,便于他们定位边缘节点问题。
13.
常见误区与注意事项
小分段:
- 13.1 误区:以为 CDN 自动总比回源快——若缓存命中率低或配置不当可能更慢。
- 13.2 注意:改动 DNS/缓存规则需预估生效时间,先在测试域名验证再在生产切换。
- 13.3 注意日志保留与数据隐私,导出日志时脱敏敏感信息。
14.
问:用了腾讯云 CDN 后首页加载变慢,我先从哪里开始排查?
小分段:
- 回答:第一步确认是缓存命中率问题还是回源本身性能问题:用 curl -I -H "Host:你的域名" CDN域名 查看响应头中是否有 x-cache 或 x-cdn-hit 等命中标识;同时直接访问回源(或在 hosts 指向回源 IP)对比响应时间。
15.
问:如何快速判断是 DNS 问题还是 CDN 节点问题?
小分段:
- 回答:用 dig 检查 CNAME 指向是否正确,再用 dig @8.8.8.8 比较不同解析;同时在慢地区运行 traceroute/mtr 到域名或 CDN 节点,若跳点在边缘节点出现高延迟或丢包,通常是节点或链路问题。
16.
问:若确认是 CDN 配置引起的慢,有没有安全的回滚流程?
小分段:
- 回答:先在测试域名或预发布域演练回滚步骤:修改缓存规则恢复默认、关闭新增的压缩或协议,再在低流量时段在控制台停用加速并临时调整 DNS 到回源 IP;确保变更可回退并监控效果后再在生产逐步恢复优化。