Gigabit realmente gigabit?

5

Ao usar gigabytes (Server grade intel) e 2 caixas com um cabo cruzado ... eu vejo apenas% 20-40 do tubo sendo usado. Mesmo entre os roteadores.

Coloque 2 cartas de 100mbps no mesmo lance. % 20-40 usado.

O que dá?

    
por Chad Grant 30.04.2009 / 16:12

9 respostas

12

Dois cartões com um cabo cruzado:

Como você está testando? Como você está medindo isso? Quando você diz que 20-40% nos dizem exatamente o que você quer dizer em cada instância, e como você está obtendo esse número.

A sobrecarga de ethernet é de cerca de 38 bytes por pacote e o TCP / IP tem cerca de 52 bytes de sobrecarga. Com pacotes de 1500 bytes, executando TCP / IP em ethernet, você está olhando para 94% de taxa de transferência de dados possível.

O aplicativo de envio pode estar enviando pequenos pedaços de dados, no entanto. Tome UDP (usado para streaming de vídeo, voz, etc). Se você está enviando 256 bytes por pacote, mais 90 bytes de sobrecarga, você terá 74% de utilização.

Então você tem a sobrecarga do SO e da pilha TCP / IP - ambos adicionam latência, o que afetará a largura de banda de maneiras complexas devido à maneira como o TCP / IP gerencia o carregamento da rede (os algoritmos tentam usar o máximo largura de banda sem perder pacotes).

Então você tem outro carregamento no computador. Se você estiver copiando dados fragmentados de um disco rígido lento, talvez você não esteja vendo o afunilamento da rede, mas outro afunilamento em outro lugar no PC.

As NICs 100base-T também são compatíveis com o servidor? Tem certeza de que eles não descarregam nenhum processamento no SO que deve ser feito na NIC?

Em que barramento estão os NICs? PCI, PCIe, etc? O que mais está naquele ônibus? A NIC está compartilhando um IRQ com outros dispositivos?

Você está usando o BIOS mais recente para a placa-mãe e NIC (se aplicável)? Drivers mais recentes?

O sistema operacional é um sistema operacional de servidor ou desktop (o agendador, pilhas, etc são configurados de forma diferente para diferentes cenários de desempenho)?

Existem muitas e muitas razões pelas quais você pode não estar obtendo a taxa de transferência desejada. A pergunta simples que você está fazendo acima não fornece informações suficientes para saber onde está o problema real.

Em uma rede normal, pode ser causado por colisões e outro tráfego de rede

A Ethernet é incrível pelo que faz, mas não é sincronizada. Isso significa que duas placas podem começar a transmitir de uma só vez, o que causa uma colisão.

Geralmente, uma colisão é detectada pelos dois cartões e ambos recuam por um período aleatório de tempo antes de tentar reenviar.

Isso, juntamente com a sobrecarga do pacote Ethernet e codificação, significa que, mesmo nas melhores circunstâncias, você não pode realmente esperar mais do que 80-90% de utilização.

Você pode aliviar isso usando roteadores e switches em vez de hubs entre computadores, mas até mesmo roteadores e switches descartarão pacotes se houver muitos dados, e eles só poderão melhorar a utilização total em alguns por cento.

O próprio pacote ethernet inclui overhead para clocking, endereçamento, etc. Se você habilitar grandes pacotes em sua rede, então a sobrecarga do pacote se torna pequena em relação ao tamanho dos dados, então para transferências grandes você pode obter melhor utilização. Isso não ajuda se seu aplicativo exigir muitos pacotes menores, como em aplicativos de streaming de áudio ou vídeo. Mesmo se você ativar pacotes grandes, você ainda pode estar enviando pacotes pequenos apenas porque é isso que o aplicativo está enviando.

-Adam

    
por 30.04.2009 / 16:16
6

Meu palpite é que isso é uma limitação na sua metodologia de testes. Por exemplo, se você está testando transferindo um arquivo entre dois sistemas, o desempenho do seu sistema de arquivos pode ser um fator limitante. Você também precisará levar em conta a sobrecarga de qualquer protocolo que esteja usando, etc. É claro que há alguma sobrecarga inerente à ethernet e IP, então é improvável que você veja 100% de utilização.

