Perché rsync genera più processi per me?


21

Sto usando la seguente dichiarazione cron per eseguire il backup da una cartella a un'altra cartella nella stessa macchina:

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

Quando uso pstree, vedo il cron fork di tre processi

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

E 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

Perché sono tre processi? Posso limitarmi a uno solo?


Perché ti interessi? Sta causando problemi di prestazioni?
EEAA

2
Sì, influiscono sulle prestazioni del mio server e usano parecchie risorse
Ryan,

Risposte:


24

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

Rsync è fortemente pipeline. Ciò significa che è un insieme di processi che comunicano in modo (in gran parte) unidirezionale. Una volta che l'elenco dei file è stato condiviso, la pipeline si comporta in questo modo:
generatore → mittente → destinatario

L'output del generatore viene immesso per il mittente e l'output del mittente viene immesso per il destinatario. Ogni processo viene eseguito in modo indipendente e viene ritardato solo quando le pipeline si arrestano o in attesa di I / O del disco o risorse della CPU.

Stai eseguendo un rsync locale (sorgente e destinazione sono filesystem locali) quindi tutti e tre i processi verranno eseguiti lì.
Non c'è niente che tu possa fare, questo è di progettazione.


8
Non è possibile limitare il numero di processi, ma è possibile limitare la larghezza di banda utilizzata. Presumo che la sua macchina sia guastata da rsync che legge e scrive sullo stesso dispositivo disco / blocco. L'uso dell'opzione '--bwlimit' può essere d'aiuto in questo caso.
JvO
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.