これは ここに記載されている事項 を参照しており、私も同じことを経験しています。
私のサーバーの1つで、rsyncを実行して、巨大なディレクトリ(300 GBを超えるサイズ)を同じマシンにマウントされた別のディスクにバックアップしました。 rsyncされているディレクトリには、何千ものディレクトリとファイルが含まれています。 'Nohup'を使用して単一のrsyncコマンドを発行し、 '&'コマンドを使用してバックグラウンドでプッシュしました。リモートのbashシェルで(PuTTYを使用して)指定された完全なコマンドは次のとおりです。
Nohup rsync -avh /some/local/dir /backup/ >> /opt/rsync.dec22.log &
次に、コピーされるデータのレートを確認するために、「iotop」コマンドを使用しましたが、同じパラメーターで3つのrsyncが実行されていることがわかりました。検索したところ、正常であるという上記のリンクが見つかりました。
しかし、iotopを実行して、システム上で実行されているそれらと唯一のrsyncプロセスのみを監視すると、1つのプロセスがファイルの読み取り、1つのプロセスがファイルの書き込みを行っているが、1つはアイドル状態であることがわかります。 1つのプロセスが一度に1つの処理しか実行しないので、動作は良いようですが、3番目のプロセスは何をしているのですか(下の画像の真ん中のように見えます)?
私が使用したiotopコマンドは次のとおりです。
iotop -p22250 -p22251 -p22252
Iotopコマンド出力のスクリーンショットは次のとおりです。
私はrsyncを頻繁に使用するこの原因を尋ねていますが、長期的な利益のためにその動作を理解したいと思います。マニュアルも読んだのですが、フォークについては何も書かれていません。
rsyncは、クライアントおよびサーバーとして設計されたプログラムです。サーバーが読み取り、クライアントが書き込みます。単一のコンピューターではなく、ネットワーク経由でコンピューターを使用していると想像してみてください。そのように考えると、はるかに明確になると思います。
次に、コントローラーがあります。 IO操作にはある程度のリスクが伴う傾向があるため、IOの問題によって、完全なブロッキングやクラッシュが発生することはありません。したがって、各接続とバックグラウンドに座っています。