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来仅报告持续时间和查询数。
二,特性
三,报告模式
四,部署
perl Makefile.PL 这个时候可能报一个错:
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 
看一下界面:这个数据库并没有用过,所以生成是空的

写几个语句再看看

相关文章:
Postgre 调优工具pgBadger部署
一,简介: pgBadger(日志分析器)类似于oracle的AWR报告(基于1小时,一天,一周,一月的报告),以图形化的方式帮助DBA更方便的找到隐含问题。 pgbadger是为了提高…...
【云原生】Kubernetes----Helm包管理器
目录 引言 一、Helm概述 1.Helm价值概述 2.Helm的基本概念 3.Helm名词介绍 二、安装Helm 1.下载二进制包 2.部署Helm环境 3.添加补全信息 三、使用Helm部署服务 1.创建chart 2.查看文件信息 3.安装chart 4.卸载chart 5.自定义chart服务部署 6.版本升级 7.版本…...
Bootstrap 5 进度条
Bootstrap 5 进度条 引言 Bootstrap 5 是目前最流行的前端框架之一,它提供了一套丰富的组件和工具,帮助开发者快速构建响应式、移动设备优先的网页。在本文中,我们将重点探讨 Bootstrap 5 中的进度条组件,包括其基本用法、定制选…...
MySQL查询数据库中所有表名表结构及注释以及生成数据库文档
MySQL查询数据库中所有表名表结构及注释 生成数据库文档在后面!!! select t.TABLE_COMMENT -- 数据表注释 , c.TABLE_NAME -- 表名称 , c.COLUMN_COMMENT -- 数据项 , c.COLUMN_NAME -- 英文名称 , -- 字段描述 , upper(c.DATA_TYPE) as …...
Redis缓存穿透、缓存雪崩和缓存击穿的解决方案
Redis缓存穿透、缓存雪崩和缓存击穿的解决方案 引言 Redis作为当前非常流行的内存数据结构存储系统,以其高性能和灵活性被广泛应用于缓存、消息队列、排行榜等多种场景。然而,在实际使用过程中,可能会遇到缓存穿透、缓存雪崩和缓存击穿等问…...
如何解决javadoc一直找不到路径的问题?
目录 一、什么是javadoc二、javadoc为什么会找不到路径三、如何解决javadoc一直找不到路径的问题 一、什么是javadoc Javadoc是一种用于生成Java源代码文档的工具,它可以帮助开发者生成易于阅读和理解的文档。Javadoc通过解析Java源代码中的注释,提取其…...
redis 笔记2之哨兵
文章目录 一、哨兵1.1 简介1.2 实操1.2.1 sentinel.conf1.2.2 问题1.2.3 哨兵执行流程和选举原理1.2.4 使用建议 一、哨兵 1.1 简介 上篇说了复制,有个缺点就是主机宕机之后,从机只会原地待命,并不能升级为主机,这就不能保证对外…...
LVS+Keepalived NGINX+Keepalived 高可用群集实战部署
Keepalived及其工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 VRRP协议(虚拟路由冗余协议) 是针对路由器的一种备份解决方案由多台路由器组成一个热备组,通过共用的…...
Mybatis做批量操作
动态标签foreach,做过批量操作,但是foreach只能处理记录数不多的批量操作,数据量大了后,先不说效率,能不能成功操作都是问题,所以这里讲一讲Mybatis正确的批量操作方法: 在获取opensession对象…...
Python | 中心极限定理介绍及实现
统计学是数据科学项目的重要组成部分。每当我们想从数据集的样本中对数据集的总体进行任何推断,从数据集中收集信息,或者对数据集的参数进行任何假设时,我们都会使用统计工具。 中心极限定理 定义:中心极限定理,通俗…...
探索Napier:Kotlin Multiplatform的日志记录库
探索Napier:Kotlin Multiplatform的日志记录库 在现代软件开发中,日志记录是不可或缺的部分,它帮助开发者追踪应用的行为和调试问题。对于Kotlin Multiplatform项目而言,能够在多个平台上统一日志记录的方法显得尤为重要。Napier…...
MySQL基础——SQL语句
目录 1.SQL通用语法 2.SQL分类 3 DDL 3.1数据库操作 3.1.1查询 3.1.2创建 3.1.3删除 3.1.4使用 3.2表操作 3.2.1查询 3.2.2创建 3.2.3数据类型 3.2.4表修改(alter打头) 3.2.5表删除(drop/truncate打头) 3.3 DDL总结…...
比特币通用API服务
Bitcoin 通用API服务 exlectrs: API后台服务(Rust语言编写) https://github.com/Blockstream/electrs.git 使用electr作为后台的区块链浏览器:https://github.com/Blockstream/esplora.git https://github.com/Blockstream/electrs https://github.com/romanz/electrs/blo…...
Spock mock私有方法
mock私有方法 被测试的方法是MiddleGroundAppListBO类下的getPromptIdKeyAppPromptInfoMap方法 private Map<Long, AppPromptInfoModel> getPromptIdKeyAppPromptInfoMap(String cubeAppIdentity) {List<AppPromptInfoDO> promptByApp knowledgeCubeQueryR…...
网络协议四
一、云中网络 物理机的劣势: 1)一旦需要扩容 CPU、内存、硬盘,都需要去机房手动弄,非常麻烦 2)采购的机器往往动不动几百 G 的内存,而每个应用往往可能只需要 4 核 8G 3)一台机器,…...
大数据入门实践一:mac安装Hadoop,Hbase,FLume
一、安装Hadoop 安装hadoop参考此文,关键点是安装JDK和Hadoop的配置,为避免引用文章变收费,我把关键信息摘录如下: jdk安装和配置就不说了(我本机安装了1.8/15/17/21,以17为主),hadoop安装过程…...
openGauss 6.0.0 一主二备集群安装及使用zcbus实现Oracle到openGauss的数据同步
一、前言 openGauss 6.0.0-RC1是openGauss 2024年3月发布的创新版本,该版本生命周期为0.5年。根据openGauss官网介绍,6.0.0-RC1与之前的版本特性功能保持兼容,另外,在和之前版本兼容的基础上增加了很多新功能,比如分区表性能优化…...
0118__C语言——float.h文件
C语言——float.h文件_c float.h-CSDN博客...
settings和toolchains.xml 区别用法配置
在 IntelliJ IDEA 中配置 Maven 项目时,settings.xml 和 toolchains.xml 的使用场景有所不同。以下是具体的使用情景和配置方法: 1. 使用 settings.xml 使用场景 全局或用户级别的配置:包括设置本地仓库位置、远程仓库、代理服务器、认证信…...
leetcode打卡#day43 携带研究材料(第六期模拟笔试)、416. 分割等和子集
携带研究材料(第六期模拟笔试) #include<iostream> #include<algorithm> #include<vector>using namespace std;int getMaxValue(vector<int>& weights, vector<int>& values, int n, int m) {vector<vector&…...
Windows下用MSYS2编译axel多线程下载工具的保姆级教程(附常见错误解决方案)
Windows下MSYS2编译axel多线程下载工具全指南 如果你厌倦了商业下载工具的臃肿和限制,又对Python多线程下载的稳定性不满,那么编译一个原生的axel多线程下载工具可能是最佳选择。本文将带你从零开始在Windows环境下,通过MSYS2完整编译axel&a…...
Scratch3.0离线编辑器安装指南:一步步教你轻松搞定
1. 为什么你需要Scratch3.0离线编辑器 Scratch作为全球最受欢迎的少儿编程工具,它的在线版本虽然方便,但经常会遇到网络不稳定、加载缓慢的问题。我去年给小学生上课时就遇到过这种情况——全班40个孩子同时登录在线编辑器,结果服务器直接卡死…...
ib_insync部署指南:生产环境下的稳定性和可靠性保障
ib_insync部署指南:生产环境下的稳定性和可靠性保障 【免费下载链接】ib_insync Python sync/async framework for Interactive Brokers API 项目地址: https://gitcode.com/gh_mirrors/ib/ib_insync 在金融交易系统的开发中,稳定可靠的API连接是…...
Java微服务Istio迁移踩坑实录(17个高频Failure Case全复盘)
第一章:Java微服务Istio 1.20迁移全景认知Istio 1.20 是一个面向生产就绪场景的重要版本,其核心变化聚焦于控制平面简化、xDS 协议增强与 Java 微服务生态的深度协同。该版本正式弃用 Istiod 中的 Pilot、Galley 和 Citadel 组件,统一由 isti…...
单片机电子产品开发全流程指南
基于单片机的电子产品开发全流程解析1. 项目概述现代电子产品设计中,单片机已成为实现复杂功能的核心器件。从智能家居设备到健康监测仪器,各类产品都依赖单片机实现可编程控制功能。本文将系统介绍基于单片机的电子产品开发全流程,涵盖从需求…...
PyTorch张量操作实战:从基础运算到高效数据处理
1. PyTorch张量基础:从零开始理解多维数组 第一次接触PyTorch张量时,我完全被这个看似复杂的概念搞懵了。直到有一天,我把张量想象成俄罗斯套娃,突然就豁然开朗了。最外层的套娃是最高维度,每打开一层就降一个维度&…...
从‘Hello World’到物联网:用Hi3861点灯程序,带你理解鸿蒙轻量级设备开发的核心流程
从‘Hello World’到物联网:用Hi3861点灯程序,带你理解鸿蒙轻量级设备开发的核心流程 在物联网设备开发领域,鸿蒙系统(OpenHarmony)正以其轻量级、高并发的特性吸引着越来越多的开发者。对于初学者而言,一个…...
SlopeCraft终极指南:如何轻松将任何图片转换为Minecraft立体地图画
SlopeCraft终极指南:如何轻松将任何图片转换为Minecraft立体地图画 【免费下载链接】SlopeCraft Map Pixel Art Generator for Minecraft 项目地址: https://gitcode.com/gh_mirrors/sl/SlopeCraft 你是否曾梦想将心爱的照片、动漫角色或艺术作品搬进Minecra…...
UE5 GAS调试技巧:巧用ASC的‘Attribute Test’面板,5分钟搞定角色属性配置与验证
UE5 GAS高效调试指南:利用Attribute Test面板快速验证角色属性配置 在虚幻引擎5的游戏开发中,Gameplay Ability System (GAS)作为构建复杂角色能力与属性的核心框架,其调试效率直接影响着RPG类项目的开发进度。本文将深入探讨如何利用Ability…...
别再手动调参了!用Matlab+NRBO-BP+NSGAII搞定工艺优化,自动生成最优参数组合Excel
工艺优化新范式:基于NRBO-BP与NSGAII的智能参数寻优系统 在化工、材料、制造等领域的工艺优化过程中,工程师和研究人员常常面临一个共同的挑战:如何在有限的实验资源和时间约束下,从海量的参数组合中找到最优解。传统的手动调参方…...
