Dlaczego rsync odradza dla mnie wiele procesów?

22

Używam następującej instrukcji cron do tworzenia kopii zapasowych z jednego folderu do innego folderu na tym samym komputerze:

19 21 * * * root  rsync -ac --delete /source/folder /dest/folder

Kiedy używam pstree, widzę, że cron rozwidla trzy procesy

 ├─cron───cron───rsync───rsync───rsync

I ps

 9972 ?        Ds     1:00 rsync -ac --delete /source/folder /dest/folder
 9973 ?        S      0:29 rsync -ac --delete /source/folder /dest/folder
 9974 ?        S      0:09 rsync -ac --delete /source/folder /dest/folder

Dlaczego są trzy procesy? Czy mogę ograniczyć się tylko do jednego?

Ryan
źródło
Dlaczego się przejmujesz? Czy powoduje to problemy z wydajnością?
EEAA,
2
Tak, wpływaj na wydajność mojego serwera, a oni używają dość zasobów
Ryan,

Odpowiedzi:

24

http://rsync.samba.org/how-rsync-works.html

Rsync jest mocno potokowy. Oznacza to, że jest to zestaw procesów komunikujących się (w dużej mierze) jednokierunkowo. Po udostępnieniu listy plików potok zachowuje się tak:
generator → nadawca → odbiorca

Dane wyjściowe generatora są wprowadzane przez nadawcę, a dane wyjściowe nadawcy są wprowadzane przez odbiorcę. Każdy proces działa niezależnie i jest opóźniany tylko wtedy, gdy rurociąg utknie w martwym punkcie lub podczas oczekiwania na dyskowe operacje we / wy lub zasoby procesora.

Używasz lokalnego rsync (źródłowy i docelowy to lokalny system plików), więc wszystkie trzy procesy będą tam działać.
Nic nie możesz zrobić, to z założenia.

oszust
źródło
8
Nie można ograniczyć liczby procesów, ale można ograniczyć wykorzystywaną przepustowość. Zakładam, że jego komputer jest chłostany przez odczyt rsync i zapis na tym samym urządzeniu dyskowym / blokowym. W tym przypadku pomocne może być użycie opcji „--bwlimit”.
JvO,