Embora suas configurações tenham espaço para melhorias, como o que a Embreau mencionou, elas podem não ser a causa direta.
É potencialmente o seu aplicativo ou algo ao longo da pilha causando o problema.
Por exemplo, se seu aplicativo estava aguardando uma resposta de um banco de dados, ele poderia eventualmente fazer com que todos os threads estivessem aguardando, causando problemas mesmo em carga baixa. Esse desempenho seria frequentemente examinado por conexões ativas de banco de dados.
O mesmo desempenho pode ser exibido por um bug de aplicativo e seria mais difícil isolá-lo. Embora isso seja verdade, a menos que haja indícios de que essa seja a causa, eu focaria as duas coisas abaixo primeiro.
Existe um motivo específico pelo qual você tem ThreadsPerChild
ou SendBufferSize
configurado? Com ThreadsPerChild
, a menos que haja uma necessidade incomum ou você tenha dado a devida atenção ao seu uso, o padrão deve estar correto. Se não for ajustado adequadamente, pode esgotar a memória física e começar a trocar, o que reduziria o desempenho.
MaxRequestsPerChild
definido como 0
é imprudente. Se o seu aplicativo tiver vazamentos de memória, os filhos do Apache nunca reciclarão. Você quer que eles reciclem.
Eu estou supondo que você é um desenvolvedor. Os administradores do sistema devem trabalhar em conjunto com você para resolver esse problema, já que é definitivamente um problema multifuncional.