因php-fpm未释放内存导致资源被耗尽的解决方法

先通过如下命令查看php-fpm的运行情况:

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | sort -nrk5 | grep www | grep -v grep

修改php-fpm配置

在php-fpm中有三个重要参数对内存的影响很大,即:模式、子进程数和闲置超时时间。

默认虽然是按小内存服务器来配置参数,但是没有启用闲置超时参数,本人的服务器就是这个关键原因导致内存被耗尽。

修改配置/etc/php-fpm.d/www.conf

pm = dynamic                   #默认是dynamic,适合小内存主机,需配置pm.min_spare_servers和pm.max_spare_servers参数
pm.max_children = 50           #子进程数太多的话,很容易导致内存占用太多
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 50
pm.process_idle_timeout = 600s #不设置进程闲置超时的话,很容易导致内存无法及时回收
pm.max_requests = 1000

重启php-fpm:

systemctl restart php-fpm

原创文章禁止转载:技术学堂 » 因php-fpm未释放内存导致资源被耗尽的解决方法

精彩评论

1+9=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