Ok, há um pouco mais na história do que o título implica.
Antecedentes e ambiente : estou copiando vários TB de um servidor Ubuntu mais antigo para um servidor Windows 2012 mais recente por SMB. (Tecnicamente, é um hardware comum, mas são servidores por aqui.) Todo mundo está em uma LAN de gigabit, e a antiga caixa do Ubuntu tem uma interface ligada. Acredito que o servidor Ubuntu tenha duas placas Ethernet Rosewill PCI-e 1x e o servidor Windows tenha uma placa Ethernet Intel razoavelmente agradável.
O computador de destino (o servidor Windows) está executando um pool de armazenamento com paridade em 4x unidades de 2 TB. Está executando o novo ReFS da Microsoft. O computador de origem (o servidor Ubuntu) está executando um espelho RAID de software. Está executando o bom e velho EXT4.
Os dois servidores estão executando através de um único switch de gigabit. Eu experimentei quebrar a ligação no computador de origem (Ubuntu) sem nenhuma melhoria.
Problema : Não tenho problemas ao transferir a velocidades razoáveis de outros computadores para o servidor Windows. Outros computadores podem suportar 50-80MB / s sem muita dificuldade, mas a transferência desse servidor Ubuntu atinge o limite máximo de 20MB / s. 4 + TB a 20 MB / s leva muito tempo (algo como 2,3 dias), e eu estou pensando no que posso fazer para descobrir onde está o gargalo.
Sintomas : a CPU nos dois computadores é bastante mínima e, certamente, não é proibitivamente ocupada. Os discos rígidos nos dois computadores estão ativos, mas não inundados, e o IOwait da CPU é quase 0% no servidor Ubuntu.
Fiz um rastreamento do Wireshark por 35 segundos (presumivelmente tempo suficiente para garantir que todos os ACKs fossem para novos pacotes) e notei que havia algumas coisas que eu não esperava. (1) Não havia nenhuma soma de verificação para os ACKs (e ALGUNS pacotes SMB) do Windows para o Ubuntu. No entanto, o Wireshark alega que isso pode ocorrer devido a "descarga de soma de verificação de IP". Ok, eu tenho um cartão muito bonito lá. Suponho que seja possível que a placa de rede faça cálculos de soma de verificação. Bem. Seguindo em frente ... (2) "O TCP não reconheceu o segmento invisível." Este aqui eu tenho um problema. O número ACK está dentro de um intervalo aceitável do que eu sei, e muitas vezes existem enormes blocos dessas mensagens. Talvez o Wireshark seja lento demais?
Resumo : A velocidade de transferência é uma porcaria (20MB / s em Ethernet de gigabit) e não sei por quê. O Wireshark afirma que o Windows está aceitando coisas que nunca foram enviadas pelo Ubuntu.
Palpites : Meu palpite inicial é que os cartões mais baratos da Rosewill estão sendo inundados. Meu segundo palpite é que as coisas do tipo RAID de software, de um lado ou de outro, estão ficando inundadas de coisas para fazer.
sshd
está consumindo 60% de um processador no lado do Knoppix. De qualquer forma, minha transferência está quase concluída. @ Dom: Agora que você mencionou, não me lembro de colocar todos esses dados lá muito mais rapidamente do que 30 MBps em primeiro lugar.