rsyncが複数のプロセスを生成するのはなぜですか?


21

私は、次のcronステートメントを使用して、同じマシンのあるフォルダーから別のフォルダーにバックアップしています。

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

を使用するpstreeと、cronが3つのプロセスを分岐したことがわかります

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

そして 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

なぜ3つのプロセスがあるのですか?1つだけに制限できますか?


なんで気にするの?パフォーマンスの問題を引き起こしていますか?
EEAA

2
はい、私のサーバーのパフォーマンスに影響を与え、彼らはかなりのリソースを使用する
ライアン

回答:


24

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

Rsyncは非常にパイプライン化されています。これは、(大部分)一方向で通信するプロセスのセットであることを意味します。ファイルリストが共有されると、パイプラインは次のように動作します。
ジェネレーター→送信者→受信者

ジェネレータの出力は送信者の入力であり、送信者の出力は受信者の入力です。各プロセスは独立して実行され、パイプラインが停止したとき、またはディスクI / OまたはCPUリソースを待機しているときにのみ遅延します。

ローカルrsync(ソースと宛先はローカルファイルシステム)を実行しているため、3つのプロセスすべてがそこで実行されます。
できることは何もありません。これは仕様によるものです。


8
プロセスの数を制限することはできませんが、使用する帯域幅制限することはできます。彼のマシンは、同じディスク/ブロックデバイスへのrsync読み取りと書き込みによって詰まっていると思います。この場合、「-bwlimit」オプションを使用すると役立ちます。
JVO
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.