问题描述:
我们在阿里云服务器内使用free -h命令查看到服务器内存使用较高,然后通过top命令查看进程后,发现大量php-fpm子进程消耗了大量内存。我们可以参考下面的步骤来优化下php-fpm进程数来解决php-fpm占用内存高的问题。
解决方案:
1. 登陆您的阿里云服务器,根据自己php的安装目录找到etc/php-fpm.conf配置文件,使用vim编辑该配置文件如下图所示根据自己服务器配置将相应参数调整到合适状态。
其中pm代表控制子进程的方式(有动态和静态两种方式可选,static代表静态dynamic代表动态,一般建议选择动态,因为动态方式资源使用更为灵活一些)。
pm.max_chidren表示静态方式下开启的php-fpm进程数量(动态模式下该参数无效)
pm.start_servers表示动态方式下的起始php-fpm进程数量,pm.min_spare_servers表示动态方式下的最小php-fpm进程数,pm.max_spare_servers表示动态方式下的最大php-fpm进程数量。
因此如果发现php-fpm worker子进程过多,静态模式下可以将pm.max_chidren参数调小,动态模式下将pm.start_servers、pm.min_spare_servers、pm.max_spare_servers参数调小
2. 配置完成后保存退出并重启php-fpm服务使配置生效
通过上面的步骤我们在阿里云服务器内优化了php-fpm进程数后,我们可以再观察下是否还会产生php-fpm子进程占用过多内存的情况。