本页提供了问题排查信息,可帮助您解决在使用 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 将数据从 Cloud Storage 复制到 Filestore 实例的速度较为缓慢。如需详细了解如何提高性能,请参阅提高 Google Cloud 资源的性能。