Postgre 调优工具pgBadger部署

一,简介:

pgBadger(日志分析器)类似于oracle的AWR报告(基于1小时,一天,一周,一月的报告),以图形化的方式帮助DBA更方便的找到隐含问题。

pgbadger是为了提高速度而构建的,具有来自pg日志文件的完整报告,他是一个小型的Perl脚本(linux需要安装perl),性能优于任何其他pg日志分析器。

pgBadger 可以自动检测日志文件格式( syslog、 stderr、 csvlog或 jsonlog)。它被设计用来解析巨大的日志文件和压缩文件。支持的压缩格式有gzip、bzip2、lz4、xz、zip和zstd。

还可以使用命令行选项将 pg Badger限制为仅报告错误或删除报告(可以自定义)的任何部分。

pgbadger支持在 postgresql. conf文件中通过 log_ line_ prefix自定义的任何格式,只要它至少指定%t和%p模式。

pgbadger允许通过使用指定CPU数量的j选项并行处理单个日志文件或多个文件。

如果要保存系统性能,也可以使用 log_ duration替代 og_min_ duration_statement来仅报告持续时间和查询数。

二,特性

三,报告模式

1.小时一个报告
2.每天一个报告
3.每周一个累积报告的增量报告
4.每月一个报告
5.多个进程处理一个日志
6.多个进程处理多个日志
(oracle使用workload那个包也可以进行AWR报告收集调整,但工作原理不同,oracle是基于MMON收集的AWR快照,PG则是分析日志但生成的都是html类型的文件)。

四,部署

1.编译与安装(root用户)
解压后进入该安装目录
2.编译与安装:
perl Makefile.PL

这个时候可能报一个错:

缺少perl-ExtUtils-MakeMaker软件包我们使用yum安装上后就可以继续安装了
yum -y install perl-ExtUtils-MakeMaker

再次执行perl Makefile.PL

make && make install

五,配置postgresql.conf配置

--目的只要是为了让pg主动收集日志,PG中的日志分为三种,log,clog,xlog,运行日志log默认不打开。

这个参数默认-1不记录,改成0,把所有sql语句记下来,如果改成30,则把慢于30ms的sql记下来,与慢sql原理相同。

根据提示修改后重启pg。

可以看到data目录下已经有了pg_log。

六,如何产生报告

方式一:当有许多小的日志文件和许多CPU时,一次将一个内核专用于ー个日志文件会更快要启用此行为,必须改用-N选项。对于每个10MB的200个日志文件,-J选项的使用开始变得非常有效,有8个内核。使用此方法,您将确保不会丢失报表中的任何查询。个在服务器上完成的基准测试,有8个CPU和9.5GB的单个文件。

可以看到,并行可以大量缩短产生分析日志时间。

方式二:产生大量日志,通过阐述log_rotation_size 参数控制,刚才在配置文件中已经配置过,意思就是到了10M就重新生成一个文件。

两种方式各有优缺点,我选用第二种方法,日志记录在我们自己定义的目录pg_log下。

每次登录和执行sql语句都会被记下来(和oracle种的enable_ddl_logging感觉差不多)

产生报告:

产生一个小时的报告(可以选中不同日志产生不同时间段内的报告)


pgbadger -q /usr/local/pgsql/data/pg_log/postgresql-2024-06-16_05*.log \-o /home/postgres/www/pg_reports/day-06-16-05.html
产生每日和每周的日志报告:

pgbader -I -q /usr/local/pgsql/data/pg_log/* \-O /home/postgres/www/pg_reports/ \-f stderr

在这种模式下, pgbadger将在输出目录中创建一个自动增量文件。这意味着可以在每周旋转的日志文上每天以这种模式运行 pgbadger,并且它不会对日志条目计数两次可以使用 crontab进行定时运行。

也可以给他指定并行,加快分析流程:

给8个cpu并行分析:


pgbadger -j 8 -q /usr/local/pgsql/data/pg_log/postgresql-2024-06-16_05*.log \-o /home/postgres/www/pg_reports/day-06-16-05.html

看一下界面:这个数据库并没有用过,所以生成是空的

写几个语句再看看

  • 29
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值