Synology NAS 上的 rsync 与 cp

Synology NAS 上的 rsync 与 cp

在对 Synology DS251j 外置 USB 驱动器的性能感到失望之后,我对外壳进行了一些传输测试。

rsync有趣的是,我发现复制 1GB 的测试文件比使用简单命令花费的时间长三倍cp

我无法在桌面 Linux 上确认此行为。其他人有类似的经历吗?rsyncDS 上有什么问题吗?

测试脚本:

#!/bin/bash
sync
echo `date +%M:%S`
cp /volume1/a.tmp /volumeUSB1/usbshare
sync
echo `date +%M%S`
rsync /volume1/b.tmp /volumeUSB1/usbshare
sync
echo `date +%M:%S`

这些文件a.tmpb.tmp每个都是 1GB,volume1是内部驱动器的挂载点/volumeUSB1/usbshare,也是 USB 3 驱动器的挂载点。

另一个可以证实这一行为的事实是,我可以使用 轻松地在一夜之间备份整个驱动器,cp而使用 则无法做到这一点rsync

答案1

你会预计rsync 比 cp 慢第一的复制,因为它需要更多“来”和“回”操作。但可能不需要 3 倍的时间。

你会预计rsync 在后续“更新”副本中速度较慢如果使用了 -c 选项,读取和校验在目标机器上是一项昂贵的操作(磁盘速度慢、CPU 速度慢或内存不足)。同样,如果文件很大并且很多文件被更改,不使用 -c 可能会很慢。

如果您忘记在初始和后续运行中使用 -t,那么这也会导致 rsync 必须读取并校验整个文件。

基本上,任何时候 rsync 必须写入所有内容(或几乎如此),那么 cp 就会获胜,因此您应该小心设置选项,以便它可以尽可能少地工作。

如果一个包含完全未改变文件的 rsync 没有在“统计”树中(在较慢的磁盘上)每个文件所需的时间内完成,那么您就做错了什么。


在慢速机器上使用 rsync 的其他问题是压缩和加密开销。您应该尽可能在 rsync 和 SSH 中禁用这些选项(或使它们与您用于 cp 的选项相匹配)。当然,SSH 不会完全禁用加密,但您可以在~/.ssh/config(另一台机器上)调整密码;以下是我在 Synology 中使用的密码:

Host diskstation
    Ciphers arcfour256
    macs hmac-md5-96

其中“diskstation”是您的 NAS 的 IP 地址。

相关内容