先通过如下命令查看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未释放内存导致资源被耗尽的解决方法