Максимальное количество потоков php-fpm на одно ядро ​​

Я хотел бы спросить, как получить наилучшее (максимальное) количество потоков php-fpm на одно ядро? Как его протестировать (на linux / debian)? И как распознать, что это количество уже слишком много? Спасибо.

2
задан 16 October 2016 в 09:25
1 ответ

Вы, вероятно, имеете в виду процессы в бассейне. Это зависит, в первую очередь, от того, насколько сильно блокируется ваш реальный PHP-код. Чем больше он просто ждет, тем больше процессов вам нужно иметь, потому что больше choldren будет просто блокировать и ждать чего-то (например - завершения внешних HTTP запросов). С другой стороны, это фактическое количество зависит от количества имеющейся у вас памяти. Основное правило 2-4 proccesses per core применимо к некоторому идеальному коду, который не сильно блокирует. Конечно, вы можете определить формальное количество потоков на ядро, посмотрев на характеристики вашего процессора, например # из Threads на ядро для Intel E5-2640 CPU будет 2.

Простой подход к определению фактического количества детей в пуле: сделайте его # из Threads для вашего процессора в начале, затем немного увеличьте, повторив тест бенчмаркинга для вашей установки. Как только производительность остановится, чтобы увеличить, Также имейте в виду, что в ситуации, когда какой-нибудь внешний ресурс попадет в его крышку или станет невосприимчив к нему (т.е. - сервер базы данных, или какой-нибудь внешний HTTP-сервер, который может быть запрошен Вашим кодом) - Вы попадёте в крышку, независимо от того, сколько у Вас детей в пуле, они просто застрянут в состоянии ожидания. Поэтому при определении крышки пула следует помнить об этом возможном узком месте

.
2
ответ дан 3 December 2019 в 11:31

Теги

Похожие вопросы