Welcome! Log In Create A New Profile

Advanced

Посоветуйте оптимальные параметры для php-fpm

Posted by sevmax 
Посоветуйте оптимальные параметры для php-fpm
July 11, 2011 09:03AM
Добрый день,
порекомендуйте оптимальные параметры для сайта с высоким трафиком.
Используется связка nginx + php-fpm и php-fpm потребляет со временем
12 Gb RAM и уходит в свап на 2-3 Гб.

www.conf:
[www]
listen = /var/run/php-fpm.sock
listen.allowed_clients = 127.0.0.1
user = apache
group = apache
pm = dynamic
pm.max_children = 5000
pm.start_servers = 300
pm.min_spare_servers = 200
pm.max_spare_servers = 500
;pm.max_requests = 500
pm.status_path = /status
ping.path = /ping
slowlog = /var/log/php-fpm/www-slow.log
catch_workers_output = no
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = off

Заранее спасибо.
Зачем такое количество потоков?

8 июля 2011 г. 16:13 пользователь Maxim F. <sevmax@gmail.com> написал:
> Добрый день,
> порекомендуйте оптимальные параметры для сайта с высоким трафиком.
> Используется связка nginx + php-fpm и php-fpm потребляет со временем
> 12 Gb RAM и уходит в свап на 2-3 Гб.
>
> www.conf:
> [www]
> listen = /var/run/php-fpm.sock
> listen.allowed_clients = 127.0.0.1
> user = apache
> group = apache
> pm = dynamic
> pm.max_children = 5000
> pm.start_servers = 300
> pm.min_spare_servers = 200
> pm.max_spare_servers = 500
> ;pm.max_requests = 500
> pm.status_path = /status
> ping.path = /ping
> slowlog = /var/log/php-fpm/www-slow.log
> catch_workers_output = no
> php_admin_value[error_log] = /var/log/php-fpm/www-error.log
> php_admin_flag[log_errors] = off
>
> Заранее спасибо.
08.07.2011 19:13, Maxim F. пишет:
> Добрый день,
> порекомендуйте оптимальные параметры для сайта с высоким трафиком.
> Используется связка nginx + php-fpm и php-fpm потребляет со временем
> 12 Gb RAM и уходит в свап на 2-3 Гб.
>
> www.conf:
> [www]
> listen = /var/run/php-fpm.sock
> listen.allowed_clients = 127.0.0.1
> user = apache
> group = apache
> pm = dynamic
> pm.max_children = 5000
> pm.start_servers = 300
> pm.min_spare_servers = 200
> pm.max_spare_servers = 500
> ;pm.max_requests = 500
> pm.status_path = /status
> ping.path = /ping
> slowlog = /var/log/php-fpm/www-slow.log
> catch_workers_output = no
> php_admin_value[error_log] = /var/log/php-fpm/www-error.log
> php_admin_flag[log_errors] = off
>
> Заранее спасибо.
У вас подключен какой-нибудь xcache? Если да, то вроде как он жрет
память на каждый инстанс воркера. Про другие оптимайзеры не знаю, но вот
с xcache была такая же проблема.
On 07/08/2011 05:42 PM, Игорь Вавржин wrote:
> У вас подключен какой-нибудь xcache? Если да, то вроде как он жрет
> память на каждый инстанс воркера.

Вы что-то путаете.
Все кэши байткода используют shared memory, один большой кусок на все процессы.
И XCacheне исключение.

--
Wbr,
Antony Dovgal
---
http://pinba.org - realtime profiling for PHP
А что top говорит?

2011/7/8 Antony Dovgal <tony@daylessday.org>:
> On 07/08/2011 05:42 PM, Игорь Вавржин wrote:
>>
>> У вас подключен какой-нибудь xcache? Если да, то вроде как он жрет
>> память на каждый инстанс воркера.
>
> Вы что-то путаете.
> Все кэши байткода используют shared memory, один большой кусок на все
> процессы.
> И XCacheне исключение.
>
> --
> Wbr,
> Antony Dovgal
> ---
> http://pinba.org - realtime profiling for PHP
>



--
Best regards, Tony
CEO, New Castle LLC

E-mail: tony@newcastle.su
ICQ: 313-612-448
Skype: a2nt.fd
Mob. +7 (923) 136-6013
http://NewCastle.su
08.07.2011 20:57, Antony Dovgal пишет:
> On 07/08/2011 05:42 PM, Игорь Вавржин wrote:
>> У вас подключен какой-нибудь xcache? Если да, то вроде как он жрет
>> память на каждый инстанс воркера.
>
> Вы что-то путаете.
> Все кэши байткода используют shared memory, один большой кусок на все
> процессы.
> И XCacheне исключение.
>
Я это прекрасно понимаю, но когда его включили с выделением ему памяти
100мб - то он сожрал 100*на количество воркеров фпм. Так что бага это
или фича разбираться не стали, а просто его отключили.
Спасибо за ответы, очень рад, что сообщество php-fpm такое активное!

Теперь по порядку ответы:
> Зачем такое количество потоков?
Я сам вижу, что достаточно большое количество и поэтому задал вопрос
по оптимизации.
Меня интересует оптимизация этих параметров:

pm.max_children = 5000
pm.start_servers = 300
pm.min_spare_servers = 200
pm.max_spare_servers = 500
pm.max_requests = 500

Веб-сервера - 8CPU, 12 GB RAM на сервер.
nginx использует очень экономно ресурсы, а вот php-fpm при таком
конфиге постепенно съедает 12 Гб оперативки и принимается за swap,
выбирая где-то 2-3 Гб.

