小编Joe*_*Joe的帖子

奇怪的 nfs 性能:1 个线程优于 8,8 个优于 2!

我正在尝试确定在同一主机上运行的两个 Xen 虚拟机(客户端和服务器)之间 nfs 性能不佳的原因。具体来说,我可以在客户端上顺序读取 1GB 文件的速度远低于根据测量的两个 VM 之间的网络连接速度和直接在服务器上读取文件的测量速度所预期的速度。VM 运行 Ubuntu 9.04,服务器使用 nfs-kernel-server 包。

根据各种 NFS 调优资源,更改 nfsd 线程(在我的示例中为内核线程)的数量会影响性能。通常这个建议是根据在频繁使用的服务器上增加默认值 8 的数量来制定的。我在当前配置中发现的内容:

RPCNFSDCOUNT=8:(默认):13.5-30 秒在客户端上抓取 1GB 文件,所以 35-80MB/秒

RPCNFSDCOUNT=16: 18s to cat 文件 60MB/s

RPCNFSDCOUNT=1: 8-9 秒到文件 (!!?!) 125MB/s

RPCNFSDCOUNT=2: 87s to cat 文件 12MB/s

我应该提到我正在导出的文件是在使用 Xen 的 PCI-passthrough 安装在服务器上的 RevoDrive SSD 上;在服务器上,我可以在几秒钟内(> 250MB/s)捕获文件。在每次测试之前,我都会在客户端上删除缓存。

我真的不想让服务器只配置一个线程,因为我猜当有多个客户端时这不会很好地工作,但我可能会误解它是如何工作的。我已经重复了几次测试(在两者之间更改了服务器配置)并且结果相当一致。所以我的问题是:为什么 1 个线程的性能最好?

我尝试改变的其他一些事情,影响很小或没有影响:

  • 将 /proc/sys/net/ipv4/ipfrag_low_thresh 和 /proc/sys/net/ipv4/ipfrag_high_thresh 的值从默认的 192K、256K 增加到 512K、1M

  • 将 /proc/sys/net/core/rmem_default 和 /proc/sys/net/core/rmem_max 的值从默认值 128K 增加到 1M

  • 使用客户端选项安装 rsize=32768, …

linux performance xen nfs

5
推荐指数
1
解决办法
7204
查看次数

标签 统计

linux ×1

nfs ×1

performance ×1

xen ×1