Como fazer o scp andar mais rápido?

Como fazer o scp andar mais rápido?

Eu uso o seguinte comando para transferir arquivos pela minha rede doméstica (quando tenho que transferir muitos arquivos, geralmente os arquivo com o tarutilitário):

scp -c blowfish [FILE] [USER]@[ADDRESS]:[PATH]

Demora cerca de 25 minutos para enviar 500 Mb de dados para outro computador. A velocidade média é de cerca de 600 KB/s. Acho que deve haver uma maneira de tornar o processo mais rápido, porque não acredito que seja capaz de extrair confortavelmente um arquivo de 1 Gb da Web em menos de 10 minutos, mas não consigo obter um arquivo de 500 Mb arquivo enviado pela rede em menos tempo.

Responder1

Duas ideias:

  1. Experimente uma cifra diferente
  2. Use compactação 'on the fly'

1. Experimente uma cifra diferente:

Uma ideia é testar as várias cifras disponíveis scpe tentar determinar qual é a mais rápida para você. (A ideia por trás disso é que é a criptografia dos seus dados que está demorando.) Encontre as cifras disponíveis executando o seguinte:

andrew@athens:~$ ssh -Q cipher
3des-cbc
blowfish-cbc
cast128-cbc
arcfour
arcfour128
arcfour256
aes128-cbc
aes192-cbc
aes256-cbc
[email protected]
aes128-ctr
aes192-ctr
aes256-ctr
[email protected]
[email protected]
[email protected]
andrew@athens:~$ 

Isso mostra as cifras disponíveis em uma instalação padrão do Xenial Xerus e pode ser adicionada usando a sintaxe que você já sugeriu:

scp -c <cipher> [FILE] [USER]@[ADDRESS]:[PATH]

Esta opção é passada diretamente para sshtestar sshas cifras disponíveis. Esperamos que você possa encontrar uma cifra que permitirá um aumento em sua velocidade de transferência. Quando você encontrar essa cifra, poderá inseri-la ~/.ssh/configem vez de digitá-la todas as vezes...

2. Use compactação 'on the fly':

scpé capaz de compactar suas transferências 'on the fly', o que significa que as compressões são usadas apenas durante a transferência e não serão vistas nem no host nem nas extremidades remotas. Adicione isso usando a -Copção:

scp -c <cipher> -C [FILE] [USER]@[ADDRESS]:[PATH]

Aqui está um exemplo em meu próprio sistema:

debug1: compress outgoing: raw data 365865, compressed 150118, factor 0.41
debug1: compress incoming: raw data 150118, compressed 365865, factor 2.44

O nível de compactação é o mesmo usado gzipe se você realmente deseja experimentar pode usar a opção 'CompressionLevel' que varia de 1 a 9, sendo 1 a compactação mais rápida, 9 sendo a mais lenta com melhor compactação e 6 sendo a compactação mais rápida. padrão. Isso pode ser definido ~/.ssh/configda seguinte forma:

Host *
Compression yes
CompressionLevel 9

Tenha em mente que isso define alta compressão paratodos scp / sshtransferências, pode ser definido para hosts individuais, se desejar ...

Use a -vopção para investigar os efeitos de quaisquer alterações feitas. Você notará com a experimentação que dados diferentes terão taxas de compactação diferentes.

informação relacionada