排查运行缓慢问题

本页提供了问题排查信息,可帮助您解决在使用 Filestore 时可能会遇到的性能缓慢问题。

读写性能缓慢

  1. 确保您的客户端虚拟机使用的是推荐的机器类型

  2. 如果您的客户端虚拟机运行的是 Linux,请确认您使用的是默认装载选项

  3. 确保客户端虚拟机与 Filestore 实例位于同一地区。跨地区装载不仅会降低性能,还会导致产生网络费用

  4. 请确保您的 Filestore 实例没有达到或接近容量上限。当容量接近上限时,任何剩余的空间都会被高度碎片化,导致读取和写入操作的速度变慢。避免此状况所需要的可用空间量取决于实际情况。我们建议您设置“磁盘空间不足”提醒

    如需了解详情,请参阅排查容量问题

  5. 使用 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 资源的性能

后续步骤