使用pg_profile_pro插件
操作场景
pg_profile_pro是一款用于监测RDS for PostgreSQL实例性能及运行状况的插件,针对SQL语句、表、索引、函数、事务、vacuum等,pg_profile_pro提供了监测数据报表,能够尽可能发现数据库存在的或潜在的性能问题。
该插件基于PostgreSQL的pg_stat_statements视图,会在用户的实例中创建历史统计,并生成统计样本,定期的统计样本用于生成监测报告,帮助识别最耗费资源的活动等。
因发现插件存在缺陷,现暂时关闭支持,我们会在缺陷修复后重新开放,给您造成不便敬请谅解。
约束条件
仅RDS for PostgreSQL 12支持。
操作步骤
- 以root用户连接postgres数据库,获取样本列表。
# psql --host=<RDS_ADDRESS> --port=<DB_PORT>--dbname=postgres --username=root -c "select * from profile.show_samples();"
表1 参数说明 参数
说明
RDS_ADDRESS
RDS实例的IP地址。
DB_PORT
RDS数据库实例的端口。
根据提示输入root用户密码。
Password for user root:
回显结果示例如下:
sample | sample_time | dbstats_reset | clustats_reset | archstats_reset --------+------------------------+---------------+----------------+----------------- 1 | 2021-04-02 17:15:49+08 | | | 2 | 2021-04-02 17:25:57+08 | | | 3 | 2021-04-02 17:36:04+08 | | | (3 rows)
请以实际查询结果为准。
- 以root用户连接postgres数据库,参考以下方式获取报告。
方式一:通过样本ID获取报告
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --dbname=postgres --username=root -Aqtc "select profile.get_report(<sample_start_id>, <sample_end_id>)" -o <filename>.html表2 参数说明 参数
说明
RDS_ADDRESS
RDS实例的IP地址。
DB_PORT
RDS数据库实例的端口。
sample_start_id
报告包含起始样本ID。
sample_end_id
报告包含结束样本ID。
filename
报告内容保存的文件名,支持指定相对路径或绝对路径。
其中sample_start_id 必须小于sample_end_id,否则无法生成报告。
方法二:通过指定时间段获取报告
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --dbname=postgres --username=root -Aqtc "select profile.get_report(tstzrange('sample_start_time', 'sample_end_time'))" -o <filename>.html
表3 参数说明 参数
说明
RDS_ADDRESS
RDS实例的IP地址。
DB_PORT
RDS数据库实例的端口。
sample_start_time
报告包含起始时间。
sample_end_time
报告包含结束时间。
filename
报告内容保存的文件名,支持指定相对路径或绝对路径。
目前相关参数保持默认值,详情如下:
- 采样周期(单位:分钟):10
- 采样保留时间(单位:天):7
- 显示记录数:20
参数配置
参数名称 |
默认值 |
是否需要重启 |
功能描述 |
备注 |
---|---|---|---|---|
pg_profile_pro.topn |
20 |
否 |
控制每个排序报表中需要上报对象(语句、关系等)的数量。 |
该参数会影响样本的大小,如果您想在报表中显示更多的对象,样本中需要保留的对象也会越多。 |
pg_profile_pro.max_sample_age |
3 |
否 |
样本的保留时间(单位:天)。保留时间超过参数时间的样本将在下一次采样时自动删除。 |
参数最小粒度为天。 |
pg_profile_pro.track_sample_timings |
off |
否 |
启用此参数后,pg_profile_pro将跟踪详细的采样时间。 |
开启后,会记录每一细分采样的耗时,会增加空间占用。 |
pg_profile_pro.period |
3600 |
否 |
采样周期(单位:秒)。 用于控制样本的采样周期。 |
该参数会影响样本的大小,采样周期越短,单位时间内的样本越多,插件表中保留的对象也会越多。 |
pg_profile_pro.enable |
on |
否 |
采样开关,用于控制插件是否采样。
|
插件生成的报告依赖于样本,关闭了采样那么就无法生成最新的报告,但是可以查看历史采样的报告。 |
表格中参数默认值为最新RDS版本的默认值,其他版本可能会有不同。