Apache2 no linux - como rastrear problemas de desempenho

1

Estou preso neste tópico há algum tempo: como posso obter mais detalhes sobre onde o tempo de resposta é atingido?

Meu problema é a extrema variação nos tempos de resposta. Às vezes, o servidor leva 5 ou 10 segundos ou mais para responder (especialmente para a primeira chamada). Firebug marca este tempo principalmente como "espera". Quando eu verifico localhost / server-status (onde este atraso ocorre também), a maioria dos slots está ocupada - mas meio segundo depois, eles estão livres novamente. Eu mal posso imaginar que existem muitos picos de carga para explicar esse comportamento.

Outra coisa estranha: Há solicitações de imagens JPG de 100K que às vezes - de acordo com o status do servidor - levam 1, 2 ou até 10 segundos para serem executadas (coluna Req). Ao mesmo tempo, scripts PHP que incluem alguma carga de CPU são tratados em 100 ms ou menos (bem, outros também precisam de 1 ou 2 segundos). As solicitações para outras imagens (menores) de GIF ou PNG são listadas até com um tempo de 0 ms.

Aqui é onde estou: Existe alguma maneira de ver o que leva 10 segundos para enviar uma imagem JPG simples?

Obrigado pelas suas boas ideias!

-

Sistema: Estou falando de um servidor da Web Apache 2 no Debian Linux (Sequeeze) que fornece principalmente páginas e imagens PHP com script. O servidor está sendo executado em um VPS em um hoster de servidor profissional da Alemanha. Não há troca de memória no servidor (até onde eu posso ver pelas estatísticas) e a carga da CPU não é especialmente alta (o tempo de atividade reporta um valor em torno de 3 que pode subir para cerca de 32 sob carga extrema - eu acho que deveria ser um 8 Sistema -CPU). Claro, eu nunca posso ter certeza do que os outros VPSs no servidor fazem.

Configurações especiais: O servidor está enviando todos os dados via SSL. Reduzi ainda mais o tempo de manutenção para 1 segundo, porque os usuários normalmente gastam muito tempo em cada página (30-60 s) e manter essas conexões ativas depois que as imagens são recuperadas esgotaria rapidamente a memória do servidor (ou 2 GB eu posso usar no VPS). Devido a scripts PHP maiores, um segmento típico ocupa 20 MB de RAM. Portanto, existem apenas 50 slots de servidor (MaxClient) dos quais 35 suportam keep-alive.

Material: criei uma página de teste ( link ) que é observado pelo servidor site24x7.com (geralmente responde em 1,4 segundos, mas regularmente há picos de até 20 ou 30 segundos). Para conferir os resultados, enviei para Load Impact es bem: link

    
por BurninLeo 25.04.2012 / 16:08

2 respostas

1

Adicionando isso como uma resposta, em vez de apenas o comentário, já que é isso que aconteceu

O problema parecia um problema de latência de disco. Houve algumas razões pelas quais pensei que este era o problema

  • Os tempos de resposta variam muito, sem sinais de aviso dos indicadores de carga padrão.
  • Hospedado em um VPS que é frequentemente sobrevendido e com backup de discos NAS / SAN
  • Outras tentativas de esmagar o problema foram infrutíferas

Como você não está no controle do hardware, você tem maneiras limitadas de resolver esse problema. Você pode entrar em contato com o provedor para que ele tente consertá-lo, use um sistema de arquivos suportado por RAM ou um cache na memória (que você experimentou) ou troque provedores.

    
por 26.04.2012 / 16:54
1

This is where I am stuck: Is there any way to see what takes 10 seconds to send a simple JPG image?

O plugin TamperData para o Firefox mostrará explicitamente o que você está baixando do servidor e quanto tempo cada item está levando:

link

No entanto, você também pode ter alguns outros problemas de DNS, se levar 10 segundos para fazer o download.

Você também pode querer verificar no apachetop. Instale-o no seu servidor web Apache. Eu tenho instalado no meu e verificá-lo de vez em quando. Ele mostrará as páginas com a carga mais alta:

link

    
por 25.04.2012 / 16:42