优化 Linux NFS 客户端

本页介绍了如何调整装载 NetApp Volumes 导出项的 Linux NFS 客户端。对于许多工作负载,无需进行调整。除非您需要更高的吞吐量、更多 IOPS、更低的卷元数据负载或特定的缓存行为,否则请使用Google Cloud 控制台中的装载命令。

如需详细了解连接步骤、导出政策设置和装载命令,请参阅连接 NFS 客户端

配置客户端

按以下顺序配置 Linux NFS 设置:

  1. 内核并发:在装载文件系统之前,设置 NFS 请求槽的数量(NFSv3 的槽表条目或 NFSv4.1 的会话槽)。如果您更改设置,必须重新装载文件系统。如需了解详情,请参阅 Linux NFS 并发

  2. 装载选项:在装载时选择协议版本、I/O 大小、TCP 连接数、锁定和缓存相关选项。如需了解详情,请参阅 Linux NFS 装载选项

  3. 预读:在装载卷后,调整每个装载点的顺序读取预取。如需了解详情,请参阅 Linux NFS 预读

下表总结了这些配置步骤:

步骤 时间 控制的内容 配置位置 指南
1 首次装载之前或重新装载之前 每个 TCP 连接的未完成 RPC 操作数;每个会话的 NFSv4.1 命令数 /etc/sysctl.conf,
/etc/modprobe.d/
Linux NFS 并发
2 在装载时 协议、I/O 传输大小、连接数、锁定和属性缓存 mount -o/etc/fstab Linux NFS 装载选项
3 装载后 顺序读取预提取 /sys/class/bdi/.../read_ahead_kb,udev 规则 Linux NFS 预读

这些设置如何协同运作

Linux 内核定义了每个连接的并发性(上表中的第 1 步)。借助 nconnect 装载选项(上表中的第 2 步),您可以从一个客户端打开多个 TCP 连接,以连接到同一卷 IP 地址。

单个客户的大致并发数按以下公式计算:

(slots per connection) x (nconnect value)

每个与 NetApp Volumes NFS 端点的 TCP 连接最多支持每个连接 128 个未完成的操作(对于 NFSv3)。NFSv4.1 还会协商会话级限制;单个 TCP 连接可以将有效并发限制在会话最大值以下。如需了解详情,请参阅 Linux NFS 并发

如果多个客户端装载同一卷 IP 地址,请使用较低的单客户端槽位限制,以便整个客户端群组的未完成操作总数保持在建议的限制范围内。

您可以按装载点配置预读(上表中的第 3 步)。这取决于您的 rsize 装载选项和 Linux 发行版默认设置。某些发行版使用固定的 128 KiB 预读,而不管 rsize 的值是多少,这可能会降低顺序读取性能,直到您调整它为止。

挂载选项和内核设置不会更改导出政策、Kerberos 配置、防火墙要求或卷服务级吞吐量和 IOPS 限制。

工作负载起点

下表提供了起点。根据您的应用、Linux 发行版和网络路径验证设置。

工作负载 内核并发 装载选项 预读
通用 操作系统默认值 使用 Google Cloud 控制台中的装载说明 操作系统默认值
单个虚拟机,高吞吐量/IOPS
  • 将每个连接插槽表的上限设为 128 或更低
  • 对于 NFSv4.1,将 max_session_slots 设置为服务器最大值
  • 如果您需要超过 128 个未完成的操作,请使用 nconnect=2 或更高版本
  • nconnect=8nconnect=16
  • 调整 rsizewsize
如果工作负载受顺序读取限制,则进行调整
许多客户端(EDA/HPC/渲染农场)
  • 每个客户的广告资源数量较少(例如 8 个)
  • 确保每个批量 IP 的总槽数不超过建议的限制
  • 通常为 NFSv3
  • 找不到nconnect
  • 对于大容量卷,将客户端分布到多个卷 IP
对于大型静态数据集,通常更高
Kerberos NFSv4.1
  • 调优 max_session_slots
  • 请勿依赖 nconnect 来提升性能
  • sec=krb5krb5ikrb5p
  • 请勿与 nconnect 搭配使用
根据顺序读取的需要
不含咨询锁的 NFSv3 操作系统默认值 按需

衡量和验证调优效果

更新客户端设置后,请完成以下步骤:

  • 在客户端上运行 nfsiostatmountstatsnfsstat。如需了解详情,请参阅监控效果

  • 将您的结果与效果基准进行比较。 这些基准在 Red Hat Enterprise Linux 9 上使用 nconnect=16rsize=65536wsize=65536 进行了一些 NFSv3 测试。

调整客户端可提高虚拟机 (VM) 的卷的网络路径使用效率。卷容量、服务级别、存储池限制和 Compute Engine 虚拟机大小可能仍会限制结果。

后续步骤