Linux无盘客户端nfs吞吐量

时间:2009-08-06 19:26:49

标签: linux nfs

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

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

2 个答案:

答案 0 :(得分:0)

我认为这是我们正在谈论的千兆网络; 100Mbit网络每秒最多大约10兆字节。

NFS对某些方面效率不高,但批量传输仍然可以以线速完成。您通过相同的网络传输文件的速度有多快,例如ftp或http?

也许开关正在减慢速度,您是否尝试使用电缆将盒子直接连接到另一个?

答案 1 :(得分:0)

有趣的是解决方案。挂载pxelinux nfs根目录时,必须在pxelinux.cfg文件中设置nfs参数(不在fstab中)。在将nfs根分区设置为nfsver3时,tcp获得了良好的性能提升。但是,真正有所作为的是删除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