CPU就是服务器的核心所在,不论处理任何任务都需求CPU来完成,一旦CPU呈现爆满,那么咱们的服务器就会呈现卡顿乃至是死机无法连接等状况,那么假如咱们的服务器CPU间歇性跑满,该如何处理呢?
首先我们要观察服务器的运行状态,如果是突然性的跑满或者在某一些节点时候跑满,我们可以从以下方面排查,首先就是检查服务器是否被攻击,最常见的一种可能CC攻击:就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
1、检查程序最大线程数是否足够;
2、程序代码不够优化,如死循环,死锁;
3、web配置文件的参数是否不够优化;
4、查看web和系统日志看是否有访问异常;
5、网站是否被盗链;
6、当时是否有搜索引擎爬虫大面积爬取网站;
7、是否受到了小型网络攻击;进程是否有异常;
8、检查机器是否中毒或中木马;
linux服务器可以通过系统日志和web日志,和一些top,free,uptime,sar,ps命令查询原因,windows机器可以通过资源监控器分析下。
常见解决方法
1、关闭不常用端口和多余启动项
这里建议用户关闭不常用的端口,开启不常用的端口,容易出现CPU内存占用率高的情况。当负荷过重的时候,CPU占用率可能过高。另外,系统在安装完成后会默认开启不少启动项,这些启动项会消耗不少系统资源和内存。
2、尽量不要安装和运行多余的软件
服务器上安装过多多余的程序和软件时也容易造成CPU内存占用率高的情况。很多朋友喜欢在vps上安装一些如QQ等软件,少部分朋友有在vps上看视频、玩游戏的习惯,这不经意间就容易出现CPU占用率过高的问题。
3、安装合适的杀毒软件
服务器上要安装合适服务器使用的杀毒软件,因为一些软件并不适合服务器使用,如360等,这些杀毒软件会有一些随时监控功能,会随时执行扫描任务,这样会额外增加系统的负担,容易导致CPU占用率过高的情况出现,严重的甚至会导致系统崩溃,所以有朋友安装360后会发现服务器会明显变卡,服务器上建议安装安全狗杀毒软件。
4、设置应用程序池的回收时间
应用程序池的默认回收时间是29个小时,这个一般不是很好设置,有时候会出现内存无法释放的情况,导致CPU内存占用过高,所以建议设置一下应用程序池的回收时间,把回收时间缩小,这样可以及时释放内存。
5、提高服务器安全性
当服务器受到病毒或木马攻击的时候,CPU也会出现占用率过高的情况,要预防出现服务器CPU占用率过高的情况,用户朋友要做好服务器的安全工作,提高安全性,避免经常出现受黑客攻击的情况。