Por que um host virtual apache2 é lento e outro não?

2

Estou executando o apache2 2.2.14 no Ubuntu 10.04. Eu tenho dois servidores virtuais em execução, ambos usando praticamente o mesmo script conf nos sites disponíveis. Uma das páginas (robertsmetrology.krazycraig.com) é super rápida (1 segundo F5 em index.html), sem problemas. O segundo (robertsmetrology2.krazycraig.com) demora uma eternidade para renderizar (18 segundos F5 em index.html). Ao contrário do código, o site de carregamento rápido, sendo desenvolvido no Frontpage, tem muitos scripts para rodar. O segundo, nenhum, apenas HTML5 e CSS3. Estou usando o zoneedit como meu servidor DNS para os dois sites e os registros da Zona são exatamente os mesmos. Eu olhei para os logs de acesso e erro, bem como mensagens, indo até mudar a variável LogLevel do apache2 para os servidores virtuais depurar. Fiz uma validação do W3C e os únicos problemas com o site de carregamento lento são meta tags inválidas e um & amp; (em vez de & amp; amp;) na propriedade href de uma tag de âncora (por exemplo, href="http://whatever.com?a=1&b=2"). E depois de corrigir isso, a velocidade de renderização da página não mudou. Ambas as páginas usam as mesmas imagens e texto, a única diferença real sendo a página de renderização lenta é HTML5, usando tags como artigo, cabeçalho e rodapé, e a outra usa formatação div e de tabela em todos os lugares.

Eu estou perplexo quanto ao por que uma página é tão lenta e é contemporânea tão rapidamente. Alguém pode me apontar na direção certa para depurar esse problema?

Obrigado pela sua ajuda.

EDIT: Então eu pensei que talvez houvesse algo no arquivo que estava causando a renderização lenta. Para verificar isso, substituí meu index.html por um index.html que se parece com isso ...

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    test
  </body>
</html>

Ainda leva mais de 3 segundos para renderizar.

    
por Albion 01.06.2012 / 16:17

2 respostas

1

No Chromium ou no Chrome, você pode acessar as Ferramentas do desenvolvedor e selecionar a opção Rede para ver quanto tempo leva para carregar cada recurso. Normalmente, quando uma página é carregada lentamente, é porque o navegador está tentando acessar algo que não foi encontrado no servidor ou está acessando conteúdo em um servidor diferente.

    
por notkevin 01.06.2012 / 19:04
1

Eu vi um problema em que o apache2 inicia solicitações de enfileiramento após atingir um número máximo de conexões simultâneas. O problema aconteceu apenas para um host virtual que tinha muitas conexões simultâneas.

Para descobrir se você atingiu esse limite, primeiro descubra qual MPM você está usando executando este comando:

apachectl -V

Confira quais configurações estão disponíveis para o seu MPM e para o que elas foram configuradas no seu servidor. Isso pode estar em httpd.conf ou em um arquivo semelhante, dependendo da sua configuração. Se nada estiver configurado para o seu MPM, você estará usando os valores padrão.

Em seguida, verifique a documentação do Apache para o MPM que você está usando. Por exemplo, se você estiver executando o MPM worker no apache 2.2, visite o link . Leia as configurações e veja qual seria o número máximo de conexões simultâneas.

Se o mod_status não estiver ativado, tente ativá-lo, mas verifique se ele não está acessível ao público. Substitua your_ip_address por um endereço IP ou nome de host na lista de permissões, conforme desejado. Isso exigirá uma reinicialização do apache.

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from your_ip_address_or_host_name
</Location> 

Então, quando você visitar o link (pode precisar de https se estiver usando o TLS), você verá quantas solicitações estão sendo processadas simultaneamente . Se isso estiver maximizado, considere ajustar suas configurações de MPM para atender à demanda do seu servidor.

    
por xz64 31.07.2017 / 02:28