PostgreSQL pgbadger 口袋战士123

2021-07-07 00:00:00 语句 分析 时间 信息 日志

PostgreSQL 的日志非常丰富,而通过日志来进行系统的性能分析是一件非常重要的工作,之前也是写了一些关于pgbadger 的东西,但基本上是功能的东西,没有实际的数据做支撑,这次会以应用的角度来分析pgbadger 到底对我们实际工作的作用.


安装就不说了, 百度都可以, 我们直接进入主题, 如何使用和如何分析产生的信息.


通过pgbadger 的数据分析,直接生成html文件, 我们打开html 文件,如果需要分析的文件比较大的情况下,可以通过多CPU 同时处理的方式来进行,这样速度会比较快。通过 -j 的参数加速分析.


我们看看到底pgbadger 可以观察的项目有那些

1 overview

2 connections 

3 sessions

4 checkpoints

5 temp files 

6 vacuums 

7 locks

8 queries

9 top

10 events


我们下面主要说一下 overview, connections ,checkpoint ,top,event


1 OVERVIEW 

overview 实际上是对整体的POSTGRESQL 的日志中关于系统的语句的执行状态的一个总结. 从页面上看其中主机的整体语句执行的状态都在global status中.

其中overview包含, global status , SQL  traffic , select traffic, write traffic , queries duration,  prepared queries ratio , genernal activity

Queries 中包含了日志中相关的数据的总计,并且给出了日志中个后一个查询的时间,和相关的查询PEAK的时间点.


另外系统中还将select , insert ,update的相关执行的频率图形化, 后通过general activity 的页面展示了相关的整体的分时信息.

2  connection 信息


connection 信息主要包含四大类

1 总体的连接信息

2 面向用户的连接信息

3 面向主机的连接信息

4 面向数据库的连接信息


1   总体的连接的信息的图形化

2  针对数据库的连接进行的数据库和类型的分类统计信息

3  针对主机的连接信息的统计

4  针对用户的统计信息分析

3  针对checkpoint的信息

从checkpoint 中可以可以理解整体系统的运行的数据变化和写入的情况,以及数据刷入磁盘的状态和细节.


其中checkpoints distance 可以分析出checkpoint 与数据刷入磁盘的关系和状态,checkpoints distance 


4 top  对于分析慢查询是有帮助的,通过对日志中记录的慢查询语句进行汇总和分析,得到下面的一些结果.


下图中大部分的慢查询主要在1-10S内其中包含了8856个查询的结果


通过下图中的慢查询语句,可以轻松的找到一些超过duration的语句以及他的执行时间.


同时可以通过time consuming queries 对语句进行更详细的分析,从大的和小的执行的时间,以及平均时间分析出语句在这段期间的整体状态, 如果小的时间和平均的时间接近. 这里如果系统提供类似PT-QUERY-DIGEST 的 95%的duration 可能会更有说服力.


另外通过most frequent queries 来对执行频率高的语句进行优化. 语句的优化也不是一个不漏, 而是我们通过集中精力优化前10% 执行频率高,但效能差的语句,来快速提升整体的系统性能.


5  event 

event  中有一个功能很不错,就是对日志进行错误信息的统计,通过错误信息的供给,可以看这一段时间数据库主要的问题产生在哪里.


除此以外还有一些需要在日志中打开相关的记录后才能进行记录的工作

1 temp files 

这是对数据库中临时文件的使用进行展示的量,默认是不记录这些信息到日志中的,所以如果想查看这部分的信息需要打开 log_temp_files 让系统记录这部分信息.


2  vacuums 是对表的vacuum信息进行记录的

需要打开log_autovacuum_min_duration 相关的信息



不打开相关的日志记录是无法进行相关的数据记录和展现的.

相关的命令执行中pgbadger 也有一些可以进行,如那个时间段的日志不在被需要.


如日志中不想对一些命令进行统计如 copy  和 commit 等命令可以通过 exclude-query在日志的处理中进行过滤.




另官方文档中一些参数的设置需要注意


log_time_files  

log_autovacuum_min_duration 

等信息是否需要全部记录,这里不建议根据官方文档的设置进行,而是将超过阀值的时间进行设定,降低整体日志系统的压力.

整体 pgbadger 对于我们日常关注的指标都有涉猎到,是一个每天将日志进行分析并进行查看和系统运行历史状态归档的好的分析软件.



相关文章