大規模なUSB複製のための同期または非同期?

大規模なUSB複製のための同期または非同期?

私はある「ソース」pendrvieから別のファイルに複数のファイルをコピーするbashスクリプトを書いています(インストールされていない場合は、ドライブをFAT32としてフォーマットします)。

rsyncを使用してファイルをコピーしています。

私はrsyncが非常に迅速に完了し、時には500MB / sなどの途方もない書き込み速度を報告しますが、通常15MB / sに保たれることを確認しました。

問題は、後でドライブをマウント解除するのに最大数分かかることがあります。これは、システムディスクキャッシュと非同期I / Oによるものです。

デフォルトの「非同期」モードの代わりに「同期」モードでドライブをマウントすると、rsyncプロセスが実際の書き込み速度を表示し、簡単に監視できない長いアンロードを回避できるかどうか疑問に思います。

実際の進捗状況を追跡し、合理的なETAを作成する方が簡単ですが、どういうわけかパフォーマンスが低下し、ドライブではなくいくつかのクールな機能(すべてのコピーをソースから読み取るように強制するなど)を無効にするのは心配です。 RAMキャッシュ)。

この特定のユースケースでは、同期は非同期と比較してどのような利点と欠点がありますか?

ベストアンサー1

はい、ディスクキャッシュが原因です。保留中のすべての書き込みは、マウント解除前に完了する必要があります。

これをインストールしても、必要な合計時間は短縮されません。作成する必要があるものは、終了するかどうかにsync関係なく作成する必要があります。rsync実際にマウントすると、sync特定のブロック(ディレクトリなど)を不必要に複数回作成することになり、スティックの寿命が若干短縮され、必要な合計時間も増えます。

監視したい場合実際atop書き込み速度などのツールを使用すると、特定のデバイスiotopの書き込み速度が表示されます。

トランザクション全体を監視またはスクリプトすることも簡単です。最終返品を待つと、完了するumountまで心配する必要はありません。rsync

だから私はそれを使用しないことをお勧めしますsync

おすすめ記事