CPU 利用率指标

本页面介绍了 Cloud Spanner 提供的 CPU 利用率指标。您可以在 Google Cloud ConsoleCloud Monitoring 控制台中查看这些指标。

CPU 利用率和任务优先级

Cloud Span 根据任务的来源和优先级来衡量 CPU 利用率。

  • 来源:任务可由用户或系统启动。

  • 优先级优先级有助于 Cloud Spanner 确定先执行哪些任务。系统任务的优先级是预先确定的,无法配置。除非另行指定,否则用户任务以高优先级运行。许多数据请求(例如readexecuteSql)可让您为请求指定较低的优先级。例如,当您运行没有严格性能 SLO 的批量、维护或分析查询时,这非常有用。

    通常,优先级较高的任务会在优先级较低的任务之前执行,并且 Cloud Spanner 将允许高优先级任务利用高达 100% 的可用 CPU 资源,即使存在较低优先级的争用任务也不例外。虽然可以在短期内延迟优先级较低的系统任务,但这些任务最终必须运行。因此,您必须为实例预配足够多的节点来处理所有任务。

    如果没有高优先级任务,Cloud Spanner 将利用高达 100% 的可用 CPU 资源来更快地完成较低优先级任务。后台利用率出现峰值并不是问题的征兆。出现高优先级任务(包括用户任务)时低优先级任务几乎是瞬间让步。

下表显示了每项任务的示例:

用户任务 系统任务
高优先级

包括数据读取(例如 readexecuteSql),其中未指定优先级或指定 PRIORITY_HIGH

包括数据拆分。

中优先级

包括:

  • 指定了 PRIORITY_MEDIUM 的数据请求
  • 从 Dataflow 作业(包括导入/导出)发出的读取和写入操作。
  • 包括:

  • 数据库压缩
  • 架构更改验证
  • 数据库恢复的优化阶段
  • 低优先级

    包括指定了 PRIORITY_LOW 的数据请求。

    包括:

  • 创建备份
  • 回填索引
  • 可用指标

    Cloud Spanner 提供以下 CPU 利用率指标:

    • CPU 平滑利用率:每个数据库的总 CPU 利用率的滚动平均值,以实例占用的 CPU 资源的百分比表示。每个数据点代表过去 24 小时的平均值。 可使用此指标来创建提醒和分析一段时间(例如 24 小时)内的 CPU 使用情况。您可以在 Cloud ConsoleCloud Monitoring 控制台中以 24 小时滚动平均值的形式查看此指标的图表。

    • 按优先级划分的 CPU 利用率:以实例占用的 CPU 资源的百分比表示的 CPU 利用率,按优先级、用户启动的任务和系统启动的任务进行分组。概括来讲,使用此指标可创建提醒和分析 CPU 使用情况。您可以在 Cloud ConsoleCloud Monitoring 控制台中查看此指标的图表。

    • 按操作类型划分的 CPU 利用率:按实例的 CPU 资源的百分比表示的 CPU 利用率,按用户启动的操作(例如读取、写入和提交)进行分组。使用此指标可以获取详细的 CPU 使用量明细并进一步进行问题排查,如调查高 CPU 利用率中所述。您可以在 Cloud Monitoring 控制台中为此指标创建图表。

      您还可以使用 Cloud Monitoring 控制台为 CPU 利用率创建提醒,如下面所述。

    下表列出了我们针对单区域和多区域实例建议的最大 CPU 利用率。这些数字可确保在整个地区(对于单区域实例)或整个区域(对于多区域实例)丢失的情况下,您的实例具有足够的计算能力来继续传送流量。

    指标 单区域实例的最大值 多区域实例的每个区域的最大值
    高优先级总计 65% 45%
    24 小时平滑总计 90% 90%

    为了帮助您保持在建议的最大值之下,请在 Cloud Monitoring 中创建提醒,以跟踪高优先级 CPU 利用率和 24 小时平均 CPU 利用率。

    CPU 利用率会对请求延迟产生影响。单个后端服务器过载将会触发更高的请求延迟。应用应运行基准测试和主动监控,以验证 Cloud Spanner 是否满足其性能要求。

    因此,对于性能敏感的应用,您可能需要使用下一部分介绍的技术进一步降低 CPU 利用率。

    降低 CPU 利用率

    本部分介绍了如何降低实例的 CPU 利用率。

    一般来说,我们建议您首先将节点添加到实例中。添加节点后,您可以调查并解决 CPU 利用率过高的根本原因。

    添加节点

    如果超过了建议的最大 CPU 利用率,我们强烈建议您向实例添加节点,以便其可以继续有效运行。如果要自动执行此过程,您可以创建监控 CPU 利用率的应用,然后根据需要使用 UpdateInstance 方法添加和移除节点。

    要确定所需的节点数,请同时考虑高优先级 CPU 利用率峰值和 24 小时平滑平均值。请务必分配足够多的节点,以保证 CPU 利用率不超过建议的最大值。如上文所述,您可能需要为性能敏感的应用分配额外的节点(例如,以适应工作负载峰值)。

    如果没有足够多的节点,Cloud Spanner 会按优先级水平推迟任务。低优先级系统任务(例如数据库压缩和架构变更验证)可以推迟,以优先处理用户任务。但是,这些任务对于实例的运行状况至关重要,Cloud Spanner 不能无限期推迟这些任务。如果由于计算资源不足,Cloud Spanner 无法在一定时间段内(大约几小时到一天)完成其低优先级系统任务,Cloud Spanner 可能会提高系统任务的优先级。此更改会影响用户任务的性能

    利用内省工具进一步调查

    如果按操作类型划分的 CPU 利用率指标表示特定类型的操作导致 CPU 利用率高,请使用 Cloud Spanner 内省工具进一步进行问题排查。如需了解详情,请参阅调查高 CPU 利用率

    后续步骤