medir a velocidade do servidor e deduzir a latência da rede

1

Eu quero medir o login via htaccess para alguns servidores (o quão rápido é processado pelo servidor) e eu quero ignorar o tempo perdido no newtork. Então devo deduzir a latência do ping uma ou duas vezes? Ou meus cálculos estão errados

    
por mazgalici 04.09.2011 / 00:11

2 respostas

2

A melhor maneira de remover a latência da rede de seus resultados é tentar testar de um host local para o servidor. Isso pode ser o próprio servidor, a menos que você esteja executando um teste de alta carga (nesse caso, o processamento do "lado do cliente" interferirá no seu benchmark).

A avaliação da latência de rede de uma solicitação HTTP autenticada por meio de leituras de ping não será particularmente precisa, a menos que você receba um lote de leituras.

Em qualquer caso, será mais de 2x tempo de ping. Criar uma conexão TCP (estou ignorando conexões HTTP persistentes aqui) leva pelo menos três pacotes IP viajando pela rede: um pacote SYN do cliente para o servidor, um SYN + ACK de volta para o cliente e um ACK final do cliente para o servidor . Assumindo que o tempo de viagem do seu para o servidor é o mesmo que o tempo de viagem de volta, isto é 1,5 pings. IIRC a requisição HTTP se pequena o suficiente pode ser incluída no pacote ACK final. Depois disso, haverá a resposta HTTP, que será pelo menos um pacote. Se qualquer um dos pedidos ou respostas forem maiores que o MTU entre você e o servidor, então haverá mais pacotes para frente e para trás, é claro.

Se você está enviando detalhes de autenticação diretamente, é isso: pelo menos 4 pacotes IP, há + back + there + back, então 2x ping (que é dois pacotes, um lá é feito de volta). Mas não é incomum fazer uma solicitação não autenticada primeiro, obter uma resposta 401 de volta e, em seguida, fazer a solicitação autenticada em resposta a isso, pelo menos, dobrando isso para 8 pacotes.

Além disso, esteja ciente de que os pacotes ICMP / IP usados pelo ping por padrão podem ter uma prioridade diferente em locais ao longo da rota para os pacotes TCP / IP usados para HTTP, e os pacotes que contêm HTTP solicitação e dados de resposta HTTP serão maiores do que os pacotes de ping padrão (o ping geralmente envia pacotes com carga útil zero).

Então, se você puder, teste de uma máquina que esteja na mesma LAN - teste remoto e tentando adivinhar que parte do tempo gasto é o dalay da rede e o que está atrasando o processamento não vai lhe dar respostas muito precisas. / p>     

por 04.09.2011 / 01:07
1

Depende exatamente como você mede. Por exemplo, você mede quando a conexão TCP é estabelecida até que os dados sejam recebidos? Ou você mede quando a solicitação é enviada pela conexão TCP até que a conexão TCP seja fechada?

Se você quiser fazer isso corretamente, terá que ver exatamente o que está acontecendo no intervalo de tempo que está medindo, ver quantas "handoffs" são necessárias e subtrair o tempo de ping muitas vezes. Talvez a maneira mais fácil de fazer isso seja medir de duas máquinas diferentes com diferentes tempos de ping. Em seguida, plote-os em um gráfico e extrapole para um tempo de ping igual a zero.

A maneira como isso é feito normalmente é muito mais simples - apenas teste de um computador na mesma LAN, para que o tempo de ping seja menor que um milissegundo.

Observe que o tempo de ping inclui mais do que apenas a latência da rede. Também inclui o tempo que o outro computador leva para formar e enviar a resposta.

    
por 04.09.2011 / 00:49