PHP-FPM дочерние процессы, потребляющие оперативную память - PullRequest
0 голосов
/ 05 марта 2019

У меня относительно загруженный веб-сервер с Nginx и PHP-FPM, и после обновления до PHP 7.2 я заметил, что через некоторое время процессы PHP-FPM пожирают всю мою оперативную память.

Сервер являетсяМашина KVM (Centos 7) с 32 ГБ ОЗУ и 8 ГБ подкачки:

[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, в 4 марта каждый процесс php-fpm использует около 1 ГБ ОЗУ, что составляет общий объем памяти (22 процесса) в 22 ГБ.

Каждое использование оперативной памяти процесса PHP-FPM увеличивается примерно на 300 МБ в день.

Это моя конфигурация:

[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

Есть идеи о том, что происходит?Заранее спасибо.Привет.

1 Ответ

0 голосов
/ 06 августа 2019

Это выглядит просто, если у вас есть утечки памяти, вы должны повторно запустить PHP-работника как можно больше, это можно настроить с помощью опции pm.max_requests.

Начните с 500, чем больше, тем лучшепроизводительность у вас есть, но тем больше утечки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...