我為我的伺服器購買了一個新的硬碟,我正在嘗試重新組織我的檔案。對於第一次傳輸,rsync
完美複製了約 3 GB。但是,使用等效rsync
命令時,第二次傳輸會失敗。
$ 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 個,然後就被卡住了。最近的嘗試在失敗前僅成功複製了 1 GB。我不確定它是否相關,但來源是時光倒流增量備份驅動器,因此它包含大量的硬連結。如何修復此錯誤並完成命令?
我正在運行 rsync 版本 3.1.1 協定版本 31。
答案1
dmesg | grep rsync
[85852.560086]記憶不足:殺死進程4242(rsync)得分194或犧牲子進程[85852.562695]殺死進程4243(rsync)total-vm:121948kB,anon-rss:65752kB,-vm:121948kB,anon-rss:65752kB,-files
解決方案:
- 將 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