我有两台运行 CentOS 6.5 的戴尔 R515 服务器,其中一个 Broadcom NIC 直接连接到另一个。我每天晚上使用 rsync over ssh 使用直接链接将备份从对中的主服务器推送到辅助服务器。监控流量,我看到大约 2MBps 的吞吐量,这比我对千兆端口的预期要低得多。我已经将两边的 MTU 都设置为 9000,但这似乎并没有改变任何东西。
是否有一组推荐的设置和优化可以使我达到最大可用吞吐量?此外,由于我使用 rsync over ssh(或可能只是 NFS)来复制数百万个文件(约 6Tb 的小文件 - 一个巨大的 Zimbra 邮件存储),我正在寻找的优化可能需要更具体地针对我的特定用例.
如果这很重要,我在两边都使用 ext4
谢谢
编辑:我使用了以下rsync
选项,结果非常相似:
rsync -rtvu --delete source_folder/ destination_folder/
rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/
目前,我在通过cp
相同的直接电缆链接使用 NFS 导出时看到相同级别的不良性能。
EDIT2:完成同步后,我可以运行iperf
并发现性能约为 990Mbits/sec,缓慢是由于实际使用的数据集。
文件数量和 SSH 加密开销可能是最大的障碍。您不会在这样的传输中看到线速。
改进的选项包括:
-e "ssh -c arcfour"
)dd
ZFS快照发送/接收等。tar
、netcat(nc
)、mbuffer或某种组合。tuned-adm
设置。rsync
命令。-W
整个文件选项在这里有意义吗?是否启用压缩?您可能知道复制大量小文件(例如使用 MailDir 格式或类似格式的邮箱)绝对不是利用高带宽接口的最佳选择。SSH 可能也不是最好的传输协议。我会尝试使用 tar 在源主机上创建一个压缩包,然后再将其发送给您的辅助主机。
如果您需要增量备份,您可能需要尝试
-g
tar 的选项。如果您仍然需要最大化吞吐量,请尝试使用 netcat 而不是 ssh。试着梳理一下促成因素:
并独立测试它们。
我对 Broadcom 驱动程序有过一些不好的体验,所以我的第一个建议是测试可用的网络带宽:
dd if=/dev/zero bs=1m count=10k | rsh backup_host cat \> /dev/null