0

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

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

4

2 回答 2

0

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

NFS 对某些事情不是很有效,但是批量传输仍然应该能够以线路的速度完成。通过 ftp 或 http 在同一网络上传输文件的速度有多快?

也许开关正在减慢速度,您是否尝试过使用电缆将盒子直接相互连接?

于 2009-08-07T06:48:12.227 回答
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
于 2009-08-07T16:31:55.650 回答