监控
您可以使用 Google Cloud console中提供的图表,以直观方式监控 Bigtable,也可以以编程方式调用 Cloud Monitoring API。
在 Google Cloud 控制台中,以下位置提供了监控数据:
- Bigtable 系统分析洞见
- Bigtable 实例概览
- Bigtable 集群概览
- Bigtable 表概览
- Cloud Monitoring
- Key Visualizer
“系统概览”和“概览”页面简要介绍了如何使用 Bigtable。您可以使用 Key Visualizer 按行键深入了解访问模式,并排查特定性能问题。
了解资源用量
无论您使用什么工具来监控实例,您都必须监控实例中每个集群的 CPU、磁盘和内存中层级(预览版)使用率。如果集群的 CPU 或磁盘使用率超过特定阈值,集群将无法正常运行,并且,在尝试读取或写入数据时,可能会返回错误。
CPU 使用率
集群中的节点使用 CPU 资源来处理读取、写入和管理任务。我们建议您启用自动扩缩,这样 Bigtable 就可以根据工作负载自动向集群添加节点和从集群移除节点。如需详细了解节点数量对集群性能的影响,请参阅典型工作负载下的性能。
针对 CPU 使用率,Bigtable 会报告以下指标:
| 指标 | 说明 |
|---|---|
| 平均 CPU 利用率 |
集群中所有节点的平均 CPU 利用率。 如果实例中的表启用了变更数据流,则包含变更数据流活动。 在应用配置文件图表中,<system> 表示系统后台活动,如复制和压缩。系统后台活动不是由客户端驱动的。 推荐的最大值为应对短暂的使用量高峰提供了余量。 |
| 最热节点的 CPU 利用率 |
集群中最繁忙节点的 CPU 利用率。我们会继续提供此指标以确保连贯性,但在大多数情况下,您应该改为使用另一个更为准确的指标,即“最热节点的高粒度 CPU 利用率”。 |
| 最热节点的高粒度 CPU 利用率 |
精确衡量集群中最繁忙节点的 CPU 利用率。 最热节点不一定在每一时刻都是同一节点并且它可能会快速变化,尤其是在执行大规模批量作业或进行表扫描期间。 如果最热节点的 CPU 利用率频繁高于此推荐值,则即使您的平均 CPU 利用率尚属合理,也说明您对一小部分数据的访问频率可能大大高于其余数据。
|
| 变更数据流 CPU 利用率 |
集群内所有节点上的变更数据流活动导致的平均 CPU 利用率。 |
| 应用配置文件、方法和表的 CPU 利用率 |
应用配置文件、方法和表的 CPU 利用率。 如果您发现集群的 CPU 使用率高于预期,请使用此指标来确定特定应用配置文件、API 方法或表的 CPU 使用率是否能够增加 CPU 负载。 |
磁盘使用量
对于您的实例中的每个集群,Bigtable 会存储该实例中所有表的单独副本。
Bigtable 以二进制单位跟踪磁盘使用率,例如二进制千兆字节 (GB),其中 1 GB 等于 230 字节。此计量单位也称为吉比字节 (GiB)。
针对磁盘使用率,Bigtable 会报告以下指标:
| 指标 | 说明 |
|---|---|
| 存储空间利用率(字节) |
集群中存储的数据量。 此指标未涵盖变更数据流用量。 此值会影响您的成本。 另外,随着数据量增加,您可能还需要为每个集群添加节点(如下所述)。 |
| 存储空间利用率(% 上限) |
集群的存储空间容量使用百分比。容量基于集群中的节点数量。 此指标未涵盖变更数据流用量。 一般情况下,请确保您的存储空间使用量不要超过总存储空间硬性限制的 70%,以便留出空间供添加更多数据。如果您不打算向实例添加大量数据,则可以将硬性限制完全用尽。 如果您的存储空间使用量超过建议的存储空间限制百分比,请为集群添加节点。您还可以删除现有数据,但删除的数据会占用更多(而不是更少)空间,直到执行压缩操作为止。 如需详细了解如何计算此值,请参阅每个节点的存储空间利用率。 |
| 变更数据流存储空间利用率(字节) |
实例中各个表的变更数据流记录所占用的存储空间容量。此存储空间不计入存储空间总用量。您需要为变更数据流存储空间付费,但它不会包含在存储空间利用率(最大百分比)的计算中。 |
| 磁盘负载 |
您的集群用于 HDD 读取的带宽占可用带宽上限的百分比。 仅适用于 HDD 集群。 如果此值经常达到 100%,延迟可能会增加。请为集群添加节点,以减少磁盘负载百分比。 |
内存中层使用情况
Bigtable 会以每秒读取次数为单位跟踪内存中层的吞吐量。每秒一次读取相当于 1 KiB 的点读取。如果您的工作负载需要比基本容量更高的吞吐量,Bigtable 会自动进行纵向扩缩。如需详细了解吞吐量限制和纵向伸缩,请参阅了解性能。 如需详细了解内存中层级,请参阅内存中层级概览。
针对内存中用量,Bigtable 会报告以下指标:
| 指标 | 说明 |
|---|---|
| 内存中存储容量 |
内存层存储容量(以字节为单位)。 |
| 内存中最大请求单位数 |
在 5 分钟的时间窗口内,每秒读取次数的上限。 |
| 内存中请求单位数 |
尝试使用内存层的读取请求的每秒读取次数使用情况。 |
| 内存中读取请求数 |
发送到内存层的表的读取请求数,按内存读取是否成功进行细分。 |
| 内存中读取延迟时间 |
尝试访问内存层的表的服务器读取请求延迟时间分布。 |
| 内存中命中率 |
成功从内存层读取的读取请求数与所有符合内存读取条件的读取请求数的比率。 |
| 内存中不符合条件的原因数量 |
不符合内存层条件的请求数(按原因细分)。 |
压缩和复制实例
存储指标反映了自上次压缩以来的磁盘数据大小。由于压缩是在一周内滚动进行的,因此某个集群的存储用量指标有时可能会与实例中其他集群的指标暂时不同。这种情况的可观察影响包括:
最近添加到实例的新集群可能会暂时显示 0 字节的存储空间,即使所有数据都已成功复制到该新集群也是如此。
即使复制功能正常工作,表在每个集群中也可能具有不同的大小。
即使复制完成且几天内未发送任何写入,每个集群中的存储用量指标也可能不同。每个集群的内部存储空间实现(包括数据的拆分和存储方式)可能不同,从而导致实际的存储用量有所不同。
实例概览
实例概览页面会显示实例的健康状况和性能摘要。
实例指标
下表描述了实例中每个集群的关键指标的值:
| 指标 | 说明 |
|---|