Por que meu scp tem um limite de 8MB em relação às transferências de rede local?

1

Existe um motivo scp caps em torno de 8MB ao transferir arquivos de um computador para outro, em uma rede local? Estou transferindo algumas centenas de GB de dados (filmes e tal) e executei o seguinte comando:

scp -rv ../../cygdrive/e/plex [email protected]:/home/caleb/Desktop

Isso está sendo transferido da minha caixa do windows para minha caixa do ubuntu. Quase todos os arquivos ficam com ~ 8MB / s:

Justified Season 2 Episode 10 - Debts and Accounts.avi                                                                              100%  350MB   7.8MB/s   00:45
Sending file modes: C0050 367218038 Justified Season 2 Episode 11 - Full Commitment.avi
Sink: C0050 367218038 Justified Season 2 Episode 11 - Full Commitment.avi
Justified Season 2 Episode 11 - Full Commitment.avi                                                                                 100%  350MB   7.8MB/s   00:45
Sending file modes: C0050 367451326 Justified Season 2 Episode 12 - Reckoning.avi
Sink: C0050 367451326 Justified Season 2 Episode 12 - Reckoning.avi
Justified Season 2 Episode 12 - Reckoning.avi                                                                                       100%  350MB   7.8MB/s   00:45
Sending file modes: C0050 367779546 Justified Season 2 Episode 13 - Bloody Harlan.avi
Sink: C0050 367779546 Justified Season 2 Episode 13 - Bloody Harlan.avi
Justified Season 2 Episode 13 - Bloody Harlan.avi 

Tenho 100% de certeza de que isso está passando pela LAN e as duas máquinas estão conectadas a um comutador de 1000 Mb / s (1 Gb) no meu roteador. Eu raramente vejo um arquivo pular para 100MB / s +, mas quase todos são limitados como acima.

Estou faltando alguma coisa? Que outras etapas de solução de problemas posso fazer?

    
por MrDuk 12.07.2015 / 03:22

3 respostas

4

Em primeiro lugar, você deve verificar se ele atinge o limite de desempenho de armazenamento no Windows ou no Ubuntu. Se E: no Windows for uma unidade conectada via USB ou um cartão de memória, é provável que 8MB / s seja possível.

Caso contrário, a criptografia SSH pode ser um gargalo. Experimente e veja com códigos leves como arcfour .

scp -o Cipher=arcfour -rv /cygdrive/e/plex [email protected]:/home/caleb/Desktop

E pode sofrer com a sobrecarga do binário do Cygwin. Você pode querer usar o WinSCP para obter um melhor desempenho.

Como alternativa, você pode configurar o compartilhamento Samba no host do Ubuntu. O SMB pode se aproximar da velocidade real do fio em sua LAN com menos sobrecarga do que o SCP.

    
por 12.07.2015 / 03:44
0

Sua velocidade real é de 8MB / s x 8 bits por byte = 64 Mb / s (megabits por segundo). Isso é cerca de 64% do máximo teórico. Com overheads de SO, TCP / IP ACKs, etc. Não estou muito surpreso. As dicas anteriores podem ajudá-lo a aumentar um pouco, mas você nunca vai ficar acima de ~ 12 MB / s, a menos que você vá para Gigabit Ethernet.

    
por 12.07.2015 / 21:36
0

A velocidade dos links de rede é medida em mega bits por segundo, não em megabytes por segundo. Uma rede “100 Mb / s” (o b deve estar em minúsculas) pode transmitir 100 megabits por segundo. A próxima aceleração é 10 vezes mais rápida e chamada “1 Gb / s” ou “gigabit”.

A velocidade bruta da rede é mais rápida do que a velocidade do aplicativo, porque há alguma sobrecarga para os cabeçalhos de pacote. O tamanho máximo para um pacote Ethernet é de 1500 bytes, o que resulta em um pacote TCP de 1448 bytes na melhor das hipóteses (20 bytes para o cabeçalho IP e 32 bytes para o cabeçalho TCP). Eu não sei exatamente quanto sobrecarga SSH adiciona, mas deve permitir pelo menos alguns cabeçalhos de protocolo e um MAC (20 ou 32 bytes), pelo menos, 48 bytes. Isso é 1400 bytes de 1500. Adicione espaço para o destinatário para enviar mensagens TCP ACK de volta (66 bytes), e estamos para baixo para 1334/1500. A 100 Mb / s = 12,5 MB / s, são 11,1 MB / s de velocidade de dados.

11,1 MB / s é mais rápido que 8 MB / s, mas não muito mais rápido. Há alguma sobrecarga inevitável causada pela retransmissão Ethernet, que eu não levei em consideração acima, bem como uma pequena sobrecarga para o roteador. Uma taxa máxima de 8 MB / s é plausível.

Os roteadores domésticos normalmente são limitados a 100 MB / s. Roteadores Gigabit custam mais. A placa de rede em PCs domésticos razoavelmente recentes geralmente suporta redes gigabit. Se você receber um cabo Ethernet com capacidade para gigabit (os mais baratos são classificados apenas para 100 MB / s) e conectar os dois computadores diretamente, você poderá obter uma conexão 10 vezes mais rápida. Você pode verificar a velocidade que sua placa de rede suporta executando /sbin/ethtool eth0 ; procure por um “modo link” de “1000baseT” (gigabit) além de “100baseT” (100 MB / s).

    
por 12.07.2015 / 22:08