¿Por qué rsync genera múltiples procesos para mí?

21

Estoy usando la siguiente instrucción cron para hacer una copia de seguridad de una carpeta a otra carpeta en la misma máquina:

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

Cuando uso pstree, veo que el cron bifurcó tres procesos

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

Y 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

¿Por qué son tres procesos? ¿Puedo limitarme a uno solo?

Ryan
fuente
¿Por qué te importa? ¿Está causando algún problema de rendimiento?
EEAA
2
Sí, afecta el rendimiento de mi servidor y usan bastante recursos
Ryan

Respuestas:

24

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

Rsync está fuertemente canalizado. Esto significa que es un conjunto de procesos que se comunican de una manera (en gran medida) unidireccional. Una vez que se ha compartido la lista de archivos, la canalización se comporta así:
generador → remitente → receptor

La salida del generador es entrada para el emisor y la salida del emisor es entrada para el receptor. Cada proceso se ejecuta de forma independiente y se retrasa solo cuando las tuberías se estancan o cuando esperan E / S de disco o recursos de CPU.

Está ejecutando un rsync local (el origen y el destino son un sistema de archivos local), por lo que los tres procesos se ejecutarán allí.
No hay nada que puedas hacer, esto es por diseño.

falsificador
fuente
8
No puede limitar el número de procesos, pero puede limitar el ancho de banda utilizado. Supongo que su máquina está azotada por rsync leyendo y escribiendo en el mismo dispositivo de disco / bloque. Usar la opción '--bwlimit' puede ayudar en este caso.
JvO