使用 pg_profile 在 Postgres 中生成性能报告

使用 pg_profile 在 Postgres 中生成性能报告

下载安装 pg_profile 
从github链接下载pg_profile: https://github.com/zubkov-andrei/pg_profile/releases
解压缩到以下位置
# cd $PGHOME/share/extension/
# su - postgress
$ psql -h 127.0.0.1 -d postgres -U postgress
postgres=# CREATE EXTENSION pg_stat_statements;
postgres=# CREATE EXTENSION pg_profile;

验证参数设置如下
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 10000
pg_stat_statements.track = 'top'
pg_stat_statements.save = on
track_activities = on
track_counts = on
track_io_timing = on
track_functions = all/pl
track_wal_io_timing = on      # Since Postgres 14

注意:如果需要生成远程服务器的性能报告,就需要有 dblink 扩展
postgres=# CREATE EXTENSION dblink;

验证如下扩展是否已经存在
postgres=# \dx
                                            List of installed extensions
        Name        | Version |   Schema   |                              Description                               
--------------------+---------+------------+------------------------------------------------------------------------
 dblink             | 1.2     | public     | connect to other PostgreSQL databases from within a database
 pg_profile         | 4.6     | public     | PostgreSQL load profile repository and report builder
 pg_stat_statements | 1.10    | public     | track planning and execution statistics of all SQL statements executed
 plpgsql            | 1.0     | pg_catalog | PL/pgSQL procedural language
(4 rows)

验证服务器信息:默认情况下,本地服务器将添加到服务器列表中
postgres=# select * from show_servers();
 server_name |          connstr          | enabled | max_sample_age | description 
-------------+---------------------------+---------+----------------+-------------
 local       | dbname=postgres port=5432 | t       |                | 
(1 row)

开始采样
要生成报告,您至少需要两个快照
postgres=# select show_samples();
 show_samples 
--------------
(0 rows)

postgres=# select take_sample();
      take_sample       
------------------------
 (local,OK,00:00:01.36)
(1 row)

postgres=# select show_samples();
           show_samples            
-----------------------------------
 (1,"2024-08-28 16:29:34+08",t,,,)
(1 row)

跑5分钟压力测试然后在采样
$ pgbench -i postgres -- 创建压测用表
$ pgbench -M prepared -r -c 8 -j 4 -T 300 -U postgress -p 5432 -d postgres -l
... ...
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1
query mode: prepared
number of clients: 8
number of threads: 4
maximum number of tries: 1
duration: 300 s
number of transactions actually processed: 311830
number of failed transactions: 0 (0.000%)
latency average = 7.696 ms
initial connection time = 9.861 ms
tps = 1039.447761 (without initial connection time)
statement latencies in milliseconds and failures:
         0.019           0  \set aid random(1, 100000 * :scale)
         0.016           0  \set bid random(1, 1 * :scale)
         0.015           0  \set tid random(1, 10 * :scale)
         0.015           0  \set delta random(-5000, 5000)
         0.158           0  BEGIN;
         0.226           0  UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
         0.184           0  SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
         2.476           0  UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
         3.702           0  UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
         0.197           0  INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
         0.662           0  END;

压测完成后采样
postgres=# select take_sample();
      take_sample      
-----------------------
 (local,OK,00:00:01.8)
(1 row)

postgres=# select * from show_samples();
 sample |      sample_time       | sizes_collected | dbstats_reset | clustats_reset | archstats_reset 
--------+------------------------+-----------------+---------------+----------------+-----------------
      1 | 2024-08-28 16:29:34+08 | t               |               |                | 
      2 | 2024-08-28 16:42:23+08 | t               |               |                | 
(2 rows)

生成性能报告
1 和 2 是快照 ID。
$ psql -d postgres -Aqtc "SELECT get_report('local',1,2)" -o 2024-1-2_report.html
采样生成的报告如下:
[postgress@obocp ~]$ ll
total 10424
-rw-rw-r-- 1 postgress postgress  397055 Aug 28 16:44 2024-1-2_report.html

打开生成的性能报告如下,可以看到包含如下图所示的几方面信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/410983.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Improving Language Understandingby Generative Pre-Training

摘要 自然语言理解包括各种各样的任务&#xff0c;如文本蕴涵、问题回答、语义相似性评估和文档分类。尽管大量未标记的文本语料库丰富&#xff0c;但用于学习这些特定任务的标记数据很少&#xff0c;这使得判别训练模型难以充分执行。我们证明&#xff0c;通过在不同的未标记…

筛质数(线性筛法)

线性筛法&#xff1a; 假设有一个非质数 x&#xff0c;那么这个数可以被表示为一个最小质因数和一个因子相乘的形式 如 x 12 &#xff0c;那么 x 2*6 其中&#xff1a;2 就是 12 的最小质因数&#xff0c; 6 就是另一个因子 线性筛法就是利用每个数的最小质因数筛掉这个非…

解决idea始终无法导入本地jar包

问题描述 maven刷新也没有用 解决&#xff1a; 找到本地Maven仓库的jar包手动引入 之后。导入成功

《黑神话:悟空》研发公司的薪资水平

作者&#xff1a;程序员晓凡 最近全网最火爆的要属《黑神话&#xff1a;悟空》了&#xff0c;即便是我这个平时不沾游戏、不追直播的人&#xff0c;也看直播看得津津有味。 一、销量与热度背后 首先&#xff0c;让我们来看看那些令人瞩目的数字。《黑神话&#xff1a;悟空》…

VBA技术资料MF194:屏蔽右键菜单

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

uniapp(微信小程序如何使用单选框、复选框)

