Por que o rsync gera vários processos para mim?


21

Estou usando a seguinte instrução cron para fazer backup de uma pasta para outra pasta na mesma máquina:

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

Quando uso pstree, vejo o cron bifurcou três processos

 ├─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

Por que três processos? Posso limitar a apenas um?


Por quê você se importa? Está causando algum problema de desempenho?
EEAA

2
Sim, afeta o desempenho do meu servidor e eles usam algum recurso #
2119 Ryan Ryan

Respostas:


24

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

Rsync é fortemente canalizado. Isso significa que é um conjunto de processos que se comunicam de maneira (em grande parte) unidirecional. Depois que a lista de arquivos é compartilhada, o pipeline se comporta da seguinte maneira:
gerador → remetente → receptor

A saída do gerador é entrada para o remetente e a saída do remetente é entrada para o receptor. Cada processo é executado de forma independente e é atrasado apenas quando os pipelines são interrompidos ou ao aguardar E / S de disco ou recursos da CPU.

Você está executando um rsync local (o sistema de arquivos local e de origem), portanto, todos os três processos serão executados lá.
Não há nada que você possa fazer, isso é por design.


8
Você não pode limitar o número de processos, mas pode limitar a largura de banda usada. Suponho que sua máquina seja açoitada pela leitura e gravação do rsync no mesmo dispositivo de disco / bloco. Usar a opção '--bwlimit' pode ajudar nesse caso.
JvO
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.