PG 的 AWR pg_profile

 

#1.pg_profile 安装

软件下载:https://github.com/zubkov-andrei/pg_profile 


unzip   pg_profile-master.zip
cd pg_profile-master

EXPORT PG_CONFIG = /u01/postgresql/pg12/bin/pg_config
make USE_PGXS=y install
cp  pg_profile*    /u01/postgresql/pg12/share/extension/

cd /u01/postgresql/pg12/share/extension/
chown postgres.postgres pg_*

2.查看参数

考虑设置以下统计收集器参数:

track_activities = on ;
track_counts = on  ;
track_io_timing = on ;
track_functions = all  ;
pg_stat_statements.max - 此参数的低设置可能会导致在拍摄快照之前清除某些语句统计信息。如果您的pg_stat_statements.max似乎过小,报告会警告您。
pg_stat_statements.track = 'top' -所有值都将影响报表的报表相关部分的%Total字段的准确性。
show pg_stat_statements.max    ;
show pg_stat_statements.track ;

更改
alter system set pg_stat_statements.track = top ; 

3. 创建扩展

CREATE EXTENSION dblink;
CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION pg_profile;

如果你想在其他架构中安装pg_profile,只需创建它,并在该架构中安装扩展:
CREATE EXTENSION dblink;
CREATE EXTENSION pg_stat_statements;
CREATE SCHEMA profile;
CREATE EXTENSION pg_profile SCHEMA profile;

注意:在专用模式中安装是推荐的方式 - 扩展将创建自己的表、视图、序列和函数。将它们分开是个好主意。如果您不想在使用模块时指定模式限定符,请考虑更改search_path设置。

4.查看组件

postgres=# \dx

5.使用profile

创建快照

postgres=#  SELECT profile.snapshot() ;
        snapshot        
------------------------
 (local,OK,00:00:00.69)
(1 row)
#生产环境中可以通过crontab 定时生成快照
*/30 * * * *   psql -c 'SELECT profile.snapshot()' > /var/log  2>&1
或
*/30 * * * *   psql -c 'SELECT snapshot()' > /var/log  2>&1

查询快照

postgres=#  select profile.show_samples();
           show_samples            
-----------------------------------
 (1,"2021-12-07 13:18:54+08",t,,,)
 (2,"2021-12-07 13:20:53+08",t,,,)
 (3,"2021-12-07 14:30:31+08",t,,,)
(3 rows)

6.创建HTML输出

我们可以使用以下命令来创建 html 输出。您可以指定一个路径来创建 html 输出。如果您不指定路径,它将在您所在的目录中创建。

生成普通报告

 psql  -qtc "select profile.get_report(1,3)"  --output awr_report_postgres_1_3.html

生成对比报告

对比报告可以很方例的看到不同快照时间之间的差异

注意里面的参数是:1与2之间的快照  和  3与4 之间的快照进行对比
psql -h 127.0.0.1  -p 5432   -qtc "select profile.get_diffreport(1,2,3,4)"  --output awr_report_postgres_8_9.html

例:

7.报告阅读

7.1.报告基础信息及目录

7.2.数据库基础信息

7.3.TOP SQL信息

7.4.数据TOP表信息

7.5.数据库TOP函数信息

7.6.数据库Vacuum 信息

7.7.数据库参数

8.注意事项

1当前执行快照的函数是take_sample(),当执行该函数的时候,会采集相关信息存入我们创建的schema的相关表中。当指表不免时可以自定义采集,存储到相应的表中。
然后用get_report函数, 生成html报告的时,在这里需要把我们新增的一些指标给显示出来。
2.在有物理备库时,不能在备库上执行(因为备库是只读的,无法写数据)

9.参考文档

http://postgres.cn/docs/12/monitoring-stats.html
http://postgres.cn/docs/12/pgstatstatements.html
https://github.com/zubkov-andrei/pg_profile





posted @ 2021-12-07 15:47  www.cqdba.cn  阅读(388)  评论(0编辑  收藏  举报