Посоветуйте конфигурацию, которая не будет потреблять более 9 Гб при,
допустим, 1000 одновременных сессий на сервер.

> xcache?
eaccelerator

> А что top говорит?
говорит, что CPU нагружено на 30-50 %, а RAM на 100% + swap.

Спасибо за поддержку!
ставьте 1000 max_children и оптимизируйте время генерации страницы,
если при пиковых нагрузках у вас все 1000 воркеров будут заняты. и
1000 - это тоже дофига, кстати. несколько десятков, ну на крайняк
сотен, но не тысяч.

2011/7/8 Maxim F. <sevmax@gmail.com>:
> Спасибо за ответы, очень рад, что сообщество php-fpm такое активное!
>
> Теперь по порядку ответы:
>> Зачем такое количество потоков?
> Я сам  вижу, что достаточно большое количество и поэтому задал вопрос
> по оптимизации.
> Меня интересует оптимизация этих параметров:
>
> pm.max_children = 5000
> pm.start_servers = 300
> pm.min_spare_servers = 200
> pm.max_spare_servers = 500
> pm.max_requests = 500
>
> Веб-сервера - 8CPU, 12 GB RAM на сервер.
> nginx использует очень экономно ресурсы, а вот php-fpm при таком
> конфиге постепенно съедает 12 Гб оперативки и принимается за swap,
> выбирая где-то 2-3 Гб.
>
> Посоветуйте конфигурацию, которая не будет потреблять более 9 Гб при,
> допустим, 1000 одновременных сессий на сервер.
>
>> xcache?
> eaccelerator
>
>> А что top говорит?
> говорит, что CPU нагружено на 30-50 %, а RAM на 100% + swap.
>
> Спасибо за поддержку!



--

wbr,
fisher
08.07.2011 16:59, Игорь Вавржин пишет:
> Я это прекрасно понимаю, но когда его включили с выделением ему памяти
> 100мб - то он сожрал 100*на количество воркеров фпм. Так что бага это
> или фича разбираться не стали, а просто его отключили.

В опять путаете.
Это shared memory. Она общая для всх процессов/воркеров php.
Xcache не отжирает память.

Попробуйте поочередно поотключать неиспользуемые модули php.

--
Vladislav V. Prodan
VVP24-UANIC
+380[67]4584408
+380[99]4060508
vlad11@jabber.ru
Re: Посоветуйте оптимальные параметры для php-fpm
January 22, 2012 12:16PM
Решил не создавать новой темы....
Подскажите пожалуйста. По какой формуле расчитать значения для параметров

pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
pm.max_requests
Re: Посоветуйте оптимальные параметры для php-fpm
March 06, 2012 01:08AM
Так там же вроде она написана:
Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2

user~13 Wrote:
-------------------------------------------------------
> Решил не создавать новой
> темы....
> Подскажите пожалуйста. По
> какой формуле расчитать
> значения для параметров
>
> pm.max_children
> pm.start_servers
> pm.min_spare_servers
> pm.max_spare_servers
> pm.max_requests
Re: Посоветуйте оптимальные параметры для php-fpm
March 06, 2012 01:13AM
Да и вот хорошая статья http://stephentanner.com/index.php/2011/07/tuning-php-fpm/
user~13 Wrote:
-------------------------------------------------------
> Решил не создавать новой
> темы....
> Подскажите пожалуйста. По
> какой формуле расчитать
> значения для параметров
>
> pm.max_children
> pm.start_servers
> pm.min_spare_servers
> pm.max_spare_servers
> pm.max_requests
Re: Посоветуйте оптимальные параметры для php-fpm
March 26, 2012 01:04PM
Также регулярно сталкиваюсь с такого рода варнингами в логе php-fpm:

[pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 44 total children
[pool www] server reached pm.max_children setting (50), consider raising it

WebServer работает на дедике: E2180 @ 2.00GHz, 2 cores / 2Gb RAM DDR2

FPM:
pm.max_children = 50
pm.start_servers = 30
pm.min_spare_servers = 10
pm.max_spare_servers = 50

NGINX:
worker_processes 4;
worker_connections 512;

Подскажите оптимальные настройки под мое железо.

Спасибо.
Re: Посоветуйте оптимальные параметры для php-fpm
September 28, 2014 10:57AM
elvis Wrote:
-------------------------------------------------------
> Да и вот хорошая статья
> http://stephentanner.com/index.php/2011/07/tuning-php-fpm/

Статья действительно хорошая, но "ссылка переехала" - https://stephentanner.com/tuning-php-fpm.html
pm.max_children = необходимо вычислить сколько памяти занимает один процесс, потом разделить тот объем памяти который вы хотите выделить для php5-fpm, на объем одного процессора, получите количество pm.max_children (наример 10000мб/50мб=200)
pm.min_spare_servers = этот параметр начать с количество ядер процессора умножить на 2 (пример 4 ядра * 2 = 8)
pm.max_spare_servers = этот параметр количество ядер процессора * 4 (пример 4 *4 = 16)
pm.start_servers = этот параметр вычисляется по формуле (pm.min_spare_servers+pm.max_spare_servers)/2 (пример (8+16)/2=12)
Итого на выходе получаем примерно конфигурацию для 4 ядерного процессора 10гб памяти (выделенные только под PHP5-FPM, возможно у вас 16Гб общей)
pm.max_children = 200
pm.start_servers = 12
pm.min_spare_servers = 8
pm.max_spare_servers = 16
Примерно так, все индивидуально, но с этого можно начать.
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 122
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready