最大化 rsync 性能和吞吐量 - 直接连接的千兆服务器

dya*_*sny 28 networking linux optimization rsync

我有两台运行 CentOS 6.5 的 Dell R515 服务器,其中一个 Broadcom NIC 直接连接到另一个。我每天晚上使用直接链接通过 ssh 使用 rsync 将备份从成对的主服务器推送到辅助服务器。监控流量,我看到大约 2MBps 的吞吐量,这远低于我对千兆端口的预期。我已将两侧的 MTU 设置为 9000,但这似乎没有任何改变。

是否有一组推荐的设置和优化可以使我达到最大可用吞吐量?此外,由于我在 ssh(或可能只是 NFS)上使用 rsync 来复制数百万个文件(~6Tb 的小文件 - 一个巨大的 Zimbra 邮件存储),我正在寻找的优化可能需要针对我的特定用例更具体.

我在双方都使用 ext4,如果这很重要

谢谢

编辑:我使用了以下rsync选项,结果非常相似:

rsync -rtvu --delete source_folder/ destination_folder/

rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/

目前,当使用cpNFS 导出时,我正在查看相同级别的糟糕性能,通过相同的直接电缆链接。

EDIT2:完成同步后,我可以运行iperf并发现性能大约为 990Mbits/sec,缓慢是由于使用的实际数据集。

eww*_*ite 26

文件数量和 SSH 加密开销可能是最大的障碍。您不会在这样的传输中看到线速。

改进的选项包括:

  • 将 rsync+SSH 与成本较低的加密算法一起使用(例如-e "ssh -c arcfour"
  • 使用HPN-SSH 之类的东西完全通过 SSH 传输消除加密。
  • 基于块的传输。快照,ddZFS快照发送/接收,等等。
  • 如果这是一次性或不频繁的传输,请使用tar、netcat( nc)、mbuffer或某种组合。
  • 检查您的 CentOStuned-adm设置
  • 从文件系统挂载中删除 atime。检查其他文件系统挂载选项。
  • NIC 发送/接收缓冲区。
  • 调整你的rsync命令。会-W,整个文件选项在这里有意义吗?是否启用压缩?
  • 针对传输类型(SSD、主轴数、RAID 控制器缓存)优化您的存储子系统。