Eu tenho um servidor web Linux (Ubuntu 12.04, kernel 3.2.0) rodando Magento com um grande número de processos filho PHP-FPM.
Como o Magento é uma estrutura pesada, muitas vezes vejo vários processos filhos para baloon em CPU% (quando visualizados usando htop) por vários segundos antes de cair fora do N principal.
Tenho lido sobre os agendadores de CPU do Linux e o que descobri foi que SCHED_BATCH parece fornecer fatias de tempo mais longas aos processos do que o SCHED_OTHER padrão.
Seria benéfico se eu mudasse os agendadores de todos os processos PHP-FPM para SCHED_BATCH? Ou estou entendendo mal os agendadores?
Depois de aprender um pouco sobre SCHED_BATCH , nem tentaria compará-lo:
SCHED_BATCH foi claramente projetado para tarefas de computação intensiva de execução muito longa (horas ou até dias). Seus trabalhos são de computação intensiva apenas por segundos ou frações de segundos.
Isso praticamente o torna impossível para um servidor da web. E seria pior se o banco de dados estivesse na mesma máquina, pois eles poderiam disputar uma dessas fatias de tempo extralongas.