Как заставить scp работать быстрее?

Я использую следующую команду для передачи файлов через мою домашнюю сеть (когда мне приходится передавать много файлов, я обычно архивирую их с помощью утилиты tar):

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

Это занимает около 25 минут для отправки 500 Мб данных на другой компьютер. Средняя скорость составляет около 600 КБ / с. Я думаю, что, безусловно, должен быть способ ускорить процесс, потому что я не верю, что смогу вытащить файл объемом 1 Гб из Интернета менее чем за 10 минут, но я не могу получить 500 Мб файл отправляется по сети меньше, чем за это время.

1
задан 22 April 2016 в 16:24

1 ответ

Две идеи:

  1. Эксперимент с другим шифром
  2. Используйте 'динамическое' сжатие

1. Эксперимент с другим шифром:

Одна идея состоит в том, чтобы протестировать различные шифры, которые доступны через scp и попытайтесь определить, который является самым быстрым для Вас. (Идея позади этого состоит в том, что это - шифрование Ваших данных, которые занимают время.) Находят доступные шифры путем выполнения следующего:

andrew@athens:~$ ssh -Q cipher
3des-cbc
blowfish-cbc
cast128-cbc
arcfour
arcfour128
arcfour256
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com
andrew@athens:~$ 

Это показывает доступные шифры на Гостеприимной установке Xerus по умолчанию и может быть добавлено в использовании синтаксиса, который Вы уже предложили:

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

Эта опция передается непосредственно ssh следовательно тестирование ssh самостоятельно для доступных шифров. Надо надеяться, можно найти шифр, который позволит увеличение скорости передачи, когда Вы нашли этот шифр, можно поместить его в ~/.ssh/config вместо того, чтобы ввести его в каждый раз...

2. Используйте 'динамическое' сжатие:

scp может сжать Ваши передачи, 'на лету' означающие, что сжатия только используются во время передачи и не будут замечены или в хосте или в удаленных концах. Добавьте это в использовании -C опция:

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

Вот пример в моей собственной системе:

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

Уровень сжатия совпадает с тем, используемым для gzip и если Вы действительно хотите экспериментировать, можно использовать опцию 'CompressionLevel', которая варьируется от 1-9, 1 являющийся самым быстрым сжатием, 9 являющийся самым медленным с лучшим сжатием и 6 являющийся значением по умолчанию. Это может быть установлено в ~/.ssh/configследующим образом:

Host *
Compression yes
CompressionLevel 9

Примите во внимание, что это устанавливает высокое сжатие для всех scp / ssh передачи, это может быть установлено для отдельных хостов, если Вы желаете...

Используйте -v опция исследовать эффекты любых изменений Вы делаете. Вы отметите с экспериментированием, что различные данные будут иметь различные степени сжатия.

4
ответ дан 23 April 2016 в 02:24
  • 1
    Мой опыт состоит в том, что в конечном счете full-upgrade является лучшим при хранении system' s все компоненты, актуальные и совместимые. Таким образом, мне удается поддерживать мою систему LTS в рабочем состоянии в течение многих лет без проблем. Альтернатива должна использовать sudo apt-get dist-upgrade, который я думаю, делает что-то очень похожее (кроме использования более старого кроме все еще доступной программы apt-get). – sudodus 9 September 2017 в 18:28

Другие вопросы по тегам:

Похожие вопросы: