Я использую rsync для синхронизации каталога на моем внешнем жестком диске USB. Это около 150 гигабайт данных. 50000+ файлов, я думаю.
Он запускает свою первую синхронизацию в данный момент, но копирует файлы со скоростью всего 1-5 МБ / с. Это кажется невероятно медленным для корпуса USB 2.0. Других передач на диске тоже нет.
Вот варианты, которые я использовал:
rsync -avz --progress /mysourcefolder /mytargetfolder
Я использую Ubuntu Server 9.10.
usb
ubuntu-9.10
usb-flash-drive
rsync
Джейк Уилсон
источник
источник
tar
команды илиcpio
.Ответы:
Для первой синхронизации просто используйте
rsync добавляет накладные расходы только тогда, когда место назначения пусто.
также ... опция -z, вероятно, снижает производительность, вам не следует ее использовать, если вы не передаете данные по медленной ссылке.
источник
rsync -avz --progress /mysourcefolder/ /mytargetfolder
или вы получите копиюmysourcefolder
внутренних ,mytargetfolder
а не зеркальное отображение содержимогоЕсли вы используете rsync с быстрой сетью или с диска на диск на той же машине,
не использует сжатие -z
и используя --inplace
ускоряет его до производительности жестких дисков или сети
сжатие использует много процессора
не используя InPlace делает Жёсткий трэш много (он использует временный файл , прежде чем создавать окончательный)
сжатие и не использование на месте лучше делать через Интернет (медленная сеть)
НОВИНКА: знайте о месте назначения ... если включено NTFS-сжатие ... это сильно замедляет большие файлы (я бы сказал, 200 МБ +), rsync почти застопорился, это вызвано этим.
источник
Используйте
-W
опцию. Это отключает сравнение дельта / разность. Когда время / размеры файла различаются, rsync копирует весь файл.Также удалите
-z
опцию. Это полезно только для сжатия сетевого трафика.Теперь
rsync
должно быть так же быстро, какcp
.источник
-z
полезно только для низкоскоростного сетевого трафика. Если ваша сеть достаточно быстрая, это замедлит работу, поскольку вы будете ограничены процессором.-W
: «Это значение по умолчанию, когда и источник, и пункт назначения указываются как локальные пути, но только в том случае, если опция пакетной записи не действует».Первое - количество файлов в этом случае будет основным фактором. Это средний размер 3 МБ каждый. Вероятно, узкое место io влияет на скорость в случае OP. Больше здесь - это довольно сухое чтение, но изображение на обложке того стоит.
Итак, используя rsync для копирования в пустой каталог? Вот несколько способов ускорить его:
rsync -a /source /destination >/somewhere/rsync.out 2>/somewhere/rsync.err
- первый> в основном печатает файл со всем, что вы обычно видите, а 2> относится к сообщениям об ошибках.Моя команда будет:
rsync -avAXEWSlHh /source /destination --no-compress --info=progress2 --dry-run
Если бы все выглядело хорошо, я бы удалил «--dry-run» и отпустил его. A, X и E охватывают расширенные атрибуты и разрешения, не охватываемые -a, l - для мягких ссылок, H - для жестких ссылок, а h - для чтения человеком.
Обновление уже синхронизированного каталога на USB-накопителе, или на том же диске, или по сети, потребует различных команд rsync для максимизации скорости передачи.
Бонус - вот справочная страница rsync , и если вы хотите проверить скорость вашего жесткого диска, bonnie ++ - хороший вариант, а для скорости вашей сети попробуйте iperf .
Посту уже почти десять лет, но поисковым системам он нравится, и я продолжаю его видеть. Это хороший вопрос, и я не думаю, что лучшим ответом на вопрос «как ускорить rsync» должно быть «используйте вместо этого cp».
источник
Вы не говорите, какой размер у ваших файлов. Если имеется много небольших файлов, то это снизит общую скорость передачи за счет увеличения задержки перемещения головы как на исходном, так и на целевом дисках, поскольку инструмент открывает новые файлы, а ОС сохраняет записи каталога и другие метаданные (например, журнал файловой системы, если вы используете ведение журнала метаданных (например, ext3 / ext4 и NTFS) по умолчанию) во время передачи. Процесс копирования файла будет «в ходу» только для больших объектов, когда происходит простая массовая передача.
источник
Вы определенно хотите попробовать rclone . Эта вещь сумасшедшая быстро:
$ tree / usr [...] 26105 каталогов, 293208 файлов
$ sudo rclone sync / usr / home / fred / temp -P -L --transfers 64
Передано: 17,929G / 17,929 ГБайт, 100%, 165,692 МБ / с, ETA 0s Ошибки: 75 (повторная попытка может помочь) Проверок: 691078/691078, 100% Передано: 345539/345539, 100% Истекшее время: 1m50.8s
Это локальная копия с и на твердотельный накопитель LITEONIT LCS-256 (256GB).
Вы можете добавить --ignore-checkum при первом запуске, чтобы сделать его еще быстрее.
источник
Избегайте
-z
/--compress
: сжатие будет загружать только процессор, так как передача происходит не по сети, а по ОЗУ.--append-verify
: возобновить прерванную передачу. Это звучит как хорошая идея, но имеет опасный случай сбоя: любой файл назначения того же размера (или больше), что и источник, будет игнорироваться. Кроме того, он проверяет суммы всего файла в конце, что означает отсутствие значительного ускорения--no-whole-file
при добавлении опасного случая сбоя.использование
-S
/--sparse
: превратить последовательности нулей в разреженные блоки--partial
или-P
что--partial --progress
: сохранить любые частично переданные файлы для последующего возобновления. Примечание: файлы не будут иметь временного имени, поэтому убедитесь, что больше никто не ожидает использовать место назначения, пока не будет завершена полная копия.--no-whole-file
так что все, что нужно отправить, использует дельта-передачу. Чтение половины частично переданного файла часто происходит намного быстрее, чем повторная запись.--inplace
чтобы избежать копирования файла (но только если ничто не читает место назначения, пока не завершится вся передача)источник