Variabilidade do tempo de resposta do servidor da Web

1

Eu tenho servidor web Apache2 e minúsculo script PHP

<?php
echo '1'

Ao atualizar a página, o valor do tempo de espera nas ferramentas do Google Developers pode variar de 24 a 26 ms a 300 a 350 ou algumas vezes é mais do que 1 segundo?

Do que isso depende? Como controlar esse valor em um intervalo desejado ou minimizá-lo?

    
por zavg 17.04.2013 / 19:32

4 respostas

1

O atraso devido ao carregamento do arquivo de índice inicial / pré-primeiro? Se assim for, isso pode ser devido à resolução do DNS.

Você pode eliminar esse fator nos seguintes testes:

  1. Adicione o IP do servidor ao / etc / hosts do seu cliente para que nenhuma consulta DNS esteja envolvida. Execute o teste novamente e veja se você tem resultados mais consistentes. Se os resultados forem consistentes, a variabilidade é devida à resolução do DNS.

  2. Se a mudança para IP estático não ajudar, tente referenciar o host por meio do endereço IP na barra de endereços ao testar a página com seu navegador da web. Na chance de não ter ocorrido a mudança do / etc / host.

  3. Se o uso de IP fixo não limpar a variabilidade, tente um teste local do próprio servidor para descartar a variabilidade da rede. Se você ainda encontrar o problema em um teste de host local, o problema está na pilha do seu aplicativo no servidor. :(

Nota:

Executando um teste index.php semelhante em um dos meus servidores (hospedado por VPS), vejo o seguinte:

index.php carrega cerca de 25-35ms de forma consistente. Existem alguns ícones que tentam carregar, o que eleva o tempo total de carregamento da página para cerca de 200 a 300 ms.

    
por 19.04.2013 / 21:30
0

Este é um servidor apache dedicado apenas ao seu site? Se você tem um site em um serviço de hospedagem comercial, provavelmente está vendo problemas de latência de rede.

Você também está usando um backend de banco de dados como o mysql?

É difícil isolar problemas de tempo de resposta sem analisar todo o ambiente.

    
por 17.04.2013 / 20:29
0

Se você estiver usando o Chrome, ative as ferramentas do desenvolvedor, clique na guia "Rede" e, em seguida, clique em atualizar. Em seguida, passe o mouse sobre a solicitação até ver algo assim:

Isso vai te dizer onde está o atraso. Em seu script PHP, você também pode adicionar isso para ver quanto tempo o script leva para processar:

<?php
$start = microtime(true);
echo '1';
echo 'took '. microtime(true) - $start .' seconds to complete';
?>

Isso deve excluir o PHP como o culpado.

    
por 19.04.2013 / 19:54
0

Eu sugiro que você faça uma pequena série de testes e plote-os em uma planilha. O primeiro um ou dois deve ser mais lento, já que precisa entrar nos caches, mas o resto deve se agrupar em torno de uma média. Olhos e um gráfico de dispersão são boas ferramentas para verificar isso.

Se os resultados não estiverem em cluster, você precisa investigar como os outros comentaristas sugeriram: o que mais está acontecendo na máquina que executa o serviço, a rede e a máquina da qual você executa o teste?

    
por 18.04.2013 / 16:36