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

2

Acabei de atualizar minha LAN para gigabit. É isso 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 340 Mbps? O que há com isso?

Informações de plano de fundo: estou conectando por meio de um switch gigabit a um sheevaplug. Eu tenho fiação de Cat5e nas paredes e a corrida é talvez 30 pés. Se você não está familiarizado com a netperf, ela tem uma tendência a dar resultados muito estáveis e nunca mentir.

    
por marcusw 31.01.2011 / 01:08

3 respostas

2

Confira este tópico . Um dos contribuintes (Frennzy) descreve isso muito bem. Vou citar:

The "real" speed of gigabit ethernet is...

1Gbps.

That is to say, it will transfer bits at the rate of 1 billion per second.

How much data throughput you get is related to various and sundry factors:

NIC connection to system (PCI vs PCIe vs Northbridge, etc).

HDD throughput.

Bus contention.

Layer 3/4 protocol and associated overhead.

Application efficiency (FTP vs. SMB/CIFS, etc)

Frame size.

Packet size distribution (as relates to total throughput efficiency)

Compression (hardware and software).

Buffer contention, windowing, etc.

Network infrastructure capacity and architecture (number of ports, backplane capacity, contention, etc)

In short, you won't really know, until you test it. NetCPS is a good tool for this, as are many others.

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

Stop thinking like this. Stop it now. All of you.

As much as you would like to figure out kilo-or mega BYTE per second transfer, the fact is that it is variable, even when network speed remains constant. Network "speed" (bits per second) is absolute. Network throughput (actual payload data per second) is not.

To the OP: will you, in general, see faster data transfers when switching from 100Mbps to 1000Mbps? Almost definitely. Will it be anywhere close to the theoretical maximum? No. Will it be worth it? That's for you to decide.

If you want to talk about network speeds, talk about network speeds. If you want to talk about data throughput, talk about data throughput. The two are not tied together in a 1-1 fashion.

    
por 31.01.2011 / 01:53
2

O termo 'máximo teórico' é usado, mas ele tem uma aplicação prática com tecnologias Ethernet. Em um sistema CSMA / CD como o da Ethernet, você só pode enviar cerca de metade da largura de banda do tráfego à medida que o cabo é conectado, geralmente um pouco menos. A razão é porque uma vez que você tenta ir além do 'máximo', então os transceptores começarão a detectar colisões mais do que eles estão transmitindo pacotes. Então, o back-off exponencial entra em jogo e a transmissão de pacotes se degrada ainda mais. Token ring contornou isso, mas ele tinha muitos problemas e não é muito usado, acredito. Ethernet / IP tornou-se o padrão de fato.

As tecnologias de uplink, como T3, usam pares assíncronos que permitem o throughput completo 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'.

    
por 31.01.2011 / 02:24
1

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

Quanto ao motivo de o OP ter alcançado apenas 300 Mbit / s através de um link de 1000 Gbit / s, sugiro que você colete estatísticas netstat para o TCP de antes e depois de cada execução do netperf e inclua o comando global -c e -C Opções de linha para ver qual é a utilização da CPU nos dois lados. Talvez algo esteja descartando pacotes, ou talvez a CPU de um lado ou de outro esteja saturada. Se os sistemas em ambas as extremidades forem multicore, verifique com certeza as utilizações por núcleo com uma ferramenta externa ou percorrendo a saída de depuração netperf.

Outras perguntas sobre o netperf provavelmente devem ser deixadas para o netperf-talk na lista de discussão do netperf.org.

    
por 31.01.2011 / 23:36