重庆思庄Oracle、Redhat认证学习论坛

标题: PG awr 工具 pg_profile安装 [打印本页]

作者: 郑全    时间: 2024-3-18 08:45
标题: PG awr 工具 pg_profile安装
本帖最后由 郑全 于 2024-3-18 14:44 编辑

软件源:
   wget https://github.com/zubkov-andrei ... profile--4.4.tar.gz

拷贝文件到extension
  tar -xzvf pg_profile--4.4.tar.gz  -C /u01/postgre/pg16/share/extension/


创建扩展
postgres=# CREATE EXTENSION dblink;
postgres=# CREATE EXTENSION pg_stat_statements;



postgres=# CREATE SCHEMA profile;postgres=# CREATE EXTENSION pg_profile SCHEMA profile;



不想指定模式限定符,可以设置search_path


postgres=# set search_path="$user",public,profile;
SET


postgres=# show search_path;      
search_path        
--------------------------
"$user", public, profile
(1 row)
postgres=# alter user postgres set search_path to "$user", public,profile;


ALTER ROLE




/pgdb/data/postgres.conf#


增加track相关参数
track_activities = on #默认on
track_counts = on #默认打开  
track_io_timing = on #默认off  跟踪IO消耗的时间
track_functions = all # none, pl, all default none                        none:不收集                       pl:只收集过程语言函数                       all:收集所有的函数

#加载动态库
shared_preload_libraries = 'pg_stat_statements'  #修改后需重启生效
#增加pg_stat_statements相关参数
pg_stat_statements.max = 10000 #最多保留多少条统计信息,通过LRU算法,覆盖老的记录(即pg_stat_statements视图中行的最大数量)
pg_stat_statements.track = all #跟踪顶层语句(直接由客户端发出的语句)
pg_stat_statements.track_utility = on 是否跟踪非DML语句 (例如DDL,DCL),on表示跟踪, off表示不跟踪
pg_stat_statements.save = on  重启后是否保留统计信息


重启生效


--重启库pg_ctl stop -D /u01/postgre/pgdata/pg_ctl start -D /u01/postgre/pgdata/


也可以通过pg_stat_kcache 加上CPU,IO的支持
软件包:
https://github.com/powa-team/pg_stat_kcache


#编译安装


su - postgres


unzip pg_stat_kcache-master.zip -d /u01/postgre/pg16/share/extension/


cd /u01/postgre/pg16/share/extension/pg_stat_kcache-master
make
make install




-加载动态库
vi /pgdb/data/postgresql.conf


shared_preload_libraries = 'pg_stat_statements,pg_stat_kcache'  # (change requires restart)


--重启库


pg_ctl stop -D /u01/postgre/pgdata/
pg_ctl start -D /u01/postgre/pgdata/


--创建扩展
postgres=# CREATE EXTENSION pg_stat_kcache;
CREATE EXTENSION




执行函数创建快照


SELECT profile.snapshot();


profile.show_samples()函数,查看生成的快照


获取2个时间段之间的AWR报告(18,20为两个快照的ID)


psql -Aqtc "select profile.get_report(18,20)"  -o awr_report_postgres_18_20.html


定时创建快照
#add by pg_awr 每1个小时生成1次快照 0 */1 * * *  /u01/postgre/pg16/bin/psql -p 5439 -c 'SELECT profile.snapshot()' >> /home/postgres/pg_awr.log  2>&1


#add by pg_awr 每半个小时生成1次快照*/30 * * * *  /u01/postgre/pg16/bin/psql -p 5439 -c 'SELECT profile.snapshot()' >> /home/postgres/pg_awr.log  2>&1


后面就是常规的看报告。







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2