Warum erzeugt rsync für mich mehrere Prozesse?

20

Ich verwende die folgende cron-Anweisung zum Sichern von einem Ordner in einen anderen Ordner auf demselben Computer:

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

Wenn ich es benutze pstree, sehe ich, dass der Cron drei Prozesse gegabelt hat

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

Und 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

Warum sind drei Prozesse? Kann ich mich auf nur einen beschränken?

Ryan
quelle
Wieso kümmert es dich? Verursacht es Leistungsprobleme?
EEAA
2
Ja, meine Serverleistung wird beeinträchtigt und sie
Ryan

Antworten:

23

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

Rsync ist stark in der Pipeline. Dies bedeutet, dass es sich um eine Reihe von Prozessen handelt, die (weitgehend) unidirektional kommunizieren. Nachdem die Dateiliste freigegeben wurde, verhält sich die Pipeline wie folgt:
Generator → Absender → Empfänger

Die Ausgabe des Generators wird für den Sender eingegeben und die Ausgabe des Senders wird für den Empfänger eingegeben. Jeder Prozess wird unabhängig ausgeführt und nur verzögert, wenn die Pipelines blockieren oder auf Datenträger-E / A- oder CPU-Ressourcen warten.

Sie führen ein lokales rsync aus (Quelle und Ziel sind lokale Dateisysteme), sodass alle drei Prozesse dort ausgeführt werden.
Sie können nichts tun, dies ist beabsichtigt.

Schwindler
quelle
7
Sie können die Anzahl der Prozesse nicht begrenzen, aber Sie können die verwendete Bandbreite begrenzen. Ich gehe davon aus, dass sein Computer durch rsync-Lese- und -Schreibvorgänge auf demselben Platten- / Blockgerät ausgepeitscht wird. In diesem Fall kann die Option "--bwlimit" hilfreich sein.
JvO