本文博客链接:https://zohead.com/archives/rsync-performance-linux-cygwin-msys/
rsync是一个开源免费的文件同步和备份工具,可用于本地备份,本地与远程服务器之间的备份,可以实现增量和差异备份,而且由于比较好的算法,在文件备份速度上也相对其它一些文件备份工具有明显的优势。
但 rsync 一直以来没有 Windows 下的原生客户端,都是基于 cygwin 环境实现,实际备份性能会受一些影响,近日看到 rsync 的 基于 MSYS 的 Win32 原生客户端已经被 port 出来,故简单做下性能对比测试。
测试环境:
rsync服务器为 RHEL5 Linux 64bit,8个SATA盘的RAID0做下层存储,采用单千兆网络和千兆交换机
rsync客户端为:RHEL5 Linux 64bit,Windows 2003 Enterprise 32bit
测试时 rsync 均通过匿名方式访问,不经过SSH做用户验证,由于考虑到测试的 rsync 客户端的系统盘速度有瓶颈,客户端文件读写都通过内存文件系统来实现(Linux 上使用 tmpfs,Windows 上使用 ImDisk 模拟内存盘)。
使用同样的客户端主板分别在 Linux 和 Windows 内存中产生 1.5GB 的测试文件,然后通过 rsync 客户端进行备份到服务器(写操作)和从服务器上恢复(读操作)的操作。
备份命令示例:
rsync -hv x.dat 192.168.1.125::rsync0/
测试软件列表:
- 标准 Linux rsync 客户端(RHEL 5 系统自带)
- cygwin rsync 客户端
- MSYS rsync 客户端
http://sourceforge.net/projects/mingw/files/MSYS/Extension/rsync/ - RsyncWin32 客户端
http://sourceforge.net/projects/rsyncwin32/
测试结果:
测试软件 | 写性能(MB/s) | 读性能(MB/s) |
Linux rsync | 105.27 | 105.28 |
cygwin rsync | 76.22 | 64.49 |
MSYS rsync | 7.98 | 8.14 |
RsyncWin32 | 76.72(出现错误) | 38.50(出现错误) |
从测试结果看,由于 rsync 本身面向类 Linux 环境开发,在 Linux 系统中有着非常好的性能,cygwin rsync 与 Linux 相比有一定差距,但实际使用中还是比较稳定的,而 MSYS rsync 还处于测试阶段,虽然没有出现备份错误,但在千兆网络环境下性能非常差,RsyncWin32 则相对而言问题比较多,备份过程中甚至会出现备份错误。
综上看来,目前在 Windows 上使用 cygwin rsync 做备份客户端仍然算是比较好的解决方案,MSYS rsync 的问题可以啥时候有空再看看咯。
Windows上做服务器应该也还比较有用的…