热图模式

本页介绍了您可能会在 Key Visualizer 热图中看到的模式示例。这些模式可帮助您排查特定的性能问题。

Key Visualizer 中暴露的一些问题与您的主键定义有关。由于主键是不可变的,因此在设计或概念验证阶段,最好发现这些问题。

其他问题可能与实例的节点分配有关。您可能需要预配总体容量,或者可能需要预配一天中的特定时间等额外容量。如需更改与您的实例关联的节点数量,请参阅更改节点数量

在阅读本页内容之前,您应该先熟悉 Key Visualizer 概览

均匀分布的读写

显示热分布和冷分布均匀分布区域的热图示例

如果热图显示深色与亮色交织的粒状混合,则表示读取和写入操作均匀分布在整个数据库中。此热图表示 Spanner 的有效使用模式,因此您无需采取任何措施。

您自己的热图可能不像这样均匀分布,但是仍然说明了正常的架构和工作负载。在正确资源配置中可能会出现一定数量的热点。

单调递增的键

显示对角线(从左向右下降)热图的示例热图

具有单个明亮对角线的热图或具有平面顶部的三角形可以指示使用顺序键的数据库。顺序键是 Spanner 中的反模式;如需了解顺序键为何会导致热点,请参阅架构设计最佳实践页面。

永久热键范围

显示多个热水平频段的热图示例

如果热图显示由深色分隔的亮色水平色带,则表明特定的行范围会随着时间的推移而被越来越频繁地访问。

为解决此问题,请考虑更改架构设计或应用,以将频繁使用的行或过大的行中的数据分布到多行中。

单个热表

显示单个热水平频段的热图示例

如果热图在单个表中显示亮色带,则表示随着时间的推移会频繁访问该表。

这种模式本身不一定是有问题的。如果您看到此模式与性能问题一起出现,则表示您可能将耗尽计算容量。需要注意的一些事项:

  • 您的应用可能请求进行全表扫描,并将在 Key Visualizer 中显示为整个表的亮带。相反,请考虑使用限制性更高的查询,或查询索引以减少扫描的行数。

  • 增加此实例的节点数

随时间的流动读写

显示对角线(从左到右上升)热带的示例热图

热图会显示多条对角亮线(上升或下降),通常表示在短时间内依序读取或写入行。

如果行与读取活动(例如表导出)相对应,则无需执行任何操作。如果您在这些读取期间遇到性能问题,请考虑在这些时间段内增加实例的节点数。您可以在各周期之间减少节点数量。

如果这些行与写入活动相对应,且您遇到了性能问题,则应考虑将工作负载更改为随机写入,而非顺序写入。

流量突然增加

显示从热图中途开始的两个热水平频段的示例热图

热图显示热图中部分出现的亮色带,表示数据库的使用模式突然发生变化。这可能会是非法查询或某些行活动的意外突增。

注意事项

在某些情况下,Key Visualizer 可能无法全面展示性能和资源使用情况。

情况 热图显示的内容
一个大型数据表格和一个小型表 Key Visualizer 在大型表中选择行范围,而非小型表。因此,一个小型表可能仅在热图中显示为单行范围。只要表的数量小于 1000,系统就会有一个代表每个表的行范围。当某个键或小范围的键在小表中属于热门表时,用户只能知道此表是热表,而不应知道进一步的原因。
许多表 / 索引
例如,一个具有数百或数千个表的数据库,无论其大小如何。
Key visualizer 最多可选择 1000 行范围。如果有多个表格和索引,则其中一些在热图上可能只有零或一个数据点。因此,热点可能会因其表格被跳过或降采样而丢失。
快速更改键 键空间快速变化会导致行范围发生频繁的更改。当由于新插入的键而必须拆分前一个行范围时,或者由于键被删除而要合并多个行范围时,指标将近似(例如划分/组合)。指标值的近似近似值可能会降低准确性。此外,键空间发生更改后,行范围的更新也会有所延迟,这可能会导致粒度丢失,直到更新行范围。

后续步骤