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 займає більше години, коли є тисячі та тисячі та тисячі файлів. Якщо ви запускаєте "зверху", чи бачите ви чекання вводу-виводу?
troyengel

Тільки тому, що мені цікаво, чи можете ви запустити df -iта розповісти, що ви маєте для IUsed/ на зберігання? Це дасть нам приблизне уявлення про те, скільки файлів + папок у вас є.
Zoredache

1383641, це кількість файлів?
Andrew Fashion

Відповіді:


24

rsync 2.x створює повний список файлів вперед.

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

Якщо ви думаєте, що це справді висить, в іншому терміналі знайдіть підпис rsync, а потім

  1. Біжіть strace -p PIDі дивіться, що це робить. (Натисніть ^ C, щоб зупинити.)

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


Нічого straceздорово! Напевно, ви побачите, що відбувається щось кругле: На зразок посилання, що посилається на один із каталогів його предків. У моєму випадку я використовував віртуальну файлову систему, яка не мала обмеження по глибині, тобто вона мала "нескінченно" безліч підкаталогівtagfs/books/+/books/+/books/+/ ...
Заз

@Zaz У мене також є величезна кількість підкаталогів, по глибині. Але це в моєму дизайні системи. Чи є спосіб вирішити це?
user1641443

@ user1641443: Вибачте, це поза мною.
Заз

@ user1641443: 1: Спробуйте rsync> 3.0, як каже Мартин . 2: Запустити кілька процесів rsync на кожному меншому дереві. 3: Відкрийте власне окреме запитання.
poolie

15

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

Незважаючи на це, можливо, буде потрібно багато часу, щоб пройти всі ці дані. У моєму випадку між двома досить потужними серверами DL380 G5 досі залишається більше години.


Також зауважте, що певні прапори змусять стару поведінку; для мене це було --delay-updates.
Xiong Chiamiov

1
@XiongChiamiov Єдиними параметрами, які я використовую, є "-a" і "--progress", а версія 3.1.x все ще створює додатковий список файлів. Чому?
Майкл

3

Ви раніше зазначали, що duтак само висіло. Щось із цією файловою системою, і rsyncвражає все, що duбуло.

Одне швидке, що ви можете перевірити, це повідомлення про помилки ядра, що вказують на проблему з диском. Введіть dmesgі подивіться, що знаходиться внизу.


1

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


після довгих пошуків я натрапив на це, і це спонукало мене піти і перевірити - працює rsync над vpn зі стандартним 1450 mtu, але я не контролюю обладнання між сайтами - змінив vpn mtu вниз на 1430 і віолу rsync працює на 100% (і раптом інші дивацтва в мережі також зникли!) дякую!
l0ft13

0

Виходячи з цього , і ваш інше питання du /storageпідвішування змушує мене думати , що ні duчи rsyncпроблема, а є деякі проблеми з /storage.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.