我在 Wordpress 中运行密集作业时收到此错误消息:
[pool www] server reached pm.max_children setting (5), consider raising it
Run Code Online (Sandbox Code Playgroud)
在 2GB RAM 服务器上使用 Php-fpm 7 + Nginx。
当我运行时:
ps aux | grep fpm
root 1508 0.0 1.5 367260 31380 ? Ss Nov05 0:11 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data 10231 0.0 2.7 453420 55540 ? S 15:10 0:03 php-fpm: pool www
www-data 13266 0.0 2.4 449892 50900 ? S 22:13 0:00 php-fpm: pool www
www-data 13572 0.0 1.8 372468 37740 ? S 23:14 0:00 php-fpm: pool www
user+ 13721 0.0 0.0 14512 980 pts/0 R+ 23:30 0:00 grep --color=auto fpm
Run Code Online (Sandbox Code Playgroud)
尝试按照本教程确定我需要的正确设置。http://bit.ly/2edUbir
我无法运行此命令,因为它显然不受 Php-fpm 7 支持。
ps -ylC php-fpm --sort:rss
Run Code Online (Sandbox Code Playgroud)
Nan*_*mar 16
要调整设置,您需要根据您安装的 PHP-FPM 版本找到您的 php-fpm.conf 或 www.conf。就我而言,我必须编辑/etc/php/7.0/fpm/pool.d/www.conf。您需要查找以下设置并根据您的服务器规格进行调整:
[php-fpm-pool-settings]
pm = dynamic
pm.max_children = 25
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
Run Code Online (Sandbox Code Playgroud)
要了解用于 pm.max_children 的内容,您可以使用以下计算: pm.max_children = 专用于 Web 服务器的总 RAM / 最大子进程大小。请记住为系统上运行的额外服务留出一些 RAM。
根据您的服务名称,您可以尝试以下操作:
sudo systemctl restart php-fpm
sudo systemctl restart php7.0-fpm
Run Code Online (Sandbox Code Playgroud)
以下命令将帮助我们确定每个(PHP-FPM)子进程使用的内存:
ps -ylC php-fpm --sort:rss
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方便的命令检查单个 PHP-FPM 进程的平均内存使用情况:
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
Run Code Online (Sandbox Code Playgroud)