Sugiro usar uma ferramenta como o iperf ( link ) que foi desenvolvido para testar a taxa de transferência. Há também uma interface gráfica para o iperf chamada Jperf, mas a linha de comando básica do iperf não é difícil de descobrir e ei ... com que frequência você precisará usá-la, certo?

BTW. Não é , como alguns comentaristas sugeriram, relacionado a colisões. As colisões não acontecem em ethernet full duplex e não há nada como half gigabit ethernet duplex. :-) Também é improvável que tenha alguma coisa a ver com a necessidade de quadros jumbo, a menos que os dois PCs que você está usando para teste tenham placas de rede realmente ruins ou CPUs realmente ruins. Jumbo frames NÃO são necessários para a utilização total do gigabit ethernet, embora possa reduzir a utilização da CPU durante transferências de alta largura de banda. Infelizmente ele pode causar mais problemas do que resolve e eu definitivamente NÃO recomendo ativá-lo, a menos que você tenha certeza do que está fazendo.

    
por 04.05.2009 / 17:02
3

O que você está usando para testar seu link?

É muito fácil saturar um link de 100 Mbps e a maioria de um link de 1 Gbps, se você estiver apenas empurrando o material para fora da memória.

Se você está tentando ler coisas do disco e transferir para o outro sistema, você será limitado pelo desempenho do disco.

    
por 30.04.2009 / 16:20
2

O nic é configurado como full duplex em vez de half duplex?

    
por 30.04.2009 / 16:16
2

Quando eu testo a taxa de transferência da rede, é melhor remover tantas variáveis quanto possível, como disco e / ou limitações da CPU. Aqui está o procedimento que uso, que pode ilustrar o máximo típico que você verá na sua rede.

Ferramentas:

Ambos os utilitários devem estar disponíveis na maioria dos sistemas modernos * nix, pré-instalados, via pacotes ou capazes de serem compilados a partir da fonte.

Procedimento:

  1. Execute o seguinte comando em um computador para configurar o ouvinte do UDP. (O uso do UDP proporcionará números mais altos de desempenho devido à falta de sobrecarga TCP para transferir).

    nc -ulp 5000 > /dev/null

  2. Na outra máquina, execute o seguinte comando, substituindo o endereço IP do ouvinte, para enviar um fluxo de zeros pela rede para o ouvinte nc. O utilitário pv mostrará o desempenho atual conforme rastreado pelo receptor.

    pv < /dev/zero | nc -u listener-ip-address 5000

Notas:

  • O máximo teórico em uma conexão Gig Ethernet é de 119MB / s (aviso, M B , não M b )
  • O TCP também pode ser testado removendo -u nos dois comandos nc
  • Em aplicativos do mundo real, você nunca alcançará os números de desempenho ilustrados na saída pv.

Este método fornece resultados previsíveis em uma rede bem projetada com equipamento funcionando corretamente. Por essa razão, é uma boa ferramenta para ajudar a descobrir se a própria rede ou o equipamento de rede está contribuindo para a "lentidão" percebida.

    
por 04.05.2009 / 19:24
1

Se você quiser usar o throughput completo do Gigabit Ethernet, será necessário garantir que os Jumbo Frames sejam configurados em toda a sua rede - ou pelo menos em todas as máquinas e switches nos quais você está medindo o desempenho. / p>

No entanto, lembre-se de que a taxa de transferência máxima de um único disco rígido é geralmente de 30-40 MByte / seg, o que não é próximo de um Gigabit / segundo.

    
por 30.04.2009 / 17:31
1

Eu consegui 80% -90% de utilização apenas copiando arquivos entre compartilhamentos de rede, em 100 me gigabit

    
por 04.05.2009 / 17:22
0

Adam & os caras full-duplex estão certos. Além disso, não se esqueça de que seu hardware subjacente pode não estar à altura da tarefa de saturar 1Gbps / 100Mbps também. A menos que você tenha uma configuração de RAID decente, SSDs decentes ou algum tipo de unidade baseada em RAM, você provavelmente não verá esse tipo de taxa de transferência por longos períodos.

    
por 30.04.2009 / 16:20
0

Eu nunca vi mais do que cerca de 50% de utilização em um link GigE de cobre, mas já vi 90% s em portas de tronco saturadas entre switches da Cisco sobre fibra.

    
por 04.05.2009 / 17:36

Tags