一、先看效果 二、数据结构 说明&#xff1a;selected用来记录每次用户选择的值&#xff0c;当是单选的时候属性中的selected属性需要设置成字符串&#xff0c;当是复选框的时候&#xff0c;此时选择的是数组&#xff0c;selected属性应设置为数组。type用来区分当前是单选还是…

Wordpress 6.x 修改文件上传大小限制

1. 安装并启用Big File Uploads插件 插件 → 安装新插件 媒体→添加文件 修改后Save保存 2. 修改Nginx配置文件 # 我的配置在wordpress.conf文件中 vim /etc/nginx/conf.d/wordpress.conf 在server节点中加入下面这句配置 # 文件上传大小限制 client_max_body_size 500M;# 重…

xss-labs通关攻略 11-15关

第十一关&#xff1a;less-11 步骤一&#xff1a;利用burp抓包 步骤二&#xff1a;添加referer:click me!" type"button" οnmοuseοver"alert(/xss/)进行放包 第十二关&#xff1a;less-12 步骤一&#xff1a;利用burp抓包 步骤二&#xff1a;修改User A…

java 中的设计模式

文章目录 一、前言二、设计模式的分类三、设计模式的原则1、开闭原则&#xff08;Open Close Principle&#xff09;2、里氏代换原则&#xff08;Liskov Substitution Principle&#xff09;3、依赖倒转原则&#xff08;Dependence Inversion Principle&#xff09;4、接口隔离…

【计算机系统架构】从0开始构建一台现代计算机|时序逻辑、主存储器|第2章

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024往期回顾&#xff1a; 【计算机系统架构】从0开始构建一台现代计算机|二进制、布尔运算和ALU|第2章每日一言&#x1f33c;: 孤独和喧嚣都令人难以忍受。如果一定要忍…

参会投稿 | 第三届先进传感与智能制造国际学术会议(ASIM 2024)

第三届先进传感与智能制造国际会议&#xff08;The 3rd International Conference on Advanced Sensing, Intelligent Manufacturing&#xff09;&#xff0c;由江汉大学、西安交通大学和山东大学主办&#xff0c;由江西省机械工程学会、东华理工大学机械与电子工程学院等联合协…

iPhone突然黑屏?别慌,这里有你的自救指南

在日常使用iPhone的过程中&#xff0c;不少用户可能会遇到手机突然黑屏的情况&#xff0c;这往往让人措手不及。别担心&#xff0c;今天我们就来详细探讨一下iPhone突然黑屏的可能原因及解决方法&#xff0c;帮助你快速恢复手机的正常使用。 一、iPhone突然黑屏的可能原因 1. …

IPD+敏捷高级训战盛典(上海站)圆满落幕,引领创新管理新纪元

在金秋送爽的八月末&#xff0c;翰德恩咨询精心筹备的为期两日的“IPD敏捷高级训战盛典&#xff08;上海站&#xff09;”于24日至25日璀璨落幕&#xff0c;标志着一场汇聚行业精英、融合前沿管理智慧的盛宴圆满收官。此次盛典不仅是知识的碰撞与交融&#xff0c;更是企业转型升…

序列化组件对比

1、msgpack介绍 1.MsgPack产生的数据更小&#xff0c;从而在数据传输过程中网络压力更小 2.MsgPack兼容性差&#xff0c;必须按照顺序保存字段 3.MsgPack是二进制序列化格式&#xff0c;兼容跨语言 官网地址&#xff1a; https://msgpack.org/ 官方介绍&#xff1a;Its lik…

ST表(区间查询

解决的问题&#xff1a; 数组区间查询最大值和最小值对于解决数组的树状数组的区间修改 ------- 线段树倍增思想 核心代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N1e5; int num[N]; int f[N][N]; int main(){int n;cin>>n;//输入默…

Vue 2.x时间转换为北京时间(+8)

文章目录 当前时间格式效果图理想时间格式效果图转换方法总结 当前时间格式效果图 非中国常用时间格式&#xff0c;在上图中给可以看到&#xff0c;选择的时间为&#xff1a;2024-8-26 ~ 2024-8-27&#xff0c;返回结果却是&#xff1a;2024-08-25TXX:XX:XXZ&#xff0c;明显不…

最大噪音值甚至受法规限制,如何基于LBM算法有效控制风扇气动噪音

风扇的气动噪声 在工业设备行业&#xff0c;最大噪音值受法规限制。在很多使用风扇冷却的设备上&#xff0c;风扇噪声通常是这些设备工作噪声的最大贡献量。而在家电民用行业&#xff0c;例如空调、空气净化器、油烟机等&#xff0c;其噪音大小直接关系到用户的体验感受&#x…

实现并发网络服务器

一&#xff0c;网络服务器 1.单循环网络服务器 —— 同一时刻只能处理一个客户端任务 2.并发服务器 —— 同一时刻能处理多个客户端任务 二&#xff0c;并发服务器 1.多线程 2.IO多路复用 3.多进程 三&#xff0c;IO模型 1.阻塞IO 阻塞IO&#xff08;Blocking IO&…

SQLi-LABS通关攻略【41-45】

SQLi-LABS 41关 这一关是堆叠注入 测试闭合 ?id1 //回显错误 ?id1-- //回显错误 ?id1-- //回显正确 所以是数字型的注入 测试堆叠注入&#xff0c;更改Dumb的密码 ?id1;update users set password123456 where usernameDumb-- SQLi-…

不会PS怎么快速抠图?试试这3种方法,抠图干净又高效!

我就不信每个人都会用PS抠图&#xff01;&#xff01; 关于抠图技巧&#xff0c;前面高赞已经分享了好多&#xff0c;但&#xff0c;我还是忍不住想向所有小白推荐更“傻瓜式”抠图。 就是那种根本不需要学习就能抠干净的抠图工具&#xff0c;适用于99%的抠图需求&#xff0c…