rsync po prostu się zawiesza, budując listę plików


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

Siedzę od około godziny ... to 135 GB zdjęć i folderów

/storage to zamontowany dysk ext3 scsi.

Czy to normalne, że rsync siedzi tak długo, obliczając pliki / katalogi?


Ile plików? Przy bardzo dużej liczbie plików zajmie to trochę czasu.
Helvick,

prawdopodobnie tysiące ... katalog zdjęć przesyłanych przez użytkowników ...
Andrew Fashion

Widziałem, że ta część rsync zajmuje dużo ponad godzinę, gdy są tysiące, tysiące plików. Jeśli uruchomisz „top”, czy widzisz, że I / O czeka?
troyengel,

Tylko dlatego, że jestem ciekawy, czy możesz uruchomić df -ii powiedzieć nam, co masz do IUsedprzechowywania / przechowywania? Daje nam to przybliżony obraz liczby posiadanych plików i folderów.
Zoredache,

1383641, czy to ilość plików?
Andrew Fashion,

Odpowiedzi:


24

rsync 2.x tworzy z góry pełną listę plików.

Dodaj -Popcję, a zobaczysz wskaźnik postępu.

Jeśli uważasz, że to naprawdę wisi, w innym terminalu znajdź pid rsync, a następnie

  1. Uruchom strace -p PIDi zobacz, co robi. (Naciśnij ^ C, aby zatrzymać.)

  2. Uruchom, ps -o wchan PIDaby zobaczyć, gdzie jest w jądrze.


Wow stracejest super! Prawdopodobnie okaże się, że dzieje się coś okrągłego: jak łącze, które odnosi się do jednego z katalogów przodków. W moim przypadku korzystałem z wirtualnego systemu plików, który nie miał ograniczeń co do głębokości, tj. Miał „nieskończenie” wiele podkatalogówtagfs/books/+/books/+/books/+/ ...
Zaz

@Zaz Mam również ogromną liczbę podkatalogów. Ale to jest w moim projekcie systemu. Czy istnieje sposób na rozwiązanie tego problemu?
user1641443

@ user1641443: Przepraszam, to mnie przerasta.
Zaz

@ user1641443: 1: Spróbuj rsync> 3.0, jak mówi Martin . 2: Uruchom wiele procesów rsync, każdy na mniejszym sub-drzewie. 3: Otwórz swoje własne pytanie.
poolie

15

Powinieneś uaktualnić do rsync 3.0.x, gdzie uzyskasz korzyści z przyrostowych list plików, wyjaśnionych tutaj . Synchronizuję miliony obrazów (łącznie ~ 200 GB) i zobaczyłem ogromne przyspieszenie, gdy przechodziłem z rsync 2.x do 3.x.

Mimo to przejrzenie wszystkich tych danych prawdopodobnie potrwa długo. W moim przypadku nadal trwa ponad godzina między dwoma dość mocnymi serwerami DL380 G5.


Zauważ też, że niektóre flagi wymuszą stare zachowanie; dla mnie tak było --delay-updates.
Xiong Chiamiov

1
@XiongChiamiov Jedyne opcje, których używam, to „-a” i „--progress”, a wersja 3.1.x wciąż tworzy przyrostową listę plików. Czemu?
Michael

3

Zauważyłeś wcześniej, że duto również wisiało. Coś jest nie tak z tym systemem plików i rsyncuderza to, co dubyło.

Jedną szybką rzeczą, którą można sprawdzić, są komunikaty o błędach jądra wskazujące na problem z dyskiem. Wpisz dmesgi zobacz, co jest na dole.


1

Zawieszenie po komunikacie „budowanie listy plików ...” może być spowodowane niedopasowaniem MTU, np. Jeśli skonfigurowałeś interfejsy sieciowe z MTU 9000, ale nie przełączasz między małymi pakietami (jak połączenie z serwerem rsync) przejdzie, ale nie większe (jak wysyłanie listy plików).


po wielu poszukiwaniach natknąłem się na to, co skłoniło mnie do pójścia i sprawdzenia - uruchomiłem rsync na sieci VPN ze standardowym 1450 mtu, ale nie kontroluję sprzętu pomiędzy stronami - zmieniłem vpn mtu na 1430 i viola rsync działa w 100% (i nagle inna dziwność sieci również zniknęła!) dzięki!
l0ft13

0

Na tej podstawie a drugie kwestia du /storagezawieszania sprawia, że myślę, że ani duczy rsyncjest to problem, ale raczej są pewne problemy z /storage.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.