Latência de rede: 100 Mbit vs. 1 Gbit

10

Eu tenho um servidor web com uma conexão atual de 100Mbit e meu provedor oferece uma atualização para 1Gbit. Eu entendo que isso se refere à taxa de transferência, mas quanto maiores os pacotes, mais rápido eles podem ser transmitidos também, então eu esperaria uma pequena diminuição no tempo de resposta (por exemplo, ping). Alguém já comparou isso?

Exemplo (servidor de 100mbit a 100mbit) com carga de 30 bytes:

> ping server -i0.05 -c200 -s30
[...]
200 packets transmitted, 200 received, 0% packet loss, time 9948ms
rtt min/avg/max/mdev = 0.093/0.164/0.960/0.093 ms

Exemplo (servidor de 100mbit a 100mbit) com carga de 300 bytes (que está abaixo de MTU):

> ping server -i0.05 -c200 -s300
[...]
200 packets transmitted, 200 received, 0% packet loss, time 10037ms
rtt min/avg/max/mdev = 0.235/0.395/0.841/0.078 ms

Assim, de 30 a 300, a média latência aumenta de 0,164 para 0,395 - eu esperaria que isso fosse um aumento mais lento para uma conexão de 1gbit a 1gbit. Eu até espero que 100mbit a 1gbit seja mais rápido, se a conexão for através de um switch que primeiro espera até receber o pacote inteiro.

Atualização: Por favor, leia atentamente as respostas! A conexão não está saturada, e eu não acho que esse aumento de velocidade importará para os humanos em uma solicitação, mas é sobre muitos pedidos que se somam (Redis, Banco de Dados, etc.).

Em relação à resposta de @LatinSuD :

> ping server -i0.05 -c200 -s1400
200 packets transmitted, 200 received, 0% packet loss, time 9958ms
rtt min/avg/max/mdev = 0.662/0.866/1.557/0.110 ms
    
por Andreas Richter 03.06.2011 / 14:21

6 respostas

10

O YES gbit tem uma latência menor, uma vez que:

  • o mesmo número de bytes pode ser transferido em tempo mais rápido

MAS a melhoria é apenas apreciável se o (s) pacote (s) tiver um certo tamanho:

  • pacote de 56 bytes = > praticamente sem transferência mais rápida
  • pacote de 1000 bytes = > Transferência 20% mais rápida
  • pacote (s) de 20000 bytes = > Transferência 80% mais rápida

Portanto, se você tiver um aplicativo que seja muito sensível à latência (4ms vs. 0,8ms, ida e volta para 20kb) e exija que pacotes maiores sejam transferidos, então mude de 100mbit para gbit dar-lhe uma redução de latência, mesmo que você use muito menos do que os 100mbit / s em média (= o link não está saturado permanentemente).

Servidor (100mbit) - > Mudar (gbit) - > Servidor (100mbit):

size: 56 :: rtt min/avg/max/mdev = 0.124/0.176/0.627/0.052 ms
size: 100 :: rtt min/avg/max/mdev = 0.131/0.380/1.165/0.073 ms
size: 300 :: rtt min/avg/max/mdev = 0.311/0.463/2.387/0.115 ms
size: 800 :: rtt min/avg/max/mdev = 0.511/0.665/1.012/0.055 ms
size: 1000 :: rtt min/avg/max/mdev = 0.560/0.747/1.393/0.058 ms
size: 1200 :: rtt min/avg/max/mdev = 0.640/0.830/2.478/0.104 ms
size: 1492 :: rtt min/avg/max/mdev = 0.717/0.782/1.514/0.055 ms
size: 1800 :: rtt min/avg/max/mdev = 0.831/0.953/1.363/0.055 ms
size: 5000 :: rtt min/avg/max/mdev = 1.352/1.458/2.269/0.073 ms
size: 20000 :: rtt min/avg/max/mdev = 3.856/3.974/5.058/0.123 ms

Servidor (gbit) - > Mudar (gbit) - > Servidor (gbit):

size: 56 :: rtt min/avg/max/mdev = 0.073/0.144/0.267/0.038 ms
size: 100 :: rtt min/avg/max/mdev = 0.129/0.501/0.630/0.074 ms
size: 300 :: rtt min/avg/max/mdev = 0.185/0.514/0.650/0.072 ms
size: 800 :: rtt min/avg/max/mdev = 0.201/0.583/0.792/0.079 ms
size: 1000 :: rtt min/avg/max/mdev = 0.204/0.609/0.748/0.078 ms
size: 1200 :: rtt min/avg/max/mdev = 0.220/0.621/0.746/0.080 ms
size: 1492 :: rtt min/avg/max/mdev = 0.256/0.343/0.487/0.043 ms
size: 1800 :: rtt min/avg/max/mdev = 0.311/0.672/0.815/0.079 ms
size: 5000 :: rtt min/avg/max/mdev = 0.347/0.556/0.803/0.048 ms
size: 20000 :: rtt min/avg/max/mdev = 0.620/0.813/1.222/0.122 ms

