Por que a transferência de um único arquivo não é mais rápida do que 50MB / s em LAN Gigabit?

1

Eu fiz alguns testes na nossa rede gigabit.

Quando eu transfiro um arquivo grande (10 GB) de um computador com o windows 7 para outro, o troughtput nunca excede 50Mb (ele começa com 80MB / s por um segundo e diminui para 32MB / s).

Usando transferências simultâneas de vários computadores, o cliente pode maximizar sua conexão Gb. Idem, ao usar vários clientes ao mesmo tempo, o computador de origem chega perto de Gb troughput.

Os testes foram realizados em drives muito rápidos (2 velociraptores em Raid 0, 4 WD vermelhos em LSI megaraid RAID5, SSD, Revodrive X3 ...). Então eles não são o gargalo.

Quando eu transfiro de um servidor Windows, o troughput é um pouco melhor, mas longe dos 112MB / s esperados de uma LAN gibit.

Alguma ideia?

Edite depois do estranho comentário do walker: Estamos usando NIC (intel) integrada em placas-mãe ASUS e DELL Workstation. Os switches são gerenciáveis Cisco SG 300-20, SF 300-08 e Netgear GS 108.

    
por bokan 02.10.2013 / 12:14

2 respostas

4

Suponho que você esteja usando o TCP / IP para transferir o arquivo, embora tenha também deixado de mencionar qual protocolo está usando.

A resposta para isso seria preencher um grande livro - e há muitos deles disponíveis. Mas entre as possíveis razões estão:

  1. controle de congestionamento : sua pilha de rede acelera a taxa de transferência, aumentando gradualmente a taxa durante a vida útil do conexão (até encontrar a perda de pacotes, altura em que a taxa cai massivamente). O uso de pacotes jumbo ajuda também.

  2. tamanho da janela : um ponto final de TCP / IP enviará apenas o máximo de dados que considerar sistema pode buffer. A extremidade de recepção deve ser capaz de armazenar pelo menos a largura de banda x o RTT. Embora o RTT seja baixo aqui, a largura de banda é grande. Quando o IPV4 foi projetado, ele não esperava ter que lidar com esses buffers grandes. Existe uma solução que permite o escalonamento de janelas.

  3. Seu computador não é dedicado ao propósito de enviar dados - é uma tarefa múltipla. Para processar os dados, a NIC gera uma interrupção - isso adiciona latência. Você pode atenuar os efeitos disso em boas placas de rede, ativando o buffer no cartão (coalesce de interrupção)

  4. ainda há uma quantidade significativa de trabalho a ser feito no computador para agrupar os dados em quadros e executá-los, o que pode ser atenuado - neste caso, usando TCP offload se seu sistema operacional / hardware for compatível.

... e isso antes de olhar para as peculiaridades da Ethernet e / ou do protocolo que você está usando para transferir os arquivos.

    
por 02.10.2013 / 13:51
0

Eu finalmente consegui obter mais de 100MB / s de transferência de arquivos.

Eu removi a NIC do gerenciador periférico e a reinstalei. Eu acho que houve uma confusão com os parâmetros do driver Intel. Provavelmente por causa de uma tentativa de configurar alta MTU.

    
por 02.10.2013 / 14:33