别让CDN的回源把你的服务器拖垮,采用正确的回源策略
我们有一台服务器提供的服务主要是以动态页面为主,静态页面都是固定的内容平时更新的很少,最近这台服务器的应用升级到了新版本访问量增大了不少,随之的问题就来了,最近每天一到9点负载就超过警戒值,然后负载持续升高,load的值最高到100左右,这种情况一直会持续到12点,一过12点负载马上降低到5以下。

通过分析网络连接发现并没有攻击的迹象,基本都是正常的访问。后来开始考虑是否是硬件性能造成的,查看 cpu 内存和磁盘io的问题,观察了一段时间后发现这几个设备的压力确实增大了,但却没到不能承受的地步。后来我开始对nginx的访问日志开始分析,集中分析9~12点的访问情况。
经过分析发现有10多个ip的请求量在9点突然增加,到11点半以后请求数就将的很低了。而且他们的请求基本都是静态请求。我开始的时候怀疑是攻击但是又一想,会不会这几个ip是我们的CDN提供商的地址,于是马上联系CDN的技术支持,一查果然这几个ip都是他们分布在全国各地的服务器的ip,仔细询问后才知道。
他们现在服务器的回源机制是分散回源,也就是说全国各地的服务器每隔一段时间后会自己去我们的服务器上检查更新。可能最近有过改动所以这些服务器都在9点到10点之间一起去那台服务器上检查更新。结果就是那些ip访问量激增... 我又询问了下他们回源的间隔时间,工程师跟我说现在是定在3小时。我当时一愣 每隔三小时全国几十台服务器都去我们那台服务器上查一遍,负载能不高么...
立即让他们修改回源策略,因为我们的静态内容很久才会更新一次,而且每次更新都是手动更新,平时基本用不着更新,所以也用不着cdn的服务器总是去检查。
开始对回源的时间和回源方式与CDN的工程师讨论,最后的解决方法是,在所有CDN的服务器里找出三台来做回源点,其他的机器都去这三台服务器上去检查更新,
而这三台服务器每隔三天会到我们的服务器上检查更新。确定了之后,就让他们的工程师去改策略了。不一会儿他们说改好了,但要等第二天才能生效,让我等到时候看效果。
到了第二天9点,果然Nagios 没有报警,系统load值正常直到每天中午 访问最高的时候才有一点高,看来新改的策略生效了。从日志上看 CDN的那几个地址的访问量也不那么高了。
CDN本来是给我们的网站加速的,但是有时会因为不合适的回源策略给服务器带来负担,只有选择正确的策略才能给自己的网站带来更高的访问效率!
希望这篇文章对大家有所帮助 ^_^
https://blog.csdn.net/longxingzhiwen/article/details/55520639
别让CDN的回源把你的服务器拖垮,采用正确的回源策略的更多相关文章
- Java并发包源码学习之线程池(一)ThreadPoolExecutor源码分析
Java中使用线程池技术一般都是使用Executors这个工厂类,它提供了非常简单方法来创建各种类型的线程池: public static ExecutorService newFixedThread ...
- Java并发包源码学习之AQS框架(四)AbstractQueuedSynchronizer源码分析
经过前面几篇文章的铺垫,今天我们终于要看看AQS的庐山真面目了,建议第一次看AbstractQueuedSynchronizer 类源码的朋友可以先看下我前面几篇文章: <Java并发包源码学习 ...
- 为SRS流媒体服务器添加HLS加密功能(附源码)
为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做 ...
- [源码]一键获取windows系统登陆密码vc6版源码
[源码]一键获取windows系统登陆密码vc6版源码支持:XP/2000/2003/WIN7/2008等 此版本编译出来的程序体积较小几十KB... 而vs版则1点几M,体积整整大了2-30倍对某些 ...
- 查看和调试Qt源码(动态编译的QT也可进入源码)good
简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...
- pdb 源码索引符号服务器创建过程
pdb是调试程序必不可少的东西,它保存着一个exe或dll的调试信息,对pdb进行源码索引可以快速找到软件对应该版本的代码,本文以subversion版本控制服务器进行介绍 一.需要安装的软件 win ...
- 如何发布二次开发后的openfire源码到linux服务器中
这篇文章是在你已经down了openfire的源码,然后在本地跑起来了,再然后开发了一个自己的插件,想要发布到服务器上.ok这时候出现了一个问题,怎么才能发布到服务器上呢?别急往下看: 1.运行ant ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(求100000000内的回文素数)
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- Spring源码分析之IOC的三种常见用法及源码实现(二)
Spring源码分析之IOC的三种常见用法及源码实现(二) 回顾上文 我们研究的是 AnnotationConfigApplicationContext annotationConfigApplica ...
随机推荐
- Sublime Text 快捷键及使用技巧的学习整理
下载和安装(很简单,省略)下载地址 http://www.sublimetext.com/2 1. 有两点需要注意 a) Sublime Text目前稳定的版本是Sublime Text 2,Subl ...
- Android终端管理器删除文件夹
终端管理器删除文件夹不能用网上提供的: rm -rf 文件夹名 而要用: rm -r 文件夹名. http://blog.csdn.net/enhancing/article/details/8490 ...
- ORA-12547: TNS:lost contact
碰到这个ORA-12547: TNS:lost contact的问题,翻了很多资料和METALINK,总结了一下原因: 1 是由于rpm包没有安装,对于我们的生产环境,此包是安装的. admin@p1 ...
- CodeForces990G:GCD Counting(树分治+GCD)
You are given a tree consisting of nn vertices. A number is written on each vertex; the number on ve ...
- CodeForces768B:Code For 1 (分治)
Jon fought bravely to rescue the wildlings who were attacked by the white-walkers at Hardhome. On hi ...
- 「UOJ#117」 欧拉回路
欧拉回路 - 题目 - Universal Online Judge 题意: 给定有向图或无向图,求一条欧拉回路. 题解 心路历程:woc什么傻哔东西->哇真香我的吗!(逃 首先我知道很多人把欧 ...
- [BZOJ 1475] 方格取数
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1475 [算法] 首先将方格黑白染色 , 也就是说 , 如果(i + j)为奇数 , ...
- php之上传图片及传数据到mysql
index.html <form action="php.php" method="post" enctype="multipart/form- ...
- 五 pyJWT使用
PyJWT是一个Python库,用来编码/解码JWT(JSON Web Token)的. 1:安装PyJWT 2: 直接上代码了: import datetime, jwt, time from a ...
- SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)(转载)
使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...