当前位置:首页 > 技术分享 > 正文内容

宝塔面板负载状态显示100%、CPU占满100%的排查以及解决办法

admin6个月前 (04-16)技术分享403

关于PHP的 PHP-FPM进程CPU 100%的一些原因分析和解决方案

之前碰到过php-fpmCPU高达80%-90%,特此记录下

1. 查看是否是硬件问题

方式:top 命令详解:https://blog.csdn.net/Linging_24/article/details/126436563

主要查看:load average(平均负载),这是一个4核8G内存的服务器

在这里插入图片描述

1分钟平均负载:2.32;

5分钟平均负载:2.18;

15分钟平均负载:3.95;

load average 中3个数的含义,如果是1核cpu,那么不能超过1,4核那么就不能超过4,15分钟可以代表长期,5分钟代表中期,1分钟代表短期,所以先看15分钟

可以说它现在的平均负载接近了它的cpu总核数:4;需要考虑服务器配置升级!

2.查看是否是PHP-fpm的进程数过多

首先使用 free -m 指令查看当前服务器执行状况:
在这里插入图片描述

可以看到我的内存消耗不多,也能看到我是2G内存

然后再用 top 命令 m 参数 查看内存情况

再使用:ps auxw|head -1;ps auxw|sort -rn -k4|head -40 查看消耗内存最多的前40个进程

查看通过命令查看服务器上一共开了多少的 php-cgi 进程:ps -fe |grep “php-fpm”|grep “pool”|wc -l

查看已经有多少个php-cgi进程用来处理tcp请求:netstat -anp|grep “php-fpm”|grep “tcp”|grep “pool”|wc -l

设置PHP-FPM的进程数:vi /etc/php-fpm.d/www.conf(根据实际情况变化)找到 pm.max_children 字段,设置一个合理的值,比之前的小

pm.max_spare_servers : 该值表示保证空闲进程数最大值,如果空闲进程大于此值,此进行清理 pm.min_spare_servers : 保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程;

这两个值均不能不能大于 pm.max_children 值,通常设置 pm.max_spare_servers 值为 pm.max_children 值的60%-80%。

正常情况下,一个php–fpm占用内存20~30M

3.进程跟踪

1.使用 top 找出CPU最高的进程pid

2.strace -p PID(进程数) 来跟踪进程

3. ll /proc/PID/fd 来查看该进程在处理哪些文件

最后修改对应代码

4、记得重启


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/663.html

分享给朋友:

相关文章

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,我所遇到的php-cgi进程占用cpu资源过多的原因有: 1. 一些php的扩展与php版本兼容存在问题,实践证明 e...

mysql update不支持set子查询更新 的解决办法

mysql update不支持set子查询更新 的解决办法

先看示例:SELECT uin,account,password,create_user_uin_tree FROM sys_user结果:表中的create_user_uin_tree标识该条记录由谁创建。创...

2021可用的百度网盘高速下载方法分享

2021可用的百度网盘高速下载方法分享

最新可用方法https://blog.bitefu.net/post/163.html方法很简单就是利用网盘直链下载助手【网盘直链下载助手】是一款免费开源获取网盘文件真实下载地址的油猴脚本,基于PCSAPI,支持Windows,Mac,Li...

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

下面的密钥,是微软官方提供的,仅能用于Windows10系统版本的升级,比如从家庭版升级为专业版、专业版升级为企业版等。升级密钥不能用于激活系统,激活需要KMS或者数字权利,由于涉及到版权问题,在此不宜分享,请大家自行查找激活相关的内容。准...

Nginx服务崩溃自动重启脚本(监控进程服务并自动重启进程服务)脚本

有一台服务器运行着Ngin最近突然有一次崩溃,导致使用方当天无法访问网页端,然后我不得不登录服务器,检查各项服务,发现nginx崩溃了,于是重启Nginx,问题解决。后来为了防止Nginx再发生这种情况给运维带来的运维成本,于是写了一个脚本...

抢先体验太阳谷!20H1、20H2、21H1替换“Dev版新图标”

尽量不要替换shell32.dll.mun和zipfldr.dll.mun,这两老哥可能会带来无法预测的风险!不解除被替换文件的硬链接,已确定会导致无法安装质量更新!(详见H大测评)单替换imageres.dll.mun新图标覆盖率基本可达...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。