По умолчанию в MySQL параметр равен 151. Такой вопрос - в связке php 7.0-fpm где у нас следующие конфиг:
echo '[www-data]
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
listen = /run/php/www-data/php-7.0-fpm.sock
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500
; request_slowlog_timeout = 5s
; slowlog = /var/log/php-7.0-fpm/www-data.slow.log
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email protected]
php_admin_value[session.save_path] = /var/lib/php5
php_admin_flag[opcache.enable] = off' > /opt/php-7.0-fpm.d/www-data.conf
Т.е. максимально у нас может быть активных 20 FPM процессов (CPU 12 ядер). Как понимаю, один FPM процесс может обрабатывать только один запрос (параллельно запросы он обрабатывать не может?). При этом у нас там есть еще 3 соединения (mysql console и master/master репликация.
20 запросов на PHP вполне себе нормально. Вопрос такой, стоит ли ограничить max_connection в 25 коннектов при такой конфигурации сервера? Не приведет ли это к too many connections?
Одновременно на сайте человек 50-170 в пики, но 24 FPM-ов вполне себе справляются. Как понимаю, логичнее их вообще уменьшить до 12 по количеству ядер? Запросы обрабатываются fpm-ом где за 30-50 мс.
Еще заметил, что при show processlist; есть коннекты со статусом sleep (хотя pconnect естественно не используется, а используется PDO). Сами коннеты со статусом sleep входят в эти 25 коннектов лимита?
echo '[www-data]
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
listen = /run/php/www-data/php-7.0-fpm.sock
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500
; request_slowlog_timeout = 5s
; slowlog = /var/log/php-7.0-fpm/www-data.slow.log
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email protected]
php_admin_value[session.save_path] = /var/lib/php5
php_admin_flag[opcache.enable] = off' > /opt/php-7.0-fpm.d/www-data.conf
Т.е. максимально у нас может быть активных 20 FPM процессов (CPU 12 ядер). Как понимаю, один FPM процесс может обрабатывать только один запрос (параллельно запросы он обрабатывать не может?). При этом у нас там есть еще 3 соединения (mysql console и master/master репликация.
20 запросов на PHP вполне себе нормально. Вопрос такой, стоит ли ограничить max_connection в 25 коннектов при такой конфигурации сервера? Не приведет ли это к too many connections?
Одновременно на сайте человек 50-170 в пики, но 24 FPM-ов вполне себе справляются. Как понимаю, логичнее их вообще уменьшить до 12 по количеству ядер? Запросы обрабатываются fpm-ом где за 30-50 мс.
Еще заметил, что при show processlist; есть коннекты со статусом sleep (хотя pconnect естественно не используется, а используется PDO). Сами коннеты со статусом sleep входят в эти 25 коннектов лимита?