关于PHP的 PHP-FPM进程CPU 100%的一些原因分析和解决方案
之前碰到过php-fpmCPU高达80%-90%,特此记录下
1. 查看是否是硬件问题
方式:top 命令
主要查看: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 来查看该进程在处理哪些文件
最后修改对应代码
记得重启
关于PHP的 PHP-FPM进程CPU 100%的一些原因分析和解决方案的更多相关文章
- PHP-CGI 进程 CPU 100% 与 file_get_contents 函数的关系
[文章作者:张宴 本文版本:v1.0 最后修改:2011.08.05 转载请注明原文链接:http://blog.s135.com/file_get_contents/] 有时候,运行 Nginx.P ...
- SQL Server Cpu 100% 的常见原因及优化
SQL Server Cpu 100% 的情况并不太常见,一般引起 SQL Server 产生性能问题的,都是 阻塞.连接数.IO 磁盘等.所以,一般SQL Server 的使用率都是比较低的.但是, ...
- mongodb cpu 超过100%居高不下的原因分析过程
-- mongodb cpu is high, infomation as below: 1 the message in the http://10.100.1.11:28017/ as below ...
- 服务器CPU使用率高的原因分析与解决办法
我们的服务器在使用操作系统的时候,用着用着系统就变慢了,打开“ 任务管理器 ”一看,才发现CPU使用率达到80%以上.这是怎么回事情呢?遇到病毒了吗?硬件有问题?还是系统设置有问题呢?在本文中将从硬件 ...
- blesta运行造成阿里云服务器CPU频繁超载的原因分析
博主在阿里云服务器上安装了主机软件Blesta后,阿里云后台频繁提示CPU超载,打开突发性能模式后,发现CPU负载到了100%.如下图所示: 直接在putty里面reboot整个系统后,负载瞬间降为2 ...
- SQL SERVER数据库服务器CPU不能全部利用原因分析
背景 客户凌晨把HIS数据库迁移到配置更高的新服务器,上午业务高峰时应用非常缓慢,严重影响到业务运行. 1.现象 通过SQL专家云实时可视化界面看到大量的绿点,绿点表示会话在等待某项资源,绿点越大 ...
- w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法
对于IIS 管理员来说,经常会碰到 Web 服务器 CPU 占用 100% 的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析 w3wp.exe(IIS ) 占用 CPU 100% 的一些 ...
- 通过top命令发现plymouthd进程cpu负载达到近100% 解决办法
最近几天一直遇到服务器cpu100%, 通过top命令发现plymouthd进程cpu负载达到近100% 解决方法:打开 /boot/grub/menu.lst , 去掉 “rhgb quiet”这两 ...
- 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记》[转]
转载地址:http://bbs.chinaunix.net/archiver/tid-1823500.html 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 ...
随机推荐
- LeetCode & Online Programming Learning Platform
leetcode LeetCode is the best platform to help you enhance your skills, expand your knowledge and pr ...
- C-Lodop提示“有窗口已打开,先关闭它(持续如此请刷新页面)!”
c-lodop显示“有窗口已打开,先关闭它(持续如此时请刷新页面)!”如果连续执行多个预览语句等导致的,可以预先判断一下,并可以自定义修改窗口已打开的提示,该默认提示的位置如本博客的下图http:// ...
- SQL Server 2008 开启远程连接
除了 IP1.IP2 外,也要把 IPALL 的端口也设置为 1433 参考:SQL Server开启1433端口,彻底解决方案
- 【python练习题】程序1
#题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? count = 0 for i in range(1,5): for j in range(1,5): for k ...
- Atcoder Beginner Contest 118 D-Match Matching(完全背包)
题目链接 题意就是给N根火柴,M个数(M只能是1到9,对应的数字也只能是1到9),只能用这M个出现过的数(但每个数可以随便用多少个,只要火柴够)来拼出一个数字(拼出1,2,3,4,5,6,7,8,9分 ...
- centOS7 下配置和启动maria数据库
从最新版本的linux系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: yum install mariadb mariadb-server systemct ...
- Lisp小程序,大作用,不该放弃!
从听说autolisp到现在已经20年了, 学了一点点, 可惜中间没能坚持下来, 放弃了! 今天在画图, 图纸是从revit转成dwg的, 其中有些文本的朝向是错误的, 如果手工旋转很是费事, ...
- Django 缓存、序列化、信号
一,缓存 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcac ...
- [SP1043] GSS1 - Can you answer these queries I
传送门:>Here< 题意:求区间最大子段和 $N \leq 50000$ 包括多组询问(不需要支持修改) 解题思路 线段树的一道好题 我们可以考虑,如果一组数据全部都是正数,那么问题等同 ...
- 树莓派播放网络磁盘MP3文件
树莓派映射网络磁盘 sudo mount -t cifs -o username=jerry.huang,password=Hello2014 //10.10.0.1/Public/ESLPod.co ...