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.