当我们在做服务器巡检或者部署相关服务时,我们经常发现服务器CPU异常高,有时候直接达到了100%,那针对这种情况,我们有哪些解决思路和方案呢。
对此,我分享一下我处理的一些经验之谈,供大家参考学习:
一、追根求源
我们要找到问题的源头,问题的导火索可以从以下几个方面进行排查:
1、代码层面:恶性死循环代码模式,内存泄漏,线程池配置有误,正则判断有误;
2、数据库层面:数据库查询阻塞,频次过高;
3、API接口调用:调用频次过高导致超时,不断累加;
4、恶意病毒攻击:doss恶意攻击,木马病毒攻击。
二、定点处理:
1、使用htop或top查看异常的进程:
按shift+P查看CPU占用最高的进程:

2、定位到占用最高的进程,我们开始排查代码细节,包括代码线程配置以及堆栈的优化处理
3、查看日志(系统日志分析,程序服务运行日志)
系统日志:根据syslog,error等字眼去检索查询;
程序服务日志:根据部署配置的日志位置进行查看,一般为error.log的日志文件
三、优化运行:
当我们排查到问题点,再根据问题点进行优化,优化完成,我们需要积累优化的程序步骤,作为后续优化迭代的一个里程碑,因为丝滑的程序访问是不断优化迭代更新的结果。
针对该问题我们还需部署线上实时监控提醒,包括短信提醒,企业微信提醒,这样更有利于提高我们的工作效率。