我为我的服务器购买了一个新的硬盘,并且我正在尝试重新组织我的文件。对于第一次传输,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,file-rss:4kB – Sparhawk
解决方案:
- 将 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