• 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





  • 相关阅读:
    如何利用python爬虫爬取音乐
    python中文件操作各符号意思
    基于node.js人脸识别之人脸对比
    体感在js中的调用
    了解Github
    初识微信小程序
    Spring中表达式语言spring-expression简单使用
    IDEA对jsr305的Nonnull注解和Guava的Beta注解的支持
    设计模式之访问者模式
    设计模式之桥接模式
  • 原文地址:https://www.cnblogs.com/cqdba/p/15656533.html
Copyright © 2020-2023  润新知