= em média em vários servidores 80% de redução de latência para 20kb ping

(Se apenas um dos links for gbit, você ainda terá uma redução de latência de 5% para o ping de 20kb.)

    
por 19.08.2011 / 16:38
14

A única forma de diminuir a latência é se o link atual de 100 Mbit estiver saturado. Se não estiver saturado, você provavelmente não notará qualquer alteração.

Além disso, sua suposição de que o link de 1Gbit será capaz de suportar pacotes maiores está incorreta. O tamanho máximo do pacote é determinado pelo MTU dos vários dispositivos ao longo do caminho que o pacote leva - começando com o NIC no seu servidor, até a MTU do computador do seu cliente. Em aplicações LAN internas (quando você tem controle sobre todos os dispositivos ao longo do caminho), às vezes é possível aumentar o MTU, mas nessa situação, você está praticamente preso ao MTU padrão de 1500. Se você enviar pacotes maiores que que, eles vão acabar ficando fragmentados, diminuindo assim o desempenho.

    
por 03.06.2011 / 14:25
4

Acho que você tem um equívoco fundamental sobre latência de largura de banda e "velocidade". A velocidade é uma função da largura de banda e latência. Por exemplo, considere uma remessa de dados em DVDs enviados pelo país levando três dias para chegar. Compare isso ao envio de dados pela internet. A internet tem uma conexão de latência muito menor, mas para coincidir com a "velocidade" da conexão com a remessa, você teria que receber 9,6MB por segundo ( exemplo de referência desta fonte ).

No seu caso, a atualização para uma largura de banda maior permitiria que você atendesse mais usuários simultâneos, mas não melhorasse a latência para nenhum usuário individual.

    
por 03.06.2011 / 14:59
2

Você está olhando para o mundo através de um orifício. Um teste válido de diferenças de latência em diferentes velocidades seria entre duas NICs idênticas conectadas a um cabo de conexão cruzada. Defina as velocidades máximas de NICs de 10mb, 100mb e 1000mb. Isso mostrará que praticamente não há diferença na latência nas diferentes velocidades. Todos os pacotes viajam na mesma velocidade de fiação, independentemente da largura de banda máxima que está sendo usada. Depois de adicionar switches com armazenamento e encaminhamento em cache, tudo muda. O teste de latência por meio de um switch deve ser feito com apenas duas conexões ao switch. Qualquer outro tráfego pode afetar a latência do seu teste. Mesmo assim, o comutador pode reverter os registros, ajustar os contadores do tipo de pacote, atualizar o relógio interno, etc. Tudo pode afetar a latência.

Sim, a mudança de 100mb para 1gb pode ser mais rápida (menor latência) devido a alterações de hardware, NIC diferente, comutador diferente, driver diferente. Eu tenho visto grandes mudanças na latência de ping de diferenças de driver do que quaisquer outras alterações; largura de banda, switches, descarga de NICs, etc.

O comutador seria a próxima grande mudança com um corte significativamente mais rápido do que o armazenamento e encaminhamento para testes de transmissão única. No entanto, uma loja bem projetada e um switch forward podem ultrapassar o switch cut-through no desempenho geral sob alta carga. Nos primórdios do gigabit, vi switches backplane de 10mb de alto desempenho com menor latência do que switches gigabit baratos.

Os testes de ping são praticamente irrelevantes para a análise de desempenho ao usar a Internet. Eles são testes rápidos para ter uma idéia do que está acontecendo no transporte no momento do teste. O teste de desempenho de produção é muito mais complicado do que apenas um ping. Os switches de alto desempenho são computadores e, sob alta carga, se comportam de maneira diferente - alteração na latência.

