У меня есть веб-сервер Linux (Ubuntu 12.04, ядро 3.2.0), на котором запущен Magento с большим количеством дочерних процессов PHP-FPM.
Поскольку Magento - тяжелый фреймворк, я часто вижу несколько дочерних процессов, которые переходят в CPU% (при просмотре с помощью htop) в течение нескольких секунд, прежде чем выпадать из верхней части N.
Я читал о планировщиках ЦП Linux и получил то, что SCHED_BATCH кажется чтобы предоставить процессам более длительные интервалы времени, чем SCHED_OTHER по умолчанию.
Было бы полезно, если бы я изменил планировщики для всех процессов PHP-FPM на SCHED_BATCH? Или я недопонимаю планировщики?
После обучения немного о SCHED_BATCH, Я бы даже не стал его тестировать:
SCHED_BATCH также запускает гораздо более длинные временные интервалы, подобные пакету - временной интервал SCHED_BATCH по умолчанию составляет 1,5 секунды.
SCHED_BATCH был явно разработан для очень длительных (часы или даже дни) ресурсоемких задач. Ваши задания требуют больших вычислительных ресурсов всего за секунды или доли секунды.
Это в значительной степени делает его недоступным для веб-сервера. И было бы хуже, если бы база данных находилась на той же машине, поскольку они могли бы бороться за один из этих сверхдлинных временных интервалов.