rsync è solo sospeso, costruendo un elenco di file


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

Sono stato seduto per circa un'ora ... sono 135 GB di immagini e cartelle

/storage è un'unità SCSI ext3 montata.

È normale che rsync stia seduto così a lungo calcolando i file / le directory?


Quanti file? Con un numero molto elevato di file ci vorrà del tempo.
Helvick,

probabilmente migliaia ... directory di immagini caricate dagli utenti ...
Andrew Fashion,

Ho visto che questa parte di rsync impiega più di un'ora quando ci sono migliaia e migliaia e migliaia di file. Se corri in alto, vedi I / O aspettare?
Troyengel,

Solo perché sono curioso, puoi correre df -ie dirci cosa hai per IUsed/ storage? Ci darà un'idea approssimativa di quanti file + cartelle hai.
Zoredache,

1383641, è questa la quantità di file?
Andrew Fashion,

Risposte:


24

rsync 2.x crea un elenco di file completo in primo piano.

Aggiungi l' -Popzione e vedrai un indicatore di avanzamento.

Se pensi che sia davvero sospeso, in un altro terminale trova il pid di rsync e poi

  1. Corri strace -p PIDe guarda cosa sta facendo. (Premi ^ C per interrompere.)

  2. Corri ps -o wchan PIDper vedere dove si trova nel kernel.


Caspita strace! Probabilmente scoprirai che sta succedendo qualcosa di circolare: come un collegamento che fa riferimento a una delle sue directory antenate. Nel mio caso stavo usando un filesystem virtuale che non aveva limiti di profondità, cioè aveva "infinitamente" molte sottodirectorytagfs/books/+/books/+/books/+/ ...
Zaz,

@Zaz Ho anche un'enorme quantità di sottodirectory, in profondità. Ma questo è nella progettazione del mio sistema. C'è un modo per risolvere questo?
user1641443

@ user1641443: mi dispiace, questo è al di là di me.
Zaz,

@ user1641443: 1: prova rsync> 3.0 come dice Martin . 2: eseguire più processi rsync ciascuno su un sottoalbero più piccolo. 3: Apri la tua domanda separata.
poolie,

15

Dovresti eseguire l'aggiornamento a rsync 3.0.x dove otterrai i vantaggi degli elenchi di file incrementali, spiegato qui . Sto risincronizzando milioni di immagini (~ 200 GB in totale) e ho visto un enorme aumento di velocità passando da rsync 2.xa 3.x.

Anche così, probabilmente ci vorrà molto tempo per passare attraverso tutti quei dati. Nel mio caso ci vuole ancora più di un'ora tra due server DL580 G5 piuttosto potenti.


Si noti inoltre che alcune bandiere imporranno il vecchio comportamento; per me lo era --delay-updates.
Xiong Chiamiov

1
@XiongChiamiov Le uniche opzioni che sto usando sono "-a" e "--progress" e la versione 3.1.x sta ancora costruendo un elenco di file incrementale. Perché?
Michael,

3

In precedenza hai notato che duera appeso anche. C'è qualcosa che non va in questo filesystem e rsyncsta colpendo qualunque cosa dufosse.

Una cosa veloce che puoi controllare è la presenza di messaggi di errore del kernel che indicano un problema del disco. Digita dmesge vedi cosa c'è in fondo.


1

Il blocco dopo il messaggio "elenco file in costruzione ..." può essere causato dalla mancata corrispondenza di MTU, ad esempio se hai impostato le interfacce di rete con MTU 9000 ma non il passaggio tra piccoli pacchetti (come la connessione al server rsync) passerà attraverso quelli non più grandi (come l'invio dell'elenco dei file).


dopo molte ricerche mi sono imbattuto in questo e mi ha spinto ad andare a controllare - stava eseguendo rsync su una VPN con 1450 mtu standard ma non ho il controllo dell'attrezzatura tra i siti - ha cambiato la MTP MTU fino al 1430 e viola il rsync funziona al 100% (e all'improvviso anche altre stranezze di rete sono scomparse!) grazie!
l0ft13

0

Sulla base di questo e la vostra altra questione di du /storageimpiccagione mi fa pensare che né duo rsyncè il problema, ma piuttosto ci sono alcuni problemi con /storage.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.