自动负载信息库AWR(Automatic Workload Repository)是数据库收集和分析性能数据的工具。通过AWR工具,可以从数据库的动态视图等统计信息中生成某个时间段的性能报告。
概述
PolarDB PostgreSQL版的Global AWR性能报告功能,在提供数据库资源、Top SQL、Top表及索引的分析基础上,进一步拓展了AWR报告的边界:数据范围上涵盖PolarDB数据库集群所有RW/RO节点,具备全局视角;数据类型上涵盖性能数据和事件信息, 方便分析数据库实例异常;数据粒度上关键指标采集细化到秒级,并通过Grafana提供趋势展示,方便定位性能抖动根因。
架构与数据流
AWR架构说明
采集层:UE作为代理进程部署于物理机,负责采集PolarDB PostgreSQL版数据库集群的性能数据及事件信息。
存储层:UE完成采集后,您可以配置将采集到的数据回写到对应的数据库集群中。
展示层:提供Grafana展示, 可将数据库集群配置为数据源,导入dashboard配置文件即可查看。
展示
支持通过Grafana查看PolarDB PostgreSQL版的性能趋势及事件信息。示例如下:
对于性能问题, 提供核心的Average Active Sessions趋势展示,配合资源消耗情况可分析数据库瓶颈所在。同时结合事件信息,能够快速定位抖动原因。例如下图在20:09:22,可以看到连接异常断开。
对于内存占用问题, 可细化到SQL及其Memory Context级别。
还有Top SQL和Top Table的各种分析。
具体的开启和配置方式请参见使用说明。
使用说明
使用前准备
内核版本
PolarDB PostgreSQL版内核版本建议升级至20211231或以上的版本。
执行以下命令,查看当前内核版本:
show polar_release_date;
显示结果如下所示,表示当前使用的内核版本为20211231。
polar_release_date
--------------------
20211231
(1 row)
权限说明
目前所有Global AWR提供的控制权限及数据权限均为PUBLIC。
时区
PolarDB PostgreSQL版数据库集群默认的时区为UTC,在查看性能数据时要注意所在时区的时间差异。
启用和禁用Global AWR数据的本地存储功能
在使用AWR之前,需要启用Global AWR数据的本地存储功能。Global AWR功能启用后,无需定期触发快照也可生成细粒度的性能报告。可以在postgres库的polar_gawr_collection模式下查看数据。
对于关键指标,PolarDB PostgreSQL版会进行细粒度采集及写入,Global AWR功能启用后会带来两部分额外开销,请您谨慎评估是否需要启用此功能:
性能开销:整体性能损失在10%以内。
存储开销:目前默认保留3天的数据,3天最细粒度的数据量在10 GB以内。
操作说明
以下操作需要在postgres数据库中完成。
启用Global AWR数据的本地存储功能。
SELECT polar_gawr_collection.enable_store_in_localdb();
显示结果如下:
enable_store_in_localdb ------------------------- (1 row)
禁用Global AWR数据的本地存储功能。
SELECT polar_gawr_collection.disable_store_in_localdb();
显示结果如下:
disable_store_in_localdb -------------------------- (1 row)
查看Global AWR数据的本地存储启停状态。
SELECT polar_gawr_collection.show_store_in_localdb();
显示结果如下:
show_store_in_localdb ----------------------- t (1 row)
配置Grafana查看AWR信息
下载并安装Grafana
详情请参见Download Grafana,建议使用8.1.2或以上版本。
添加数据源
根据实际情况将PolarDB PostgreSQL版数据库集群添加为PostgreSQL数据源。
打开Grafana,在左侧导航栏中单击Configuration > Data sources。
在打开的Data sources页面,单击右侧Add data source添加数据源。
数据库集群的链接信息如实填写即可。
说明Database
需要填写postgres
。
导入Dashboard配置文件
在左侧导航栏中单击+ > Import。
在打开的Import页面,单击Upload JSON file导入配置文件。
dashboard配置文件压缩包请参见PolarDB Global AWR-1712645731515.json。配置文件下载后解压缩即可使用。