本页面介绍了如何提高 Cloud Storage FUSE 性能。
提高读写性能
为了提高读写性能,我们建议您执行以下操作:
启用缓存:Cloud Storage FUSE 提供四种可选的客户端缓存类型,可在本地存储特定类型的数据和元数据,以帮助提高性能:
Cloud Storage FUSE 缓存适用于所选存储空间支持的任何用户指定的目录。Cloud Storage FUSE 缓存性能与缓存使用的底层存储空间相匹配,且开销极低。
通过启用并行下载来加快读取速度:通过启用并行下载,加快大小超过 1 GB 的大型文件的读取速度。如需了解详情,请参阅使用并行下载提高读取性能。
尽可能运行顺序读写工作负载:与随机读写工作负载相比,Cloud Storage FUSE 更适合顺序读写工作负载。Cloud Storage FUSE 使用启发法来检测文件何时被顺序读取,这使得 Cloud Storage FUSE 能够使用相同的 TCP 连接向 Cloud Storage 发出更少、更大的读取请求。
根据读取类型调整文件大小:为了优化顺序读取性能,我们建议您上传和读取大小介于 5 MB 到 200 MB 之间的文件。为了优化随机读取性能,我们建议您上传和读取大小约为 2 MB 的文件。
装载启用了分层命名空间的存储桶:为了提高读写性能速度并确保原子性,以支持初始每秒查询次数 (QPS) 较高的操作,我们建议装载启用了分层命名空间的存储桶。如需详细了解启用了分层命名空间的存储桶如何提高 Cloud Storage FUSE 性能,请参阅装载启用了分层命名空间的存储桶。
提高首次读取性能
在运行工作负载之前,我们建议您先以递归方式列出已装载存储桶中的文件,以便提前填充统计信息和类型缓存,并以更快的批处理方法提高首次运行时的性能:
ls -R MOUNT_POINT > /dev/null
使用文件缓存提高吞吐量
Cloud Storage FUSE 的延迟时间高于本地文件系统。当您一次读取或写入一个小型文件时,吞吐量会降低,因为这会导致多次单独的 API 调用。一次读取或写入多个大型文件有助于提高吞吐量。使用 Cloud Storage FUSE 文件缓存功能提高较小的随机 I/O 的性能。 如需详细了解文件缓存以及如何启用此功能,请参阅使用 Cloud Storage FUSE 文件缓存。
装载启用了分层命名空间的存储桶
为了确保原子性以支持初始每秒查询次数 (QPS) 较高的操作(例如检查点和目录重命名或更改),我们建议您装载启用了分层命名空间(预览版)的存储桶。分层命名空间可将您的数据整理为分层文件系统结构,从而提高存储桶内的操作效率。列出对象调用 (BucketHandle.Objects
) 已替换为获取文件夹调用,从而缩短了响应时间,并减少了每个操作的列出调用总次数。
实现最大吞吐量
如需实现最大吞吐量,请使用具有足够 CPU 资源的机器来提高吞吐量并使网络接口卡 (NIC) 达到饱和。CPU 资源不足可能会导致 Cloud Storage FUSE 限流。
如果您使用的是 Google Kubernetes Engine,则在工作负载需要更高的吞吐量时,请增加分配给 Cloud Storage FUSE 边车容器的 CPU 数量。您可以增加边车容器使用的资源或分配不限数量的资源。
以每秒查询次数为单位评估 IOPS 需求
如果底层缓存介质 IOPS 高、延迟低,您还可以使用 Cloud Storage FUSE 文件缓存功能在其性能特征基础上进行构建。
执行负载测试
如需了解如何对 Cloud Storage FUSE 执行负载测试,请参阅 GitHub 文档中的性能基准。