微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

centos – NFS写入性能差

我有两台机器连接10Gbit以太网.让其中一个成为NFS服务器,另一个成为NFs客户端.

使用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

该报告支持您的结果.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。