Não está obtendo gigbit de um link gigabit?

Não está obtendo gigbit de um link gigabit?

Acabei de atualizar minha LAN para gigabit. Isso é o que o netperf tem a dizer sobre as coisas.

Antes:

marcus@lt:~$ netperf -H 192.168.1.1
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.1 (192.168.1.1) 
port 0 AF_INET : demo
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 87380  16384  16384    10.02      94.13   

Depois:

marcus@lt:~$ netperf -H 192.168.1.1
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.1 (192.168.1.1) port 0 AF_INET : demo
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

 87380  16384  16384    10.01     339.15   

Apenas 340Mbps? O que há com isso?

Informações básicas: estou me conectando por meio de um switch gigabit a um sheevaplug. Tenho fiação Cat5e nas paredes e o percurso é de talvez 30 pés. Se você não está familiarizado com o netperf, ele tende a fornecer resultados muito estáveis ​​e nunca mentir.

Responder1

Confiraeste tópico. Um dos colaboradores (Frennzy) descreve isso muito bem. Vou citar:

A velocidade "real" da Ethernet gigabit é...

1Gbps.

Ou seja, transferirá bits a uma taxa de 1 bilhão por segundo.

A quantidade de transferência de dados que você obtém está relacionada a vários fatores:

Conexão NIC ao sistema (PCI vs PCIe vs Northbridge, etc).

Taxa de transferência do disco rígido.

Contenção de ônibus.

Protocolo de camada 3/4 e sobrecarga associada.

Eficiência do aplicativo (FTP vs. SMB/CIFS, etc.)

Tamanho do quadro.

Distribuição do tamanho do pacote (em relação à eficiência total da taxa de transferência)

Compressão (hardware e software).

Contenção de buffer, janelas, etc.

Capacidade e arquitetura da infraestrutura de rede (número de portas, capacidade do backplane, contenção, etc.)

Resumindo, você realmente não saberá até testá-lo. O NetCPS é uma boa ferramenta para isso, assim como muitas outras.

E isso, mais adiante no tópico (meu destaque):

Pare de pensar assim. Pare com isso agora. Todos vocês.

Por mais que você queira descobrir a transferência de quilo ou mega BYTE por segundo, o fato é que ela é variável, mesmo quando a velocidade da rede permanece constante. A "velocidade" da rede (bits por segundo) é absoluta. A taxa de transferência da rede (dados de carga útil reais por segundo) não é.

Para o OP: você verá, em geral, transferências de dados mais rápidas ao mudar de 100 Mbps para 1000 Mbps? Quase definitivamente.Estará próximo do máximo teórico? Não.Será que vai valer a pena? Isso é você quem decide.

Se você quiser falar sobre velocidades de rede, fale sobre velocidades de rede. Se você quiser falar sobre transferência de dados, fale sobre transferência de dados. Os dois não estão empatados em 1-1.

Responder2

O termo “máximo teórico” é usado por aí, mas tem uma aplicação prática com tecnologias Ethernet. Em um sistema CSMA/CD como o Ethernet, você só pode enviar cerca de metade da largura de banda do tráfego conforme o fio aguenta, geralmente um pouco menos. A razão é porque, uma vez que você tente ir além desse 'máximo', os transceptores começarão a detectar mais colisões do que transmitir pacotes. Então o recuo exponencial entra em ação e a transmissão de pacotes se degrada ainda mais. O Token Ring contornou isso, mas tinha muitos problemas próprios e não é mais muito usado, acredito. Ethernet/IP tornou-se o padrão de fato.

As tecnologias uplink, como T3, usam pares assíncronos que permitem o rendimento total em cada fio, mas também não é um protocolo baseado em Ethernet.

Enquanto você estiver usando dispositivos Ethernet básicos e padrão, sempre haverá o 'máximo teórico'.

Responder3

Falar sobre CSMA/CD no contexto da GbE é totalmente falso. Gigabit Ethernet, ou qualquer Ethernet "full-duplex", não usa CSMA/CD. E embora o GbE ainda mantivesse a possibilidade teórica de operação half-duplex, não tenho certeza se houve algum kit GbE de produção real que fizesse half-duplex.

Quanto ao motivo pelo qual o OP alcançou apenas 300 Mbit/s em um link de 1000 Gbit/s, sugiro coletar estatísticas netstat para TCP antes e depois de cada execução do netperf e incluir as opções de linha de comando global -c e -C para ver qual é a utilização da CPU em cada extremidade. Talvez algo esteja descartando pacotes ou talvez a CPU de um lado ou de outro esteja ficando saturada. Se os sistemas em qualquer extremidade forem multicore, verifique definitivamente as utilizações por núcleo com uma ferramenta externa ou percorrendo a saída de depuração do netperf.

Outras perguntas sobre o netperf provavelmente são melhor deixadas para o netperf-talk na lista de discussão netperf.org.

informação relacionada