本页介绍了如何调整装载 NetApp Volumes 导出项的 Linux NFS 客户端。对于许多工作负载,无需进行调整。除非您需要更高的吞吐量、更多 IOPS、更低的卷元数据负载或特定的缓存行为,否则请使用Google Cloud 控制台中的装载命令。
如需详细了解连接步骤、导出政策设置和装载命令,请参阅连接 NFS 客户端。
配置客户端
按以下顺序配置 Linux NFS 设置:
内核并发:在装载文件系统之前,设置 NFS 请求槽的数量(NFSv3 的槽表条目或 NFSv4.1 的会话槽)。如果您更改设置,必须重新装载文件系统。如需了解详情,请参阅 Linux NFS 并发。
装载选项:在装载时选择协议版本、I/O 大小、TCP 连接数、锁定和缓存相关选项。如需了解详情,请参阅 Linux NFS 装载选项。
预读:在装载卷后,调整每个装载点的顺序读取预取。如需了解详情,请参阅 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 |
|
|
如果工作负载受顺序读取限制,则进行调整 |
| 许多客户端(EDA/HPC/渲染农场) |
|
|
对于大型静态数据集,通常更高 |
| Kerberos NFSv4.1 |
|
|
根据顺序读取的需要 |
| 不含咨询锁的 NFSv3 | 操作系统默认值 |
|
按需 |
衡量和验证调优效果
更新客户端设置后,请完成以下步骤:
在客户端上运行
nfsiostat、mountstats和nfsstat。如需了解详情,请参阅监控效果。将您的结果与效果基准进行比较。 这些基准在 Red Hat Enterprise Linux 9 上使用
nconnect=16、rsize=65536和wsize=65536进行了一些 NFSv3 测试。
调整客户端可提高虚拟机 (VM) 的卷的网络路径使用效率。卷容量、服务级别、存储池限制和 Compute Engine 虚拟机大小可能仍会限制结果。
后续步骤
调整并发设置:Linux NFS 并发设置。
调整装载选项:Linux NFS 装载选项。
调整顺序读取:Linux NFS 预读。