2009-08-06 46 views
0

我有一个使用nfs挂载的gentoo无盘客户端,看起来nfs的吞吐量似乎很慢。 iperf显示网络能够推送770 Mb/s,hdparm以90 Mb/s的速度显示服务器上的sata磁盘,但在网络上执行dd只显示为10 Mb/s(约为40 Mb/s在服务器上对第三台机器进行相同的测试)。Linux无盘客户端nfs吞吐量

奇怪的是,pxeboot挂载nfsver2。不知道这是否是一个问题,但其他挂载后,引导挂载为nfsver3。真的好像它是一个配置问题的nfs的地方,但我没有发现任何有所作为。做rsize = 8k,wsize = 8k,noatime,async。任何人都有任何提示,或者这是10 Mb/s的真正吞吐量,我应该期待无盘客户端?

+1

属于serverfault.com? – drdaeman 2009-08-06 19:31:44

回答

0

有趣的是修复是什么。装载pxelinux nfs根目录时,必须在pxelinux.cfg文件(而不是fstab)中设置nfs参数。在将nfs根分区设置为nfsver3时,我获得了很好的性能提升。然而,真正有所作为的是去除pxelinux配置文件和fstab中的rsize和wsize参数,并让nfs找出块大小应该是什么。这让nfs的读/写能够达到我预期的效果。这是我的配置和一些指标,如果它可以帮助其他人。


one ~ # nfsstat -m 
/from /dev/root 
Flags: rw,vers=3,rsize=4096,wsize=4096,namlen=255,hard,nointr,nolock,proto=tcp, 
timeo=600,retrans=2,sec=sys,addr=192.168.0.5 

/store/tv from 192.168.99.99:/store/tv 
Flags: rw,noatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,nointr,noloc 
k,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.99.99,mountvers=3,mountp 
roto=tcp,addr=192.168.99.99 

one ~ # time dd if=/dev/null of=/store/tv/test bs=16k count=10000 
10000+0 records in 
10000+0 records out 
163840000 bytes (164 MB) copied, 2.79913 s, 58.5 MB/s 

real 0m3.048s 
user 0m0.033s 
sys  0m1.983s 

one pxelinux.cfg # time dd if=/store/tv/test of=/dev/null bs=16k 
154614+1 records in 
154614+1 records out 
2533208064 bytes (2.5 GB) copied, 56.4591 s, 44.9 MB/s 

real 0m56.509s 
user 0m0.163s 
sys  0m26.802s 
0

我假设这是我们正在讨论的千兆网络; 100Mbit网络的最大速度约为每秒10兆字节。

对于某些事情来说,NFS并不是非常有效,但批量传输仍应该能够以线速完成。您可以通过相同的网络通过例如ftp或http传输文件多快?

也许交换机正在放慢速度,你有没有尝试用电缆直接连接盒子?