postgresql|数据库|实时数据库监控利器 pg_activity 的部署和初步使用

前言:

postgresql的调优是比较重要的,那么,如何调优呢?自然是在某一个时间段内,通常是业务高峰期或者压测时间内实时观察数据库的运行情况,然后通过观察到的信息判断数据库的瓶颈,比如,读写瓶颈,索引瓶颈等等,最终得到一个比较准确的调优方案

那么,关键的就来了,如何实时监控数据库的运行状态?系统工具比如htop,top,free等等命令只是针对操作系统的,并不能准确反映数据库的运行情况,慢SQL这样的数据库运行细节是无法把握的哦,因此,专业的事情还是需要专业的人,专业的工具来做了,pg_activity 或者pg_top 这样的专业工具就非常的nice了

pg_activity 是一个相对较新的 PostgreSQL 实用程序,它提供了一种交互式的、易于阅读的方式来监控和分析 PostgreSQL 数据库活动。相比传统的命令行工具,如 psql 或 pg_stat_activity 视图,pg_activity 提供了更丰富的视觉展示和实时更新的特性,方便运维人员快速了解数据库的运行状态,它可以实时显示数据库的进程、查询、锁、等待事件等信息。

虽然不如 top 或 htop 这类通用系统监控工具普及,但在 PostgreSQL 社区中,pg_activity 越来越受到重视,尤其对于那些需要实时监控数据库活动的用户而言,它是一个非常有用的工具。pg_activity 通过清晰的表格形式展示进程、查询、内存、CPU使用率等信息,使得问题排查和性能分析更加直观便捷。

总之,虽然不能说 pg_activity 是绝对的主流或常用工具,但在 PostgreSQL 监控和管理领域,它是一个受欢迎且具有一定影响力的选择。

🆗,废话了半天,下面就直接上干货,不在多说了

一、

pg_activity 的安装部署(centos7)

pg_activity 和pg_top  这两个工具都是实时监控数据库运行信息的,但pg_top本文将不会多说什么,它十分类似于操作系统的实时监控小工具top命令,该工具监控的内容过于简单,其实对我们的调优活动帮助有限,而pg_activity 是有更多的功能,可以展示更多的数据库运行的详细的细节;这么说吧,就好像厨师的🔪和医生的手术刀一样,pg_activity 像手术刀一样准确

pg_activity 是基于python3.X运行的,安装部署方式比较多,但我这里只推荐使用rpm方式安装,因为这只是一个小工具,大可不必兴师动众的编译安装

yum安装也是比较的简单,把官方源配置好就可以了,安装部署见数据库的安装博客,不在这里废话了

Linux|centos7-postgresql数据库|yum安装数据库和配置repmgr高可用集群以及repmgr的日常管理工作-CSDN博客

这里需要说明一下,pg_activity 不需要特意安装在数据库的位置,可以随意安装到任意的服务器上,例如,我在192.168.123.19这个新服务器上安装pg_activity ,该服务器只安装了pg_activity ,也可以非常愉快的连接postgresql数据库,进行实时监控:

二、

简单的使用

该命令的使用非常简单方便,和psql基本一致,端口,用户,IP指定好,如果有密码按提示输入用户的密码就好了,root用户可以执行此命令:

例如,192.168.123.17服务器上安装的pg数据库,开放端口是15433,那么,连接命令如下:

pg_activity -h 192.168.123.17 -p15433 -Upostgres

程序运行起来后,就可以进行简单的压测来获取数据库运行的一些细节了:

按F3,可以查看当前数据库获取到锁的是哪些进程,哪些SQL命令,十分直观的显示:

 按F2,查看在等待的SQL语句,空格键暂时停止实时显示

 

上述输出来自于 PostgreSQL 的查询活动监控,展示了当前正在运行的事务、锁定状态、等待时间和查询语句。以下是对每一列的解读:

  • SE:session ID,即会话编号,标识每个独立的数据库会话。
  • APP:应用程序名称,在这里是 pgbench,一个用于基准测试PostgreSQL性能的工具。
  • USER:执行查询的数据库用户,这里均为 pgbench
  • CLIENT:客户端地址和端口,这里均为 192.168.123.17/3
  • RELATION:受影响的表,例如 319565 代表表OID(对象标识符),None 表示未显示具体的表名。
  • TYPE:锁定类型,这里是 tuple(行级锁定)或 transactionid(事务ID锁定)。
  • MODE:锁定模式,这里均为 ExclusiveLock,表示独占锁,不允许其他事务同时持有该锁。
  • TIME+:事务等待锁定的时间,单位为秒。
  • Waiting:事务当前正在等待的资源,如 transactionidWALSyncClientRead 等。
  • state:事务的状态,例如 active(事务正在执行中)、idle in trans(事务已开始但尚未提交或回滚)。
  • Query:执行的SQL查询语句。

