Aumento transitório repentino no uso de CPU do processo do Apache. Como rastrear?

3

Eu estou rodando o Apache e de vez em quando [uma vez a cada dois dias parece] o número de processos do apache vai saltar consideravelmente e cada um ocupa cerca de 75% do uso da cpu.

Eu adoraria poder rastrear esses processos para o host virtual real que está recebendo as solicitações. Alguma sugestão?

    
por Sean Kimball 29.03.2011 / 22:01

1 resposta

1

O registro em log do Apache tem uma grande quantidade de ótimas opções , e há algumas boas opções para tentar descobrir o que está acontecendo. Gostaria de começar com %D ou %T , que registra o tempo que o Apache demorou para concluir a solicitação, supondo que o que está ocupando todo o tempo da CPU também esteja levando mais tempo "real".

Se você estiver usando o Prefork MPM, poderá formatar seus registros para incluir %P . Isso registrará o ID do processo do processo do apache realmente manipulando a solicitação para que você possa corresponder a solicitação à sua saída top . As IDs do processo serão reutilizadas muito rapidamente (devido a várias solicitações por filho), portanto, você ainda precisará verificar o registro de data e hora no log, mas deverá encontrar a solicitação específica que o processo do apache estava processando nesse momento.

Se você estiver usando Worker, poderá tentar %{tid}P e fazer a correspondência com top -H , que imprime o ID do encadeamento na coluna PID.

    
por 30.03.2011 / 00:11