Чому rsync -avz швидше, ніж scp -r?


55

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


1
Це свіжа копія.
грм

Відповіді:


68

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

Ви передали -zваріант до rsync; це вмикає стиснення. Якщо пропускна здатність мережі є обмежуючим фактором (це часто), стиснення може покращити швидкість передачі на помітну кількість.

Ви також можете увімкнути стиснення scp, передавши -Cпараметр. Це має стосуватися рівномірних речей із rsync. Стиснення не ввімкнено за умовчанням у ssh, оскільки це економить пропускну здатність, але додає затримку та накладні витрати процесора; затримка погана для інтерактивних сеансів (це не стосується scp), а накладні витрати процесора марні, якщо файли, які ви копіюєте, вже стиснуті.

Старіші версії rsyncвикористовуваних rsh, а не ssh як транспортного шару за замовчуванням, тому справедливе порівняння буде між rsyncта rcp. Але ssh був за замовчуванням з 2.6.0, випущеного 2004-01-01.

При однакових налаштуваннях стиснення я б очікував rsyncі scpматимуть однакову швидкість. Будь ласка, поділіться орієнтирами, якщо виявите інше.


3
Nice, використовуючи -C зробив мою швидкість передачі збільшилася з 5 МБ до 20 МБ
ıɾuǝʞ

Я щойно перевірив, що для каталогу, що містить 16 файлів приблизно 3-9 Мб, rsync -zвін все ще ШЛЕШвидший, ніж scpпри будь-якому стисненні, запропонованому в цих відповідях. Це також швидше, ніж стискання та архівація в один файл вручну та scpйого створення ( scpстиснення навіть повільніше, ніж це). Тож питання про ОП насправді залишається без відповіді: що таке scpповільне порівняно з rsync?
ohcibi

12

спробуйте scp швидким способом

scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput'  -c arcfour machine:file .

ці параметри прискорюють scp у 5 разів у моїй настройці порівняно із звичайною машиною scp: file.

Оновлення, 2017

Насправді scp повільний через погане управління деталями TCP, такими як MTU та розмір буфера. На щастя це було встановлено проектом HPN SSH . Наскільки я розумію, ви можете використовувати HPN SSH як транспорт для rsync.


1
Дивовижний, дякую !! Однак завжди завжди scp -p(зберегти дату / час) за замовчуванням, і, ймовірно, -r(рекурсивно) так scp -pr -C .... (Мені просто довелося очистити та перезапустити роботу scp 40Gb, використовуючи ці, тому що я забув -p)
smci

Я додав -p до команди, дякую за підказку.
Пітер К

4

Раніше було навпаки, але я вважаю, що швидкість rsync значно покращилася за останні кілька змін. Це також залежить від того, скільки файлів ви копіюєте. Якщо їх багато, rsync зазвичай буде швидшим, оскільки scp породжує новий процес для кожного файлу, який ви копіюєте. Ви можете спробувати послабити шифр, який використовує scp, щоб побачити, чи він прискорюється. Останнє, що я пам'ятаю, шифрова дуга була найшвидшою.


2
Scp насправді не породить новий процес для кожного копіюваного файлу. У вас є один процес на стороні відправки та один на стороні, що приймає, як і у rsync.
Кенстер

3

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


3

Для мого тестування, rsync швидше, ніж scp , ви можете скористатися iotop, щоб перевірити їх на передачу того ж файлу:

sudo iotop -o

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

scp -c arcfour <source> <dest>

Хоча arcfourможе пришвидшити шифрування.


0

Ви повторно копіюєте файли на існуючі? Якщо так, здатність rsync блокувати порівняння та копіювати лише різниці буде доречною.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.