根据这些信息,可以看出 pgbench 在执行一组银行转账样例事务,包括对 pgbench_tellers 和 pgbench_branches 表的更新操作,以及将交易历史记录插入到 pgbench_history 表中。同时,还可以观察到一些事务在等待锁定资源,这在并发环境中是很常见的现象。通过监控此类信息,可以分析数据库的性能瓶颈、死锁情况以及事务处理效率等方面的问题。

总之,可以看到pg_activity 非常容易但不简略的显示了postgresql数据库压测时的实时运行细节,可以暴露出数据库的弱点,压测命令如下;

-bash-4.2$ tail 1111.txt 
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 1
query mode: simple
number of clients: 100
number of threads: 1
duration: 1000 s
number of transactions actually processed: 756649
latency average = 132.181 ms
tps = 756.539109 (including connections establishing)
tps = 756.547789 (excluding connections establishing)
-bash-4.2$  pgbench  -U postgres -p 15433 -T 1000 -c 100 -h 192.168.123.17 -d pgbench   > 1111.txt  2>&1 >>1111.txt

那么,其实关键的倒不是如何监测了,而是认识这些监控的数据,从而发现数据库的问题,上面我的数据库就比较强悍,TPS比较高嘛,吞吐率强大

好了pg_activity 这个小工具就完结撒花了!!!!~~~~~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows 安装 A UDP/TCP Assistant 网络调试助手

Windows 安装 A UDP/TCP Assistant 网络调试助手 0. 引言1. 下载地址2. 安装和使用 0. 引言 需要调试一个实时在线聊天程序&#xff0c;安装一个UDP/TCP Assistant 网络调试助手&#xff0c;方便调试。 1. 下载地址 https://github.com/busyluo/NetAssistant/releases 2. 安…

【Android AMS】startActivity流程分析

文章目录 AMSActivityStackstartActivity流程startActivityMayWaitstartActivityUncheckedLocked startActivityLocked(ActivityRecord r, boolean newTask, boolean doResume, boolean keepCurTransition)resumeTopActivityLocked 参考 AMS是个用于管理Activity和其它组件运行…

华为云CodeArts IDE For Python 快速使用指南

CodeArts IDE 带有 Python 扩展&#xff0c;为 Python 语言提供了广泛的支持。Python 扩展可以利用 CodeArts IDE 的代码补全、验证、调试和单元测试等特性&#xff0c;与多种 Python 解释器协同工作&#xff0c;轻松切换包括虚拟环境和 conda 环境的 Python 环境。本文简要概述…

chrome浏览器取消右上方的更新红点提示

在桌面找到chrome浏览器的快捷方式&#xff0c;右键打开属性 在目标 引号后添加 --disable-background-netwroking

git上传代码

git上传代码 先写好本地代码&#xff0c;按照下面步骤操作

初识--Linux的虚拟地址空间

重新了解地址空间 在学习c/c语言的时候,大家一定见过以下这张图 说的是程序会加载在如图的结构上,实际上,我们真的对他很了解吗,而在Linux进程控制这,就会有一个奇怪的现象 前提提要:简要介绍一下fork函数 进程内核数据结构(PCB)自己的代码以及数据 在Linux中,fork可以从当…

Docker Desktop 卡死在 “Starting the Docker Engine“问题解决

docker desktop启动卡死在这个界面长时间没有反应 wsl --status输入以上命令查看wsl状态&#xff0c;发现也是卡死的状态&#xff0c;长时间没有反应&#xff0c;猜测是因为WSL卡死导致的docker desktop卡死的 netsh winsock reset通过以上命令重置 重启电脑后问题解决

【南京艺术学院×朗汀留学】部分录取案例合集

留学申请正在紧张的进行中&#xff0c;作为深耕留学的专业资深团队&#xff0c;朗汀留学成功帮助上千名学生出国留学。 在此我们将部分留学案例作以总结&#xff0c;以供新生参考。再次恭喜所有获得理想大学offer的学生们&#xff0c;你们的努力让梦想照进现实。 学校介绍 南京…

