为什么rsync比NFS快?
几天前,我注意到了一件相当奇怪的事情(至少对我而言)。我运行rsync复制相同的数据,然后将其删除到名为的NFS挂载中/nfs_mount/TEST。这/nfs_mount/TEST是从托管/导出的nfs_server-eth1。两个网络接口上的MTU均为9000,两者之间的交换机也支持巨型帧。如果可以,rsync -av dir /nfs_mount/TEST/我得到的网络传输速度为X MBps。如果可以,rsync -av dir nfs_server-eth1:/nfs_mount/TEST/我的网络传输速度至少为2X MBps。我的NFS挂载选项是nfs rw,nodev,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountvers=3,mountproto=tcp。 底线:两种传输都通过相同的网络子网,相同的线路,相同的接口,读取相同的数据,写入相同的目录等。唯一的区别是通过NFSv3,另一种通过rsync。 客户端是Ubuntu 10.04,服务器是Ubuntu 9.10。 rsync怎么这么快?如何使NFS与该速度匹配? 谢谢 编辑:请注意,我使用rsync写入NFS共享或SSH到NFS服务器并在那里本地写入。我都做过两次rsync -av,从清除目标目录开始。明天我将尝试使用普通副本。 Edit2(其他信息):文件大小范围为1KB-15MB。文件已经被压缩,我尝试进一步压缩它们,但没有成功。我tar.gz从那做文件dir。这是模式: rsync -av dir /nfs_mount/TEST/ =最慢的传输; rsync -av dir nfs_server-eth1:/nfs_mount/TEST/=启用巨型帧时最快的rsync;没有巨型帧会慢一些,但仍然比直接到NFS的要快得多; rsync -av dir.tar.gz nfs_server-eth1:/nfs_mount/TEST/ =与其非tar.gz等效项相同; 用cp和测试scp: cp -r dir /nfs_mount/TEST/=比快一点,rsync -av dir /nfs_mount/TEST/但仍然慢得多rsync -av dir nfs_server-eth1:/nfs_mount/TEST/。 scp -r dir /nfs_mount/TEST/=整体最快,略有克服rsync -av dir …