PHP-FPM в Linux, SCHED_BATCH или SCHED_OTHER?

У меня есть веб-сервер Linux (Ubuntu 12.04, ядро ​​3.2.0), на котором запущен Magento с большим количеством дочерних процессов PHP-FPM.

Поскольку Magento - это тяжелый фреймворк, я часто вижу несколько дочерних процессов, которые в течение нескольких секунд накапливаются в CPU% (при просмотре с помощью htop), прежде чем выпадать из верхней буквы N.

Я читал о планировщиках ЦП Linux, и то, что я получил, было то, что SCHED_BATCH, кажется, дает более длинные временные интервалы для процессов, чем SCHED_OTHER по умолчанию.

Было бы полезно, если бы я изменил планировщики для всех процессов PHP-FPM на SCHED_BATCH? Или я неправильно понимаю планировщики?

1 ответ

Решение

Узнав немного о SCHED_BATCH, я бы даже не попытался его сравнить:

SCHED_BATCH также запускает намного более длинные, похожие на пакет временные интервалы - временной интервал SCHED_BATCH по умолчанию составляет 1,5 секунды.

SCHED_BATCH был четко спроектирован для очень длительных (часов или даже дней) работ с интенсивными вычислениями. Ваша работа требует значительных вычислительных ресурсов в течение нескольких секунд или долей секунды.

Это в значительной степени делает его недоступным для веб-сервера. И было бы хуже, если бы база данных находилась на одном компьютере, поскольку они могли бы бороться за один из этих сверхдлинных временных интервалов.

Другие вопросы по тегам