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