文档首页/ 内容分发网络 CDN/ 故障排除/ 接入CDN后,访问速度仍然很慢
更新时间:2024-06-06 GMT+08:00

接入CDN后,访问速度仍然很慢

问题现象

接入CDN加速后,用户访问网站或者APP资源依然很慢。

排查思路

  • 域名是否接入CDN加速
  • 是否命中CDN缓存
  • 是否跨运营商和跨省
  • 缓存规则设置是否合理
  • 加速资源是否预热
  • 是否客户端网络问题

排查步骤

  1. 检查域名是否接入CDN加速

    如果您刚在控制台添加加速域名,正在做配置CNAME前的本地测试加速域名工作,请忽略本步骤,参照快速入门流程配置即可。

    您需要检查域名是否解析到CDN,以Windows操作系统为例,打开cmd程序,输入如下指令:

    nslookup -qt=cname 加速域名

    如果返回结果显示CNAME,则表示CNAME配置已经生效,如下图:

    • 如果查询出的域名解析中没有上图红框中所示,后缀为.c.cdnhwc1.com的CNAME解析记录,则说明您添加的域名的CDN加速未生效。此种情况下CDN加速未生效的可能原因是您没有在域名DNS服务商处配置CNAME记录,请根据配置CNAME内容指导前往您的域名DNS服务商处配置CNAME记录。
    • 如果您确认已正确配置CNAME记录,请检查同一解析线路下该域名的上一记录类型的TTL时间,TTL时间决定了解析记录在本地DNS服务器的缓存时间。您新添加的CNAME记录在上一记录类型的本地TTL缓存时间过期后才会正式生效。
  2. 查看是否命中CDN缓存
    在浏览器Chrome上,按F12,选择“Network”。查看指定URL的响应头,查看头部信息,进行如下判断:
    • 如果有“x-hcs-proxy-type”头部,值为“1”即命中缓存,值为“0”即未命中缓存,不再查看其它头部;
    • 如果无“x-hcs-proxy-type”头部,而有“X-Cache-Lookup”头部,值为“Hit From MemCache”、“Hit From Disktank”或“Hit From Upstream”即为命中缓存,其它值表示未命中缓存,不再查看其它头部;
    • 如果同时无“x-hcs-proxy-type”、“X-Cache-Lookup”头部,有“age”头部,则值大于“0”即命中缓存,值为“0”即未命中缓存。

    如果未命中缓存,请跳到4. 检查缓存规则设置查看缓存规则设置。

    如果命中缓存,请进入下一步分析。

  3. 是否跨运营商和跨省

    如果用户访问跨省和跨运营商,可能会影响访问速度,请按照以下步骤排查:

    1. 获取客户端IP、LDNS。
    2. 根据客户端IP和LDNS分析是否跨运营商和跨省。如果使用了代理,可能会出现跨运营商和跨省,影响访问效果。

      示例1:用户在河北使用广电网络访问,但IP是北京联通,LDNS又是石家庄电信,访问速度就会较慢,跨运营商对网速的影响很大。

      示例2:用户在北京使用广电网络访问,但IP是北京联通,LDNS又是广东电信,用户访问加速域名时CDN调度系统会根据LDNS匹配最近的广东节点,导致访问速度较慢。

    3. 华为云CDN目前支持的运营商有电信、联通、移动、铁通、教育网、鹏博士等。
  4. 检查缓存规则设置
    • 检查所访问的资源对应的缓存规则,是否存在配置的缓存过期时间为0或者缓存过期时间过短的情况。CDN不缓存或者缓存过期时间过短会导致请求回源,无法达到加速效果。
    • 检查您的源站缓存设置,如果源站设置了no-cache、private、no-store,CDN侧同时开启了“缓存遵循源站”功能(此功能默认关闭),CDN将无法缓存源站资源,导致所有请求回源,无法达到加速效果。
    • 检查您设置缓存规则的优先级,数值越大优先级越大,系统会优先匹配。
    • 如果您的URL携带了参数,并且参数不断变化,当使用不同的URL去访问的时候,CDN会认为这是一个新请求(即使这两个不同的URL访问的是同一个文件,并且该文件已经缓存在节点上),依然会回源请求该资源。如果携带不同的参数的URL访问的是同一个资源,建议开启忽略URL参数功能,请参见URL参数
    • 更多缓存设置请参考如何设置缓存过期时间
  5. 检查资源是否预热

    如果您是首次访问某资源,且之前未对该资源做过预热处理,CDN节点会回源请求资源,首次访问速度慢属于正常。

    首次接入CDN后,建议您预热大文件或者视频,图片、小文件等不建议预热。

  6. 检查客户端网络

    ping CDN加速后访问依然较慢的域名,检查网络时延和丢包。如果网络时延大或者丢包严重,需要检查客户端网络接入问题。

如果排除以上几点后问题仍然存在,请提交工单处理。