我有两台连接10Gbit以太网的机器。让其中一个作为NFS服务器,另一个作为NFs客户端。
通过TCP测试网络速度时,iperf
双向显示吞吐量约为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,sync,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 MBs / s,然后停止增加。有时,共享实际上在开始上传之前“挂起”了几分钟,即主机之间的流量接近于零,如果执行ls /mnt/test
,则在一两分钟之内它不会返回。然后ls
命令返回并以1.5Mbit / s的初始速度开始上传。
当上传速度达到最高速度(18-20 MB / s)时,我运行iptraf-ng
,它在网络接口上显示〜190 Mbit / s的流量,因此网络和服务器的HDD都不是瓶颈。
我试过的
1.
在仅与100Mbit以太网NIC连接的第三台主机上设置NFS服务器。结果是类比的:DL表现出良好的性能,几乎达到100Mbit的网络利用率,上载的执行速度不超过每秒数百千字节,从而使网络利用率非常低(根据,为2.5 Mbit / s iptraf-ng
)。
2. 我尝试调整一些NFS参数:
sync
要么async
noatime
没有
hard
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. 从本地主机挂载:
node01:~ # cat /etc/exports
/mnt/test *(rw,no_root_squash,insecure,sync,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快速写入而不会挂起?
Operation not permitted
尝试将strace附加到NFS进程。