一次CDN源站负载高的问题排查及解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次CDN源站负载高的问题排查及解决相关的知识,希望对你有一定的参考价值。

最近总是收到后端的CDN源站的负载高的报警,Apache经常会触发重启。于是启动排查问题。

我们的CDN架构如下:
技术图片

我们的CDN缓存策略是:使用源站的缓存策略,源站缓存策略是365天
技术图片

首先查看Apache的访问日志:
技术图片
错误日志里有大量的回源,内部程序逻辑是:如果文件不存在,就回去COS里去取,然后存放到源站一份。源站上有定期清理磁盘的程序。
正常情况下,回源不会有这么多,所以去查看一下cdn的缓存情况。
1、获取CDN的节点IP:
命令:dig pic1.xxxx.com
2、通过指定节点,查看访问资源的命中情况:
技术图片
看到最后的结果都是MiSS,理论上两个节点有一个HIT即可。
在测试过程中,偶尔有HIT,绝大多数的情况是MISS,即没有命中,就会导致访问回源。说明CDN上并没有缓存住资源,绝大多数访问直接打到源站上,所以源站负载撑不住了。

联系CDN服务商,服务商回复说最近新增加了多个边缘节点,可能会有一些问题导致以上情况,但是最近情况仍在继续,为了避免再次出现问题,我们将CDN由迅达云切换到了腾讯云上,问题暂时得到解决。

以上是关于一次CDN源站负载高的问题排查及解决的主要内容,如果未能解决你的问题,请参考以下文章

记一次CDN大量探测处理方法,UA限制返回403

cpu负载突刺问题排查

记一次线上机器CPU飙高的排查过程

记一次JAVA进程导致Kubernetes节点CPU飙高的排查与解决

记一次mysql磁盘io高的问题排查

Redis 故障排查「连接失败问题排查和解决」带你总体分析CPU及内存的使用率高问题排查指南及方案