本页面介绍 Filestore 的预期平均性能和推荐的性能设置。此外还介绍了如何测试 Filestore 实例的性能。
预期性能
每个 Filestore 服务层级都提供不同级别的性能。任何给定实例的性能都可能与预期不同 可能造成的影响,例如使用缓存、 虚拟机、客户端虚拟机的机器类型以及测试的工作负载。
下表显示了 Filestore 的预期性能 根据其服务层级和 配置的容量:
性能 | 容量 | 读取和写入 IOPS | 读写吞吐量 (MiB/s) |
---|---|---|---|
BASIC_HDD |
1 TiB 到 10 TiB | 600/1,000 | 100/100 |
BASIC_HDD |
10 TiB 到 63.9 TiB | 1,000/5,000 | 180/120 |
BASIC_SSD |
2.5 TiB 到 63.9 TiB | 60,000/25,000 | 1,200/350 |
ZONAL |
1 TiB | 9,200/2,600 | 260/88 |
ZONAL |
9.75 TiB | 89700/25350 | 2,535/858 |
ZONAL |
10 TiB | 92,000/26,000 | 2,600/880 |
ZONAL |
100 TiB | 920,000/260,000 | 26000/8800 |
REGIONAL |
1 TiB | 12000/4000 | 120/100 |
REGIONAL |
9.75 TiB | 117,000/39,000 | 1,170/975 |
REGIONAL |
10 TiB | 92,000/26,000 | 2,600/880 |
REGIONAL |
100 TiB | 920,000/260,000 | 26000/8800 |
ENTERPRISE |
1 TiB | 12000/4000 | 120/100 |
ENTERPRISE |
10 TiB | 120000/40000 | 1200/1000 |
上表显示了最小值和最大值的预期效果 每个服务层级的容量在这些限制之间,性能以线性方式扩展 随着容量的变化而变化。例如,如果您将企业实例数量翻了一番, 从 1 TiB 到 2 TiB 的容量,这是实例的预期性能 读写 IOPS 从 12000/4000 加倍到 24000/8000 读写 IOPS IOPS。
在单客户端和少数客户端场景中,您必须增加 TCP 数量
与
nconnect
装载选项来实现最高 NFS 性能。我们建议指定最多
对于可用区级服务层级,最多连接 7
个;对于可用区,最多 2
个连接
区域层级和企业级层级一般来说,文件共享容量越大
且连接的客户端虚拟机越少,
通过 nconnect
指定额外的连接。
推荐的客户端机器类型
我们建议使用 Compute Engine 机器类型,例如 n2-standard-8
,
出站流量带宽为 16 Gbps
。这种出站流量带宽允许
客户端可实现大约 16 Gbps
的读取带宽,以实现缓存友好型
工作负载如需了解其他背景信息,请参阅网络带宽。
Linux 客户端装载选项
我们建议使用以下 NFS 装载选项,尤其是 hard
装载、async
以及 rsize
和 wsize
选项,以获得最佳的
Linux 客户端虚拟机实例的性能。要详细了解 NFS 装载选项,请参阅 nfs。
默认选项 | 说明 |
---|---|
hard |
NFS 客户端无限期地重试 NFS 请求。 |
timeo=600 |
NFS 客户端会等待 600 分秒(60 秒)后再重试 NFS 请求。 |
retrans=3 |
NFS 客户端会尝试 NFS 请求三次,再执行进一步的恢复操作。 |
rsize=262144 |
对于每个 READ 请求,NFS 客户端最多可以从 NFS 服务器接收 262144 字节。注意:对于基本层级实例,请将 rsize 值设置为 1048576 。 |
wsize=1048576 |
NFS 客户端最多可为每个 WRITE 请求向 NFS 服务器发送 1048576 字节 (1 MiB)。 |
resvport |
与 NFS 服务器就此装载装点进行通信时,NFS 客户端会使用特权源端口。 |
async |
NFS 客户端延迟向 NFS 服务器发送应用程序写入,直到满足某些条件。 注意:使用 sync 选项会大大降低性能。 |
单客户端和多客户端虚拟机性能
Filestore 的可伸缩服务层级针对 而不是单个客户端虚拟机
对于可用区级、区域级和企业实例,至少要有四个客户端虚拟机 需要发挥最大作用。这样可以确保 底层 Filestore 集群中的实例被充分利用。
为了方便更多用户使用,最小的可伸缩 Filestore 集群有四个
虚拟机每个客户端虚拟机仅与一个 Filestore 集群通信
无论使用
nconnect
装载选项。如果使用的是单个客户端虚拟机,
单个 Filestore 集群虚拟机执行的操作。
提升各种 Google Cloud 资源的性能
跨多个 Google Cloud 资源执行操作,例如复制数据
使用 gsutil
将 Cloud Storage 中的数据传输到 Filestore 实例,
可能比较慢为帮助减少性能问题,请尝试以下操作:
确保 Cloud Storage 存储桶、客户端虚拟机和 Filestore 所有实例都位于同一区域中。
双区域可提供最高性能 Cloud Storage 中存储数据的选项。如果使用此选项,请确保 资源位于 双区域位置。例如,如果您的 Cloud Storage 数据
us-central1,us-west1
,请确保您的客户端虚拟机和 Filestore 位于us-central1
中。作为参考,请验证挂接了永久性磁盘的虚拟机的性能,并 和 Filestore 实例的性能进行比较
与相比之下,挂接永久性磁盘的虚拟机在性能方面 这可能表明 与 Filestore 无关的瓶颈。请尝试以下操作来改进 非 Filestore 资源的基准性能:
应用
gsutil -m
选项。此选项允许使用受支持的操作,包括cp
、mv
、 和rsync
并行运行。应用以下
gsutil
配置。每个属性都是可变的boto
在boto
配置文件中设置的配置值。用户可以 直接修改文件(推荐)或使用gsutil -o
选项:
如果 Filestore 实例的性能 速度比挂接到永久性磁盘的虚拟机慢,请尝试将操作分布到多个虚拟机。
这有助于提高从 Cloud Storage 读取操作的性能。
对于可用区级、区域级和企业实例,至少要有四个客户端虚拟机 才能充分发挥效用的潜力这样可以确保 底层 Filestore 集群中的虚拟机完全 。如需了解详情,请参阅 单客户端虚拟机性能和多客户端虚拟机性能。
测试性能
如果您使用的是 Linux,可以使用fio 用于对基本层级实例的读写吞吐量和 IOPS 进行基准化分析。 请注意,对于可用区级、 区域级实例和企业实例。
本部分中的示例显示了您可能想要运行的常用基准化分析。您 可能需要从多个客户端虚拟机实例运行 fio 才能达到上限 性能
以下示例对最大写入吞吐量执行基准化分析:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs \ --name=write --blocksize=1m --iodepth=64 --readwrite=write
以下示例对最大写入 IOPS 执行基准化分析:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs \ --name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite
以下示例对最大读取吞吐量执行基准化分析:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs \ --name=read --blocksize=1m --iodepth=64 --readwrite=read
以下示例对最大读取 IOPS 执行基准化分析:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs \ --name=randread --blocksize=4k --iodepth=256 --readwrite=randread