Первое - количество файлов в этом случае будет основным фактором. Это средний размер 3 МБ каждый. Вероятно, узкое место io влияет на скорость в случае OP. Больше здесь - это довольно сухое чтение, но изображение на обложке того стоит.
Итак, используя rsync для копирования в пустой каталог? Вот несколько способов ускорить его:
- Нет -z - определенно не используйте -z как в ОП.
- --no-compress может ускорить вас. Это может оказать наибольшее влияние... мой тест был 13 000 файлов, общий размер 200 МБ и использование rsync 3.1.3. Я синхронизировался с другим разделом на том же внутреннем диске SSD. С --no-compress я получаю 18 МБ / с, а без него - 15 МБ / с. cp, кстати, получает 16 МБ / с. Это намного меньше, средний размер файла. Кроме того - я не могу найти документацию для --no-compress. Я узнал об этом из этого поста на stackexchange.com.
- -W копировать файлы целиком - всегда используйте это, если вы не хотите сравнивать различия; не берите в голову, что смысл rsync состоит в том, чтобы сравнить различия и только обновить изменения.
- -S хорошо обрабатывать разреженные файлы - не повредит, если у вас нет разреженных файлов.
- --exclude-from или что-то подобное для исключения файлов, которые вам могут не понадобиться, сократят время, но не увеличат скорость передачи.
- Это возможно, если вы отправите вывод в файл, подобный следующему:
rsync -a /source /destination >/somewhere/rsync.out 2>/somewhere/rsync.err
- первый> в основном печатает файл со всеми материалами, которые вы обычно видите и 2> относится к сообщениям об ошибках.
- Наконец, может помочь запуск нескольких экземпляров rsync для разных частей вашего перевода.
Моя команда будет:
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".