Ter um NIC mais lento, ou um NIC configurado para uma velocidade mais lenta, pode realmente ajudar um servidor com bursts simultâneos, acelerando a entrada para o servidor usando o cache de switches. Uma única retransmissão pode negar qualquer diminuição na latência. Geralmente, os níveis de tráfego médio a alto são importantes, e não testes de ping únicos. por exemplo. Velho e lento Ultrasparc (maior latência para um único ping) supera o novo desktop gigabit barato usado como servidor dev quando sob 70% de carga de largura de banda de 100mb. A área de trabalho possui NB gb mais rápida, conexão mais rápida gb-gb, memória mais rápida, mais memória, disco mais rápido e processador mais rápido, mas não funciona tão bem quanto hardware / software de classe de servidor sintonizado. Isso não quer dizer que um servidor atualmente em sintonia executando o gb-gb não seja mais rápido do que o hardware antigo, podendo até mesmo suportar cargas de throughput maiores. Há apenas mais complexidade para a questão do "desempenho superior" do que você parece estar perguntando.

Descubra se o seu provedor está usando switches diferentes para as conexões de 100mb vs. 1gb. Se eles usam o mesmo backplane do switch, eu só pagaria pelo aumento se os níveis de tráfego excedessem a largura de banda menor. Caso contrário, você poderá descobrir que, em pouco tempo, muitos outros usuários migrarão para o gigabit e os poucos usuários restantes no switch antigo terão desempenho mais alto - menor latência, durante altas cargas no switch (carga geral do switch, não apenas para seus servidores). ).

Exemplo de maçãs e laranjas: O ISP local forneceu um novo comutador para serviços integrados, DSL e telefone. Inicialmente, os usuários viram um aumento no desempenho. Sistema foi oversold. Agora os usuários que permanecem no antigo switch têm desempenho consistente mais alto. Durante a madrugada, os usuários do novo sistema são mais rápidos. À noite, sob alta carga, os antigos clientes de comutação superam claramente o novo sistema sobrecarregado.

A latência mais baixa nem sempre se correlaciona com uma entrega mais rápida. Você menciona o MySQl nos 20 pedidos para servir uma única página. Esse tráfego não deve estar no mesmo NIC que as solicitações de página. Mover todo o tráfego interno para uma rede interna reduzirá as colisões e as contagens totais de pacotes no NIC de saída e fornecerá ganhos maiores do que o ganho de latência de .04ms de um único pacote. Reduza o número de solicitações por página para reduzir a latência do carregamento da página. Compactar as páginas, html, css, javascript, imagens para diminuir o tempo de carregamento da página. Essas três mudanças darão ganhos globais maiores em andamento do que o pagamento pela largura de banda não sendo usada para obter uma redução de latência de .04ms. O ping precisa ser executado 24 horas e ter uma média para ver a mudança de latência real. Os comutadores inteligentes agora fazem o tipo de limitação RTSP adaptável com pequenos aumentos iniciais de largura de banda e grandes transferências estranguladas. Dependendo dos tamanhos de sua página (gráficos, grandes html / css / javascript), você pode ver latências de conexão iniciais / largura de banda muito menores / mais altas do que uma página grande ou transferências de páginas completas. Se parte da sua página for streaming, você poderá ver um desempenho drasticamente diferente entre a página e o fluxo.

    
por 03.06.2011 / 22:10
1

Vamos supor que os pacotes de 300 bytes (se você usar -s 300 , seriam realmente maiores por causa dos cabeçalhos).

300 bytes = 2400 bits
2400 bits / 100Mbit/sec = 0.024ms

0,024ms é aproximadamente o tempo real necessário para enviar o quadro (sem contar o tempo médio de acesso nem os cabeçalhos).

Em uma sequência de pingue-pongue, isso levaria o dobro do tempo (0,048ms), mais o tempo para o sistema operacional processar a consulta.

Isso significa que sua latência é causada por 90% de vários fatores de sobrecarga. Não tenho certeza se você verá muita diferença com o Gb. Uma diferença provavelmente menor que 1ms não será perceptível em um servidor web.

De qualquer forma, você poderia tentar um pacote realmente grande como 1400 bytes?

    
por 03.06.2011 / 15:59
1

Isso depende do tipo de switch ao qual você está se conectando. Em alguns fornecedores (como o Crisco ... quero dizer, Cisco), os pacotes ICMP fluirão de volta para a CPU ( gag ).

Você pode achar que um teste melhor seria realizar um teste de host para host usando um link de 100 Mbps e 1 Gbps (ou seja, não um teste de host para switch ou de host para roteador).

No final do dia, a latência vai descer para a taxa de encaminhamento no switch e as particularidades da arquitetura do switch (onde os ASICs são colocados no quadro, como o bloqueio é tratado entre cartões de linha, etc. ). Boa sorte com seus testes.

    
por 03.06.2011 / 17:27