存储空间利用率指标

本文档介绍了 Spanner Omni 提供的存储空间利用率指标。

存储空间指标

您可以使用 Spanner Omni 控制台查看存储空间指标。如需了解更多 信息,请参阅使用 Spanner Omni 控制台

Spanner Omni 提供以下存储空间指标:

  • 存储容量:文件系统的总存储容量和可用存储容量。 您可以在 Spanner Omni 控制台的概览 信息中心内查看此信息。Spanner Omni 文件系统信息中心按可用区提供细分信息。

  • 数据库使用的存储空间:每个 数据库使用的非复制物理字节数。您可以在 Spanner Omni 控制台的系统洞察 信息中心内查看此信息。

多版本存储

如果您经常使用存储空间指标来检查数据的大小,可能会看到意外的结果。例如,您可能会看到数据库报告的总存储空间明显减少,即使您没有移除任何数据也是如此。相反,您可能会看到数据库的大小在执行大量删除操作后保持相对不变。

这些影响源自 Spanner Omni 对多版本存储的支持。 多版本存储会将您删除或覆盖的所有数据保留在 存储空间中,并在有限的时间内可供使用,以便您读取先前的数据值, 例如 过时数据读取时间点恢复。执行大量数据删除操作

不会立即反映在数据库的存储空间指标中。同样,数据库总大小的明显未提示现象可能意味着 Spanner Omni 的常规数据压缩过程清理了您几天前删除或覆盖的大量数据。

默认情况下,此时间间隔为一小时。它会定期运行一个后台进程,以永久移除早于此版本保留时间间隔的所有过时数据。

分块的影响

在高负载或热点期间,Spanner Omni 会使用分块技术,以便在预配的计算资源中分配 CPU 利用率。 分块的一个副作用是存储空间利用率暂时增加。对于进行分块的数据,在每周压缩周期内,Spanner Omni 在给定时间最多可能会保留原始分块范围的两个副本,直到压缩周期缩小分块并舍弃额外的数据副本。

存储空间统计信息

您注入到 Spanner Omni 中的所有数据会在几分钟后显示在存储空间统计信息中。不过,在某些情况下,即使您可以访问数据以进行读取,并且数据通过预写式日志记录等技术保持持久性,也可能需要更长时间(几天)才能显示在存储空间利用率统计信息中。

这是因为注入的数据(除了在提交期间出于持久性和恢复目的而记录的副本)会暂时驻留在内存中。然后,Spanner Omni 会在后台将这些数据写入到物理存储空间。可驻留在内存中的数据量以及数据在 Spanner Omni 将其写入到物理存储空间之前在内存中驻留的时间量取决于计算的大小以及工作负载的大小和性能。

创建存储空间提醒

对于 Spanner Omni 部署,Prometheus 提醒使用以下存储空间利用率阈值:

  • SpannerStorageUtilizationWarning:提醒服务器上的存储空间利用率过高 (80%)。

  • SpannerStorageUtilizationCritical:提醒服务器上的存储空间利用率达到临界值 (90%)。

  • SpannerStoragePerVCPUTooHigh:提醒每个 vCPU 的存储空间超过 500 GB。

关于数据库存储空间利用率的建议

我们建议您将数据库存储空间保持在每个 vCPU 不超过 500 GB。 这可确保 Spanner Omni 有足够的余量来正常工作,并对数据执行例行维护。

如果您即将达到限制,Spanner Omni 可能会阻止您执行超出限制的操作,例如:

  • 从备份中恢复数据库。

  • 修改数据库的架构(例如,添加索引)。

  • 减少部署的计算容量。

如果您超出存储空间上限,Spanner Omni 将会尝试正常运行,但由于资源压力,您可能会遇到性能下降或故障。

降低数据库存储空间利用率

如需降低部署的数据库存储空间利用率,请执行以下操作:

  • 添加更多计算容量。

  • 使用 Spanner Omni CLI 删除未使用的数据库。

  • 使用 Spanner Omni CLI 从 数据库中删除数据。即使从数据可见性的角度看数据删除会立即生效,该操作也不会影响存储空间利用率指标,除非 Spanner Omni 压缩数据。对于大量数据删除,压缩通常在 12 小时内完成;对于其他情况,则在一周内完成。因此,您可能会注意到,从删除数据到更改显示在指标中之间存在延迟。

使用 Spanner Omni CLI 执行这些操作。

通常,我们建议您首先将计算容量添加到部署中。 添加计算容量后,您可以调查并解决存储空间利用率过高的根本原因。