tl; dr Над повільними передачевими зв’язками стискайте, інакше не робіть. Нижче - тест на швидкість стиснення, посилання на інструмент перетворення пропускної здатності та деяку інформацію.
Використання стиснення за допомогою rsync
прискорить роботу лише тоді, коли проміжна ланка "досить повільна", тобто якщо машина в одному кінці здатна виробляти стислий потік даних досить швидко, щоб наситити зв'язок зв'язку.
Отже, яка найповільніша ланка, за якою я повинен використовувати стиснення, щоб отримати щось?
Далі йде дуже ненауковий тест, який покаже, наскільки швидко gzip
можна виробляти дані, і що це означає для того, чи варто вам стискати мережеві масові передачі в цілому.
Вхідні дані сильно змінять результат тесту . Я використовую некомпресований (!) Звичайний файл на своєму комп’ютері, який може відображати тип даних, які я зазвичай передаю по мережах. Використання /dev/zero
(отримання необмежених нулів) було б оманливим, оскільки потік нулів було б дуже легко стиснути, а використання /dev/random
було б введено в оману з протилежної причини. Тож замість цього я використовую файл смоли мого $HOME/local
каталогу, який містить програмне забезпечення, яке я встановив у своєму $HOME
. Файл не стискається сам по собі, але містить суміш бінарних файлів, невеликих стислих файлів та вихідних / текстових файлів, і я б стиснув його з налаштуваннями за замовчуванням, оскільки gzip
він скоротиться на 67% з 64 МБ до 22 МБ.
$ gzip -c local.tar | dd of=/dev/null
43092+4 records in
43093+1 records out
22063854 bytes transferred in 2.819 secs (7825741 bytes/sec)
Я роблю це кілька разів, щоб зрозуміти, яким може бути середній показник, і це доходить до приблизно 7800000 байт / с.
Потім я використовую мережевий калькулятор пропускної здатності, щоб побачити, в що це перетворюється. У цьому конкретному випадку трапляється просто за допомогою провідного каналу "100 Мбіт Ethernet", просто швидшого, ніж "Вхід на скачування VDSL" в Інтернеті, трохи швидшого, ніж бездротового зв'язку "802.11 [а / г]", і десь між "Bluetooth v3.0" (повільніше) та "USB 2.0" (швидше).
Це означає, що якщо я використовую компресію над чим-небудь швидшим за це, стиснення, ймовірно, уповільнить передачу файлу.
rsync
не може бути з допомогою точних же бібліотек , як gzip
зробити стиснення, але вище дасть вам трохи натяку , по крайней мере.
rsync
робить більше, ніж стиснення, хоча, як відомо, і реальне збільшення швидкості відбувається лише через передачу [біт] файлів, які змінилися.
З мого власного досвіду, використання компресії за допомогою rsync
стало менш вигідним протягом останніх 10 років або більше, оскільки пропускна здатність мереж зросла (де я є).
Для здійснення додаткових резервних копій я б напевно рекомендував дослідити --link-dest
варіант (це не має нічого спільного з тим, що передається, лише з тим, як зберігаються речі в цілі). Крім того, якщо ви робите це через SSH, не використовуйте стиснення, якщо ваше з'єднання SSH вже стиснене, а стискайте лише SSH-з'єднання (тунелі тощо), які перебувають через повільні зв'язки, з тих же причин, що і вище.