迅睿cms服务器CPU使用率及负载状态100%如何排查解决

使用迅睿cms 或 其他cms时,如果遇到服务器CPU使用率及负载状态100%,可能会导致性能下降,甚至服务中断。CPU使用率和负载高,通常是由于PHP或Mysql占用过高引起,通过排查优化数据库查询、减少不必要的计算或循环,然后开启网站缓存,一般都可以解决此类问题。具体来看一下排查方法吧。

定位高负载进程

想找出占用cpu高的进程,用top命令就可以搞定。ssl登录linux服务器,使用top命令确认服务器的具体情况,根据具体情况再进行分析判断。这里以以下两种情况做示例:

PHP占用高示例

占用高

观察到PHP进程占用100%,记住进程PID:3295,然后输入下面命令:ll /proc/3295/fd

分析进程

显示socket最高,分析原因,应该是跟服务器上的webserver有关,然后输入以下命令分析进程:strace -p 3295

分析原因显示函数pcntl_wait() 函数已被禁用,于是去宝塔面板解封这个函数:

宝塔

最后,在宝塔里面重启web服务器(包括重启服务器)重启后观察cpu占用,一般都会回归正常。

Mysql占用高

数据库高

在linux的shell中继续输入:mysql -h localhost -u 数据库账号 -p 数据库名

然后输入数据库密码,回车进入mysql控制台

数据库

继续输入命令:show processlist

查看当前 mysql 使用频繁的 sql 语句

数据库异常

然后找到上面sql代码复制一个,手动运行下,也可以放到phpmyadmin里面运行更直观

myadmin

从数据来看就属于慢查询,花费时间过长导致资源占用。

登录网站后台-设置-日志管理-慢查询日志:

后台日志

如果没有记录,需要开启日志,然后访问前端才会自动记录。

对应的模板,删掉这些模板代码再观察一下cpu正常的话,就不要这个标签,或者优化一下mysql。

总结

从监控和诊断开始,优化应用程序、增加服务器配置、实施负载均衡以及缓存和优化数据库都是应对高 CPU 使用率的有效措施。通过这些方法,您可以提高服务器的性能和稳定性,确保您的云服务始终保持正常运行。