Чому rsync через SSH дає мені 10 разів пропускну здатність SCP?


12
  1. scp user@aws-ec2:~/file file
  2. rsync --partial --progress -Pav -e ssh user@aws-ec2:~/file file

scpдає лише 200 К / с, але rsyncдає мені 1,9 М / с

Я кілька разів тестував, все ті ж результати.

rsync використовує кілька потоків ??

Відповіді:


7

Обидва протоколи засновані на SSH. І сам SSH має деякі накладні витрати : вікі

SCP - це дійсно наївний протокол із дійсно наївним алгоритмом передачі декількох невеликих файлів. Він має багато синхронізації (RTT - час в обидва кінці) та невеликі буфери (в основному 2048 B - джерело ).

Rsync створений для продуктивності, тому він дає набагато кращі результати та має більше можливостей.

10-кратне прискорення є специфічним для вашого випадку. Якщо ви будете переносити файли по всьому світу по смугах із високою затримкою, ви отримаєте набагато гірші показники роботи scp, але в локальній мережі продуктивність може бути майже однаковою.

І ні, стиснення ( -Cдля scp) не допоможе. Найбільші проблеми - це затримка та розмір буфера.


7

RSYNC проти SCP

SCP в основному робить звичайну стару копію від джерела до пункту призначення локально або через мережу за допомогою SSH, але ви, можливо, зможете використовувати -Cкомутатор, щоб увімкнути стиснення SSH, щоб потенційно пришвидшити копіювання даних у мережі.

RSYNC передає лише відмінності між двома наборами файлів через мережеве з'єднання, використовуючи ефективний алгоритм пошуку контрольної суми, який автоматично оптимізує мережеве з'єднання під час передачі даних.

RSYNC

ОПИС

   rsync is a program that behaves in much the same way that rcp does, but
   has many more options and uses  the  rsync  remote-update  protocol  to
   greatly  speed  up  file  transfers  when the destination file is being
   updated.

   The rsync remote-update protocol allows rsync to transfer just the dif-
   ferences between two sets of files across the network connection, using
   an efficient  checksum-search  algorithm  described  in  the  technical
   report that accompanies this package.

джерело


SCP

ОПИС

 scp copies files between hosts on a network.  It uses ssh(1) for data
 transfer, and uses the same authentication and provides the same secu‐
 rity as ssh(1).  scp will ask for passwords or passphrases if they are
 needed for authentication.




 File names may contain a user and host specification to indicate that
 the file is to be copied to/from that host.  Local file names can be
 made explicit using absolute or relative pathnames to avoid scp treat‐
 ing file names containing ‘:’ as host specifiers.  Copies between two
 remote hosts are also permitted.

джерело


3
У цьому випадку ситуація дещо інша: він копіює лише один файл. (Імовірно, це ще не існує на віддаленому кінці.)
Даніель Б

1
@DanielB Ви не думаєте, що RSYNC все одно може оптимізувати з'єднання даних навіть для одного файлу і, можливо, стискати дані під час передачі, тому менше фрагментів даних насправді надсилається по трубі, тоді як SCP без -Cперемикача не робить ' t стискати дані під час передачі його по трубі?
Pimp Juice IT

2
Ні компресія, ні контрольна сума не вказані в його rsyncкомандному рядку. Звичайно, алгоритм дельта-файлу завжди активний. Напевно, це просто scpсмокче.
Даніель Б
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.