rsync просто висит, строит список файлов

20
[root@centos /]# rsync -av --exclude thumbs /storage root@xx.27.1.xx:/storage
root@xx.27.1.xx's password: 
building file list ... 

Я сижу около часа ... это 135 ГБ изображений и папок

/storage Это установленный Ext3 SCSI диск.

Это нормально для rsync сидеть так долго, вычисляя файлы / каталоги?

Андрей Мод
источник
Сколько файлов? С очень большим количеством файлов это займет некоторое время.
Хелвик
вероятно тысячи ... каталог картинок пользовательских загрузок ...
Andrew Fashion
Я видел, как эта часть rsync заняла больше часа, когда есть тысячи, тысячи и тысячи файлов. Если вы запускаете «top», вы видите, что I / O ждет?
Троенгель
Только потому, что мне любопытно, вы можете запустить df -iи рассказать нам, что у вас есть для IUsedхранения / хранения? Это даст нам приблизительное представление о том, сколько файлов + папок у вас есть.
Zoredache
1383641, это количество файлов?
Andrew Fashion

Ответы:

24

rsync 2.x заранее создает полный список файлов.

Добавьте -Pопцию, и вы увидите индикатор прогресса.

Если вы думаете, что это действительно зависает, в другом терминале найдите pid rsync, а затем

  1. Беги strace -p PIDи посмотри, что он делает. (Нажмите ^ C, чтобы остановить.)

  2. Запустите, ps -o wchan PIDчтобы увидеть, где он находится в ядре.

poolie
источник
Вау straceэто круто! Вы, вероятно, обнаружите, что происходит нечто круглое: как ссылка, которая ссылается на один из его каталогов предков. В моем случае я использовал виртуальную файловую систему, которая не имела ограничений по глубине, то есть у нее было «бесконечно» много подкаталоговtagfs/books/+/books/+/books/+/ ...
Zaz
@Zaz У меня также есть огромное количество подкаталогов, в глубине. Но это в моей конструкции системы. Есть ли способ решить это?
user1641443 14.09.16
@ user1641443: Извините, это за мной.
Заз
@ user1641443: 1: Попробуйте rsync> 3.0, как говорит Мартин . 2: Запустить несколько процессов rsync, каждый из которых находится на меньшем поддереве. 3: Откройте свой собственный отдельный вопрос.
пул
15

Вам следует перейти на rsync 3.0.x, где вы получите преимущество от добавочных списков файлов, описанных здесь . Я произвожу миллионы изображений (всего ~ 200 ГБ) и вижу огромное ускорение при переходе с rsync 2.x на 3.x.

Несмотря на это, вероятно, потребуется много времени, чтобы просмотреть все эти данные. В моем случае это все еще занимает больше часа между двумя довольно мощными серверами DL380 G5.

Мартин
источник
Также обратите внимание, что определенные флаги приведут к старому поведению; для меня это было --delay-updates.
Xiong Chiamiov
1
@XiongChiamiov Я использую только опции "-a" и "--progress", а версия 3.1.x все еще строит добавочный список файлов. Зачем?
Майкл
3

Вы ранее заметили, что duтоже висел. Что-то не так с этой файловой системой и rsyncпоражает то, что duбыло.

Одна быстрая вещь, которую вы можете проверить, - это сообщения об ошибках ядра, указывающие на проблему с диском. Наберите dmesgи посмотрите, что внизу.

mattdm
источник
1

Зависание после сообщения «создание списка файлов ...» может быть вызвано несоответствием MTU, например, если вы настроили сетевые интерфейсы с MTU 9000, но не переключались между ними, небольшие пакеты (например, подключение к серверу rsync) будет проходить, но не большие (например, отправка списка файлов).

Мутатор
источник
После долгих поисков я наткнулся на это, и это побудило меня пойти и проверить - запускал rsync через vpn со стандартным 1450 mtu, но я не контролирую оборудование между сайтами - изменил vpn mtu до 1430 и альт rsync работает на 100% (и внезапно исчезла и другая странность сети!) спасибо!
13.10
0

Исходя из этого , и ваш другой вопрос du /storageподвешивания заставляет меня думать , что ни duили rsyncпроблема, а есть некоторые проблемы с /storage.

Марк Вагнер
источник