使用iperf测试TCP上的网络速度,两个方向的吞吐量均为~9.8 Gbit / s,因此网络正常.
测试NFS服务器的磁盘性能:
dd if=/dev/zero of=/mnt/test/rnd2 count=1000000
结果是~150 MBytes / s,因此磁盘可以正常写入.
服务器的/ etc / exports是:
/mnt/test 192.168.1.0/24(rw,no_root_squash,insecure,sync,no_subtree_check)
客户端使用以下选项将此共享安装到本地/ mnt / test:
node02:~ # mount | grep nfs 192.168.1.101:/mnt/test on /mnt/test type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.102,local_lock=none,addr=192.168.1.101)
如果我尝试从NFS共享下载客户端计算机上的大文件(~5Gb),我得到~130-140 MBytes / s的性能,这接近服务器的本地磁盘性能,所以它是令人满意的.
但是当我尝试将大文件上传到NFS共享时,上传以~1.5 Mbytes / s开始,慢慢增加到18-20 Mbytes / s并停止增加.
有时在上传实际开始之前,共享“挂起”几分钟,即主机之间的流量接近于零,如果我执行ls / mnt / test,它将在一两分钟内没有返回.然后ls命令返回并以最初的1.5Mbit / s速度开始上传.
当上传速度达到最大值(18-20 Mbytes / s)时,我运行iptraf-ng并在网络接口上显示~190 Mbit / s的流量,因此网络不是瓶颈,也是服务器的硬盘.
我尝试了什么:
1.
在仅与100Mbit以太网NIC连接的第三台主机上设置NFS服务器.结果类似:DL表现出良好的性能和几乎完全100Mbit的网络利用率,上传速度不超过每秒数百千字节,使网络利用率非常低(根据iptraf-ng为2.5 Mbit / s).
2.
我试着调整一些NFS参数:
>同步或异步
> noatime
>没有难的
> rsize和wsize在我的例子中是最大的,所以我试着
将它们分几步减少到8192
3.
我试图切换客户端和服务器机器(在以前的客户端上设置NFS服务器,反之亦然).此外,还有六台服务器具有相同的配置,因此我尝试以不同的方式将它们相互安装.结果相同.
4.
MTU = 9000,MTU = 9000和802.3ad链路聚合,链路聚合,MTU = 1500.
5.
sysctl调优:
node01:~ # cat /etc/sysctl.conf net.core.wmem_max=16777216 net.core.rmem_max=16777216 net.ipv4.tcp_rmem= 10240 873800 16777216 net.ipv4.tcp_wmem= 10240 873800 16777216 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_sack = 1 net.core.netdev_max_backlog = 5000
结果相同.
6.
从localhost挂载:
node01:~ # cat /etc/exports /mnt/test *(rw,no_subtree_check) node01:~ # mount -t nfs -o sync localhost:/mnt/test /mnt/testmount/
在这里我得到了相同的结果:从/ mnt / testmount /下载速度很快,上传到/ mnt / testmount /非常慢,不快于22 MBytes / s并且在传输实际开始之前有一个小延迟.这是否意味着网络堆栈完美无缺,问题出在NFS中?
所有这些都没有帮助,结果与默认配置没有显着差异. echo 3> / proc / sys / vm / drop_caches在所有测试之前执行.
所有3台主机的所有NICS的MTU为1500,未执行非标准网络调整.以太网交换机是Dell MXL 10 / 40Gbe.
操作系统是CentOS 7.
node01:/mnt/test # uname -a Linux node01 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
我缺少什么设置?如何使NFS快速写入而不挂起?
>在两台机器上启用巨型帧(MTU> = 9000字节)
>使用UDP或manually increase TCP window size on both machines
该报告支持您的结果.