解决:php进程过多,耗用系统大量内存

 中午在一台kvm上配置监控,但是明显感觉机器卡的受不了,就简单的排查了下

1、查看服务器网卡流量

sar -n DEV 2 10

可以看出网卡的流量并不是很大,排除网卡方面的问题。

2、查看CPU

top

上图可以看出CPU占用也不是很多,但是发现了很多php-cgi的进程

3、查看系统内存

free -m

不看不知道,一看吓一跳,系统内存已经使用完了,并且也使用了swap剩余内存,但是究竟是什么程序占用了内存呢。

ps -ef | grep php

查看当前系统中的所有进程,过滤出来php相关的进程

大概统计了下,将近有200多个php相关进程,有什么方法能减少这些进程呢?

答案肯定是有的,在php-cgi的配置文件中是可以自定义php的进程数的。

vim /usr/local/php/etc/php-fpm.conf

搜索  max_children 字段,将后面的数字改成自己要定义的进程数

默认有256个,怪不了那么卡,我改成了100 个。

如果安装的是更高版本的PHP,则需要根据你的硬件配置设置合理的参数就可以了。

 pm.max_children = 200

 pm.start_servers = 100

 pm.min_spare_servers = 50

 pm.max_spare_servers = 150

 pm.max_requests = 5000

 

pkill php  结束所有的php进程

/usr/local/php-5.2.17/sbin/php-fpm start  启动php

在查看进程

发现明显减少了。

最后在查看下系统的内存

问题解决,系统也明显感觉不到卡了。

你可能感兴趣的:(耗用系统大量内存,php进程过多)