最近发现机器内存占用很高,导致经常不响应,进行问题排查,发现php-fpm占用内存过高,如下图所示:
服务中每个php-fpm占用内存都在几十m左右,主要是进程比较多,整体占用的内存比较可观,导致机器剩余内存比较紧张,找到占用内存的元凶之后,可以对php-fpm的配置进行调整,可以参考其他的文章,比如下面链接:
Linux的php-fpm优化心得-php-fpm进程占用内存大和不释放内存问题(转) – 睡着的糖葫芦 – 博客园 (cnblogs.com)
我们这里的配置文件的位置与链接中文章是不一样的,从上面截图来看,配置文件位于/www/server/php/74/etc/php-fpm.conf路径下面,使用下面命令编辑这个文件
vim /www/server/php/74/etc/php-fpm.conf
可以看到如下内容:
主要需要对max_children进行调整,这里每个进程大致占用60m左右的空间,设置max_children为20,整体内存占用在1.2G作用,这个可以根据自己的机器可用内存进行配置
配置完成之后,需要对php-fpm进行重启,如果机器中有php-fpm对应的服务,可以使用命令
systemctl restart php-fpm
进行重启,这里并没有配置这样的服务,可以手动使用命令
kill 1371 # 杀掉php-fpm进程,1371是上面php-fpm主进程的id
php-fpm -c /www/server/php/74/etc/php-fpm.conf # 启动php-fpm进程
进行重启,重启之后就不会占用太多内存了