壊れたパイプ(32)、io.c(820)のソケットIOエラー(コード10)が原因でrsyncが失敗するのはなぜですか? [閉鎖]

壊れたパイプ(32)、io.c(820)のソケットIOエラー(コード10)が原因でrsyncが失敗するのはなぜですか? [閉鎖]

私はサーバー用の新しいハードドライブを購入し、私のファイルを再構成しようとしています。最初の転送では、rsync約3GBが完全にコピーされました。ただし、rsyncそのコマンドを使用すると、2番目の転送は失敗します。

$ sudo /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 rsync -aEHAXPx /media/a/ /media/b --delete
...
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.1]

最初の実行では、800 GBのうち約550 GBをコピーして停止しました。最近の試みでは、1 GB のみのコピーに成功した後に失敗しました。関連性があるかどうかはわかりませんが、ソースは次のとおりです。時間をさかのぼるドライブに多数のハードリンクが含まれるように増分バックアップします。このエラーを修正してコマンドを完了するにはどうすればよいですか?

rsyncバージョン3.1.1プロトコルバージョン31を実行しています。

答え1

dmesg | grep rsync

[85852.560086] メモリ不足: プロセス 4242(rsync) スコア 194 終了またはサブプロセス犠牲

解決策:

  • rsync速度をディスク速度よりも遅く変更してください。--bwlimit=6000.. USB 2は60MB/s /4(ドライブ2個の読み書き用)または/10(非SSD検索用)...または2GB RAMとUSB3.0を搭載したXU4を購入してください。
  • カーネルメモリパラメータの変更echo 100 > /proc/sys/vm/watermark_scale_factor
  • 動作中の強制メモリの削除echo 3 > /proc/sys/vm/drop_caches
  • 4.9.29カーネルを使用していることを確認してください。uname -r

関連情報