本页提供了问题排查信息,可帮助您解决在使用 Filestore 时可能会遇到的性能缓慢问题。
读写性能缓慢
确保您的客户端虚拟机使用的是推荐的机器类型。
如果您的客户端虚拟机运行的是 Linux,请确认您使用的是默认装载选项。
确保客户端虚拟机与 Filestore 实例位于同一地区。跨地区装载不仅会降低性能,还会导致产生网络费用。
请确保您的 Filestore 实例没有达到或接近容量上限。当容量接近上限时,任何剩余的空间都会被高度碎片化,导致读取和写入操作的速度变慢。避免此状况所需要的可用空间量取决于实际情况。我们建议您设置“磁盘空间不足”提醒。
如需了解详情,请参阅排查容量问题。
使用
fio
工具测试 Filestore 实例的性能。如果测试结果显示异常的性能下降,请联系您的客户代表。如果测试结果显示性能等于或高于预期,请继续查看下一部分。
导致性能下降的用例
以下是一些导致性能不佳的用例和场景:
涉及大量小文件的工作负载
Filestore 文件共享使用
sync
导出选项来确保数据安全和 NFS 协议合规性。对于大多数数据修改操作,Filestore 实例会等待数据提交到存储,然后再回复来自客户端虚拟机的请求。涉及多个文件的情况 客户端会执行一长串同步操作 累计延迟时间也会随之增加此场景的一个示例是,解压缩文件共享上的归档文件(如 tar 文件)。在解压缩包含多个文件的归档文件时,TAR 会连续执行多个同步操作。因此,性能会降低。
如果您要将许多小文件复制到一个文件共享,请尝试使用 Google Cloud CLI 等工具并行创建文件:
mkdir -p /mnt/nfs/many_files_rsync/ time gcloud storage rsync many_files /mnt/nfs/many_files_rsync/ --recursive
存储在文件共享上的每个文件都消耗一个 inode。如果文件系统耗尽 inode,则即使您尚未达到分配的最大容量,也无法在文件共享中存储更多文件。然而,达到 inode 的最大数量很少见,只有在您需要 存储大量小文件。
如需了解详情,请参阅 Inode 用法。
在 Cloud Storage 和 Filestore 之间复制数据
使用 众所周知,gcloud CLI 运行缓慢。如需详细了解如何提高性能,请参阅提高 Google Cloud 资源的性能。