本页详细介绍了如何优化 Google Cloud NetApp Volumes 的性能。
准备工作
在更改音量以优化效果之前,请先查看效果注意事项。
调整音量设置
您可以通过调整以下音量设置来优化性能:
增加卷容量:您可以增加 Premium、Extreme 或 Standard 服务等级卷的容量,以提高可实现的最大卷吞吐量。对于服务等级为 Flex 的卷,请改为增加存储池容量。
升级服务等级:您可以将优质服务等级的卷升级为极致服务等级,以提高吞吐量。我们建议您将该卷分配给具有不同服务级别的其他存储池。
增加卷容量和升级服务级别都不会中断卷上正在处理的 I/O 工作负载,也不会以任何方式影响对卷的访问。
调整客户端
您可以通过调整客户端上的以下设置来提升性能:
将客户端放置在同一位置:延迟时间结果会直接受到客户端功能和位置的影响。为获得最佳结果,请将客户端放置在与音箱位于同一区域或尽可能靠近该区域的位置。通过测试每个可用区中客户端的延迟时间来测试可用区的影响,并使用延迟时间最短的可用区。
配置 Compute Engine 网络带宽:Compute Engine 虚拟机的网络功能取决于所使用的实例类型。通常,实例越大,网络吞吐量就越高。我们建议您选择具有适当网络带宽功能的客户端虚拟机,选择 Google 虚拟 NIC (gVNIC) 网络接口,并启用
Tier_1
性能。如需了解详情,请参阅 Compute Engine 文档中的网络带宽部分。打开多个 TCP 会话:如果您的应用需要高吞吐量,您最终可能会使正常 NFS 和 SMB 会话的基础单个传输控制协议 (TCP) 会话饱和。对于此类情况,请增加 NFS 和 SMB 连接使用的 TCP 会话数。
根据客户端类型,使用以下任一标签页调整客户端:
Linux
传统上,NFS 客户端会针对共享存储端点的所有 NFS 已装载文件系统使用单个 TCP 会话。使用
nconnect
装载选项可增加支持的 TCP 会话数量,最多可达 16 个。我们建议您遵循以下最佳实践来调整 Linux 客户端类型,以充分利用
nconnect
:使用
nconnect
增加 TCP 会话数量:每个额外的 TCP 会话都会为 128 个待处理请求添加一个队列,从而提高潜在并发性。设置
sunrpc.max_tcp_slot_table_entries
参数:sunrpc.max_tcp_slot_table_entries
是一个连接级调整参数,您可以对其进行修改以控制性能。我们建议将sunrpc.max_tpc_slot_table_enteries
设置为 128 个请求或每个连接,并且对于连接到 NetApp 卷的单个项目中的所有 NFS 客户端,槽数不应超过 10,000 个。如需设置sunrpc.max_tcp_slot_table_entries
参数,请将该参数添加到/etc/sysctl.conf
文件中,然后使用sysctl -p
命令重新加载参数文件。将每个会话支持的最大值调整为 180:与 NFSv3 不同,NFSv4.1 客户端在会话中定义客户端与服务器之间的关系。虽然 NetApp 卷支持使用 NFSv3 时每个连接最多有 128 个待处理请求,但 NFSv4.1 限制为每个会话最多有 180 个待处理请求。Linux NFSv4.1 客户端默认为每个会话设置
64 max_session_slots
,但您可以根据需要调整此值。我们建议将每个会话支持的最大值更改为 180。如需调整
max_session_slots
,请在/etc/modprobe.d
下创建配置文件。确保没有出现任何引号(“”)。否则,该选项将不会生效。$ echo "options nfs max_session_slots=180" > /etc/modprobe/d/nfsclient/conf $ reboot Use the systool -v -m nfs command to see the current maximum in use by the client. For the command to work, at least one NFSv4.1 mount must be in place. $ systool -v -v nfs { Module = "nfs" … Parameters: … Max_session_slots = "63" <- … }
以下 NFS
nconnect
对比图展示了使用 nconnect 配置对 NFS 工作负载的影响。此信息是使用以下设置通过 Fio 捕获的:100% 读取工作负载
针对单个卷的 8 KiB 块大小
使用 Red Hat 9 OS 的
n2-standard-32
虚拟机6 TiB 工作集
使用
nconnect
值 16 后,性能提升了 5 倍。Windows
对于基于 Windows 的客户端,客户端可以将 SMB 多通道与接收端缩放 (RSS) 结合使用,以打开多个 TCP 连接。若要实现此配置,您的虚拟机必须具有支持 RSS 的已分配网络适配器。我们建议将 RSS 设置为 4 或 8 个值,不过,任何大于 1 的值都应会提高吞吐量。
下图显示了使用 RSS 配置对 SMB 工作负载的影响。此信息是使用 Fio 捕获的,具体设置如下:
100% 读取工作负载
针对单个卷的 8 KiB 块大小
运行 Windows 2022 操作系统的单个
n2-standard-32
虚拟机6 TiB 工作集
我们运行了 8 个作业,在测试执行期间,只有 SMB 客户端 RSS 选项发生了变化。与使用值 1 相比,使用 RSS 值 4、8 和 16 可将性能提高一倍。每个 RSS 实例都运行了 9 次,
numjobs
参数为 8。每次执行时,iodepth
参数都会增加 5,直到达到最大吞吐量。
后续步骤
了解存储池。