迅睿cms服务器CPU使用率及负载状态100%如何排查解决
无需魔法,免费体验ChatGPT-4 / MJ绘图 等AI大模型!AI问答、写文案、做表格、绘图、写脚本、写代码...
使用迅睿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里面运行更直观
从数据来看就属于慢查询,花费时间过长导致资源占用。
登录网站后台-设置-日志管理-慢查询日志:
如果没有记录,需要开启日志,然后访问前端才会自动记录。
对应的模板,删掉这些模板代码再观察一下cpu正常的话,就不要这个标签,或者优化一下mysql。
总结
从监控和诊断开始,优化应用程序、增加服务器配置、实施负载均衡以及缓存和优化数据库都是应对高 CPU 使用率的有效措施。通过这些方法,您可以提高服务器的性能和稳定性,确保您的云服务始终保持正常运行。