用Scrapy抓取当当网站数据

setting.py实验目的及要求&#xff1a; 【实验目的】 通过本实验了解Scrapy爬虫框架&#xff1b;熟练掌握Scrapy的基本使用方法和常用技巧。 【实验要求】 使用Scrapy框架&#xff0c;抓取网站商品信息&#xff08;京东、淘宝、当当等任选一个&#xff09;&#xff0c;并将结…

实战 K8s ConfigMap:打造动态可配置的云原生应用

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、k8s简介 2、ConfigMap简介 二、Con…

社交创新的标杆:解读Facebook的社交模式

引言 在当今数字化时代&#xff0c;社交媒体已成为人们日常生活和沟通的重要工具。作为全球最大的社交媒体平台&#xff0c;Facebook不仅改变了我们的社交模式&#xff0c;而且对全球的社交文化、商业活动和公共事务产生了深远的影响。本文将深入探讨Facebook的社交模式&#…

面试:lock 和 synchronized

一、语法层面 synchronized 是关键字&#xff0c;源码在jvm中&#xff0c;用c语言实现Lock 是接口&#xff0c;源码由jdk提供&#xff0c;用java语言实现使用synchronized时&#xff0c;退出同步代码块锁会自动释放&#xff0c;而使用Lock时&#xff0c;需要手动调用unlock方法…

数学建模完整版

模型与适用题型 微分方程传染病预测模型 神经网络 层次分析法 粒子群算法 matlab 优劣解距离法

停车资产数字化运营管理方案内容包括哪些?

随着新兴信息技术的蓬勃发展&#xff0c;如大数据、云服务、机器学习以及数字孪生等&#xff0c;停车行业正经历着前所未有的变革。这些技术的应用不仅推动了智慧停车领域的迅猛扩张&#xff0c;而且已成为全球各地数字化城市构建和城市治理现代化的关键驱动力。在数字化、平台…

【可实战】测试体系与测试方案设计(业务按公司实际情况,技术可参考通用测试方案)

一、如果我们要测试一个系统&#xff0c;首先我们要了解被测系统的架构 &#xff08;一&#xff09;业务架构-从需求里面去了解&#xff08;角色和行为&#xff09;&#xff1a; 业务模型分析&#xff08;是一个电商&#xff0c;还是一个企业的crm&#xff0c;还是一个网站&a…

java的volatile

在Java中&#xff0c;线程之间对内存写入操作的可见性是一个重要的问题&#xff0c;因为每个线程都有自己的工作内存&#xff0c;并且线程之间共享主内存。当一个线程修改了共享变量的值&#xff0c;其他线程并不一定能立即看到这个修改&#xff0c;这就是所谓的可见性问题。 例…

STM32H7 QSPI的寄存器和功能介绍

目录 概述 1 认识QSPI 1.1 QSPI介绍 1.2 QUADSPI 主要特性 2 QUADSPI 功能说明 2.1 双闪存模式禁止 2.2 双闪存模式使能 3 QUADSPI 的用法 3.1 间接模式的操作步骤 3.1.1 QUADSPI 间接模式时配置帧模式 3.1.2 写控制寄存器 (QUADSPI_CR) 3.1.3 写通信配置寄存器 (…

6-pytorch - 网络的保存和提取

前言 我们训练好的网络&#xff0c;怎么保存和提取呢&#xff1f; 总不可以一直不关闭电脑吧&#xff0c;训练到一半&#xff0c;想结束到明天再来训练&#xff0c;这就需要进行网络的保存和提取了。 本文以前面博客3-pytorch搭建一个简单的前馈全连接层网络&#xff08;回归问…

树和二叉树(一)

一、树 非线性数据结构&#xff0c;在实际场景中&#xff0c;存在一对多&#xff0c;多对多的情况。 树( tree&#xff09;是n (n>0&#xff09;个节点的有限集。当n0时&#xff0c;称为空树。 在任意一个非空树中&#xff0c;有如下特点。 1.有且仅有一个特定的称为根的节点…

数字IPO:企业增长的新引擎

数字IPO作为一种新型融资方式&#xff0c;可以被视为企业增长的重要加速器。以下是数字IPO如何促进企业增长的几个关键方面&#xff1a; 1.低成本融资与知名度提升&#xff1a;相较于传统的借贷融资方式&#xff0c;数字IPO为企业提供了低成本的资金来源。同时&#xff0c;上市…
最新文章