小编Kyl*_*ley的帖子

NFS v3 与 v4

我想知道为什么 NFS v4 会比 NFS v3 快得多,以及 v3 上是否有任何可以调整的参数。

我挂载文件系统

sudo mount  -o  'rw,bg,hard,nointr,rsize=1048576,wsize=1048576,vers=4'  toto:/test /test
Run Code Online (Sandbox Code Playgroud)

然后运行

 dd if=/test/file  of=/dev/null bs=1024k
Run Code Online (Sandbox Code Playgroud)

我可以读取200-400MB/s 但是当我将版本更改为vers=3,重新安装并重新运行 dd 时,我只能得到90MB/s。我正在读取的文件是 NFS 服务器上的内存文件。连接的两端都是 Solaris 并且有 10GbE 网卡。我通过在所有测试之间重新安装来避免任何客户端缓存。我曾经dtrace在服务器上看到以衡量通过 NFS 提供数据的速度。对于 v3 和 v4,我更改了:

 nfs4_bsize
 nfs3_bsize
Run Code Online (Sandbox Code Playgroud)

从默认的 32K 到 1M(在 v4 上我用 32K 达到了 150MB/s)我试过调整

  • nfs3_max_threads
  • clnt_max_conns
  • nfs3_async_clusters

提高 v3 的性能,但不行。

在 v3 上,如果我运行四个并行dd,吞吐量从 90MB/s 下降到 70-80MBs,这让我相信问题出在某些共享资源上,如果是这样,那么我想知道它是什么以及我是否可以增加它资源。

获取窗口大小的 dtrace 代码:

#!/usr/sbin/dtrace -s
#pragma D option quiet
#pragma D option …
Run Code Online (Sandbox Code Playgroud)

solaris nfs solaris-10 nfs4

11
推荐指数
1
解决办法
7074
查看次数

标签 统计

nfs ×1

nfs4 ×1

solaris ×1

solaris-10 ×1