Como descobrir o que está causando o Apache / httpd a ser executado com um uso de memória tão alto

1

Estou tendo um site que, quando atingido por uma aranha, sai das alças. Normalmente tudo parece bem. Nós temos um nagios montior para relatar quando o CPU está acima de 80%.

Quando recebemos os avisos, eu começo a ver os registros via sudo tail -f access_log . Na maioria das vezes, é uma aranha.

Parece que foi pego em uma URL que a aranha empacotou com um número infinito de valores de string de consulta.

O que eu tentei:

Desde então, coloquei Disallow: *?* no robots.txt.

Atual top :

enter image description here

enter image description here

Pergunta:

Existem outros métodos que eu poderia usar para dizer às aranhas para se acalmarem em nosso site? Na memória alta use processos httpd, posso saber quais páginas estão chamando para isolar os pontos problemáticos neste site?

Ou seja, como encontro e isolo o causador de problemas?

Errata: Estamos executando o Apache 2.2.15 no RHEL 6.8 com o memcache.

# apachectl -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb  4 2016 02:44:09
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
    
por Rick 14.07.2016 / 17:41

1 resposta

2

Você pode tentar usar o lsof para ler os arquivos abertos pelo processo do apache:

lsof -p PID

Verificar os logs do apache em busca de erros que correspondam aos timestamps do spider crawl em seus logs de acesso também é uma boa idéia.

Também gosto de usar o goaccess para ajudar a analisar os dados de log e extrapolar informações úteis:

link

strace e ltrace também são excelentes utilitários que você pode considerar usar para ajudar na solução de problemas.

    
por 14.07.2016 / 23:48