排查性能缓慢问题

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

读取或写入性能缓慢

  1. 确保您的客户端虚拟机使用的是推荐的机器类型
  2. 如果您的客户端虚拟机运行的是 Linux,请确认您使用的是默认装载选项

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

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

  5. 使用 fio 工具测试 Filestore 实例的性能

    如果测试结果显示异常的性能下降,请联系您的客户代表。如果测试结果显示性能等于或高于预期,请继续查看下一部分。

导致性能下降的用例

以下是一些导致性能不佳的用例和场景:

涉及大量小文件的工作负载

  • Filestore 文件共享使用 sync 导出选项来确保数据安全和 NFS 协议合规性。对于大多数数据修改操作,Filestore 实例会等待数据提交到存储,然后再回复来自客户端虚拟机的请求。当一项操作涉及许多文件时,客户端会执行一长串的同步操作,累积延迟时间会增加。

    此场景的一个示例是,解压缩文件共享上的归档文件(如 tar 文件)。在解压缩包含多个文件的归档文件时,TAR 会连续执行多个同步操作。因此,性能会降低。

    如果您要将许多小文件复制到一个文件共享,请尝试使用 gsutil 等工具并行创建文件:

    mkdir -p /mnt/nfs/many_files_rsync/
    time gsutil -m -q rsync -rp many_files /mnt/nfs/many_files_rsync/
    
  • 存储在文件共享上的每个文件都消耗一个 inode。如果文件系统的 inode 耗尽,即使您尚未达到分配的最大容量,也无法在文件共享上存储更多文件。但是,达到最大 inode 数的情况很少见,只有在您需要存储大量小文件时才需要注意。

    如需了解详情,请参阅 Inode 用法

在 Cloud Storage 和 Filestore 之间复制数据

已知使用 gsutil 将数据从 Cloud Storage 复制到 Filestore 实例的速度会很慢。如需详细了解如何提高性能,请参阅提高各种 Google Cloud 资源的性能

后续步骤