2016-07-10 3 views
0

Я использую rsync для резервного копирования папки 60G между моим ноутбуком и внешним USB-накопителем. Добавлены только 4G данных. Потребовалось много времени: 2 часа.Почему rsync так медленно?

Вот команда:

rsync -av --exclude=target/ --exclude=".git/" --delete --link-dest=$destdir/backup.1 $element $destdir/backup.0 

У вас есть объяснение? Что замедляет rsync больше: много маленьких файлов или больших двоичных файлов (фотографий)?

ответ

2

Поскольку я точно не знаю вашу систему, я делаю несколько предположений здесь. Если они не соответствуют вашей ситуации, уточните свой вопрос, и я с радостью обновлю ответ.

Я предполагаю, что у вас есть много файлов, независимо от их размеров в месте, из которого вы копируете. Это приведет к довольно медленному rsync, вызванному дизайном протокола rsync.

Rsync работает следующим образом:

1. Build a file-list of the source location. 

2. For all files in the source location: 

    a. Get the size and the mtime (modification timestamp) 
    b. Compare it with the size and mtime of the copy in the destination location 
    c. If they differ, copy the file from the source to the destination 

Done. 

Если у вас есть только несколько файлов, это, очевидно, будет быстрее, чем для многих файлов. Ваш USB-накопитель может быть вашим узким местом, так как извлечение размера и метки времени создаст много прыжков в таблице inode.

Возможно, такой инструмент, как iotop (в случае, если ваш Linux, аналогичные инструменты доступны практически для всех платформ), поможет вам определить узкое место.

Опция --delete также может вызвать медленный rsync, если поиск полного списка файлов целевого местоположения медленный (что возможно для внешнего вращающегося USB-диска). Чтобы убедиться, что это проблема, на любом os с bash, просто введите time ls -Ral <target-location> > filelist.txt (перенаправление вывода в файл, поскольку удаление данных на экране происходит медленнее). Если это займет намного больше времени, чем для исходного диска, целевой диск может стать узким местом.