O Apache usa 100% da CPU. O comando “ps” pode me dizer o que está fazendo?

8

Eu tenho um servidor Linux SLES 10 e, algumas vezes, ele é maximizado pelo Apache para 100% da CPU.

Com ps ax posso ver que o Apache gerou ~ 50 processos do Apache.

Pode, e. o comando ps me diz o que cada um desses processos do Apache está fazendo?

Ou talvez algum outro método para que eu possa ver quais páginas da web acionam o problema?

    
por Sandra 17.07.2010 / 15:38

5 respostas

14

Meu arquivo /etc/httpd/conf/httpd.conf tem esta seção:

# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from .example.com
    Allow from 127. 192.168.1.
</Location>

Assim, se eu for para link , recebo uma página que diz:

  1. versão do servidor
  2. link
  3. uso atual da CPU
  4. de solicitações processadas e # de funcionários inativos

  5. uma grade do que cada processo está fazendo
  6. pedidos recentes

    Status do Servidor Apache para 192.168.3.1

    Versão do servidor: Apache / 2.2.3 (Red Hat)
    Servidor construído: Jul 14 2009 06:04:04

    Hora Atual: Sábado, 17-Jul-2010 10:20:31 CDT
    Hora de Reiniciar: Sábado, 17-Jul-2010 10:13:12 CDT
    Geração de servidores pai: 0
    Tempo de atividade do servidor: 7 minutos e 19 segundos
    Acessos totais: 51 - Total de tráfego: 156 kB
    Uso da CPU: u0 s0 cu0 cs0
    .116 solicitações / s - 363 B / segundo - 3132 B / request
    1 solicitações atualmente sendo processadas, 7 trabalhadores ociosos

    __ W

por 17.07.2010 / 17:24
2

strace pode informar o que um processo específico está fazendo no nível das chamadas do sistema, mas não oferece uma "visão de 50 pés" do que está acontecendo. Você precisará juntar as chamadas do sistema que está usando para descobrir isso.

    
por 17.07.2010 / 15:54
2

Se você tiver um site com um back-end de banco de dados, poderá procurar no SGBD quais comandos estão em execução no momento. Talvez isso possa ajudá-lo a restringir onde, em seu código do site, a carga é gerada.

Além disso, você poderia aumentar o nível de log do daemon httpd. Então você tem mais informações nos registros.

    
por 17.07.2010 / 16:09
0

Há também o ltrace, que funciona como strace, mas com chamadas de biblioteca.

    
por 17.07.2010 / 21:37
0

Você pode achar mais informativo do que o ps.

    
por 18.07.2010 / 04:01