Назад | Перейти на главную страницу

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

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

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

Простой подход к определению фактического количества детей в бассейне прост: сделайте это # потоков для вашего процессора в начале, затем немного увеличьте, повторяя тест производительности для вашей установки. Как только производительность перестанет расти или как только вы достигнете ограничения памяти, перестаньте увеличиваться.

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