NFS在Debian上的性能下降


9

我在两台喘不过气的机器之间使用NFS的性能非常不一致,而且似乎无法确定。

设定:

机器1'video1':双5506 w / 12GB内存,8x3TB RAID6上的XFS从'/ mnt / storage'导出为'video1'

机器2'storage1':Phenom X2 @ 3.2Ghtz w / 8GB ram,5x2TB上的ZFS从/ mnt / storage1-storage导出为'storage1'

本地写入性能:

mackek2@video1:/mnt/storage/testing$ dd if=/dev/zero of=localwrite10GB bs=5000k count=2000
2000+0 records in
2000+0 records out
10240000000 bytes (10 GB) copied, 16.7657 s, 611 MB/s

本地读取性能:

两者都连接到同一个HP千兆交换机,而iperf两种方式都能提供坚如磐石的940mbps。

我的问题是,当我从storage1写入video1导出时,性能无处不在。似乎对于前几(5-7)个文件传输(我希望尽快移动30-120GB AVCHD或MJPEG文件),性能从900mbps下降到150-180mbps,因此慢到30mbps。如果我重新启动NFS内核服务器,则性能会提高一些。

mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite10GB count=2000 bs=5000K
2000+0 records in
2000+0 records out
10240000000 bytes (10 GB) copied, 223.794 s, 45.8 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite10GBTest2 count=2000 bs=5000K
2000+0 records in
2000+0 records out
10240000000 bytes (10 GB) copied, 198.462 s, 51.6 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=bigfile776 count=7000 bs=2000K
7000+0 records in
7000+0 records out
14336000000 bytes (14 GB) copied, 683.78 s, 21.0 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite15GB count=3000 bs=5000K
3000+0 records in
3000+0 records out
15360000000 bytes (15 GB) copied, 521.834 s, 29.4 MB/s

当事情进展很快时,客户端上的nfsiostat可以提供几毫秒的平均RTT,但是一旦性能下降,它的RTT最高可达1.5秒。此外,在写入过程中,CPU队列深度跳升到8以上。

现在,当从同一出口读取数据时,我得到的890Mbps传输速度很不错,整个读取速度为几mbps。

mackek2@storage1:/mnt/video1/testing$ dd if=remoteWrite10GBTest2 of=/dev/null
20000000+0 records in
20000000+0 records out
10240000000 bytes (10 GB) copied, 89.82 s, 114 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=remoteWrite15GB of=/dev/null
30000000+0 records in
30000000+0 records out
15360000000 bytes (15 GB) copied, 138.94 s, 111 MB/s

对于NFS服务器,与storage1相反,也会发生相同的事情。CPU队列猛增,速度下降到无法控制,我拔了头发。

我曾尝试将NFS守护程序的数量增加到多达64个,但经过数次演出后它仍然会消失。


...导出上的异步选项将其修复。现在来看一下是否可以用巨型帧监视出更多的mbps。
凯尔M

1
请将此作为答案发布并在可能的情况下接受,以便其他人知道该问题已解决。
mgorven 2012年

Answers:


4

您不包括安装或导出选项,因此NFS可能会影响性能。我建议尝试以下选项,以最大程度地提高NFS性能和可靠性(根据我的经验):

  • 挂载选项: tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768

  • 导出选项: async


同样,请注意,上面的安装选项也是Oracle建议的跨NFS运行Oracle的选项。
Christopher Cashell

通过上述技巧,我也能够显着提高性能,但这nfsvers=3不是必需的。
anarcat 2014年

@anarcat-对于现代发行版,您是正确的,nfsvers=3无关紧要。除非指定了版本3,否则Linux NFS挂载通常默认为NFS版本2。在这种情况下,显式设置版本非常值得。在现代发行版中,mount将协商,从v4开始,然后尝试v3,然后回落到v2。
Christopher Cashell14年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.