php-fpm儿童进程吃公羊



我有一个带有NGINX和PHP-FPM的相对繁忙的Web服务器,在升级到PHP 7.2后,我注意到PHP-FPM流程在一段时间后正在吃所有我的RAM。p>服务器是具有32GB RAM和8GB交换的KVM机器(CentOS 7):

[root@www ~]# free
              total        used        free      shared  buff/cache   available
Mem:       32779736    18397204      239372     1508476    14143160    12417824
Swap:       8257532      167680     8089852

在这里您可以看到内存消耗:https://justpaste.it/2vaqy(我试图在这里粘贴它,但是Stackoverflow说我的帖子看起来垃圾邮件)

您可以在RSS Colum中看到,3月4日,每个PHP-FPM进程都使用约1GB的RAM,这使得总存储器COM次数(22个过程)为22GB。

每个PHP-fpm过程RAM使用每天增加约300MB。

这是我的配置:

[root@www ~]# cat /etc/php-fpm.conf | sed '/^;/d' | sed '/^$/d'
include=/etc/php-fpm.d/*.conf
[global]
pid = /run/php-fpm/php-fpm.pid
error_log = /var/log/php-fpm/error.log
daemonize = yes
[root@www ~]# cat /etc/php-fpm.d/www.conf | sed '/^;/d' | sed '/^$/d' 
[www]
user = www
group = www
listen = xxxxx/php-fpm.sock
listen.mode = 0666
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 200
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.status_path = /xxxx-fpm
slowlog = /var/log/php-fpm/www-slow.log
request_terminate_timeout = 5h
php_flag[display_errors] = off
php_admin_value[error_log] = xxxx/php-fpm-error.log
php_admin_flag[log_errors] = on

这是我的phpinfo:https://justpaste.it/50zin

对发生的事情有什么想法吗?先感谢您。问候。

这看起来很简单,如果您有内存泄漏,则必须重新产生php Worker,可以使用pm.max_requests选项进行配置。

从500开始,您拥有的最佳性能越多。

最新更新