织梦图片瀑布流网站模板,ck整合插件wordpress,网络运营商哪家好,如何建视频网站前言#xff1a;
postgresql的调优是比较重要的#xff0c;那么#xff0c;如何调优呢#xff1f;自然是在某一个时间段内#xff0c;通常是业务高峰期或者压测时间内实时观察数据库的运行情况#xff0c;然后通过观察到的信息判断数据库的瓶颈#xff0c;比如#xf…前言
postgresql的调优是比较重要的那么如何调优呢自然是在某一个时间段内通常是业务高峰期或者压测时间内实时观察数据库的运行情况然后通过观察到的信息判断数据库的瓶颈比如读写瓶颈索引瓶颈等等最终得到一个比较准确的调优方案
那么关键的就来了如何实时监控数据库的运行状态系统工具比如htoptopfree等等命令只是针对操作系统的并不能准确反映数据库的运行情况慢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 的查询活动监控展示了当前正在运行的事务、锁定状态、等待时间和查询语句。以下是对每一列的解读
SEsession ID即会话编号标识每个独立的数据库会话。APP应用程序名称在这里是 pgbench一个用于基准测试PostgreSQL性能的工具。USER执行查询的数据库用户这里均为 pgbench。CLIENT客户端地址和端口这里均为 192.168.123.17/3。RELATION受影响的表例如 319565 代表表OID对象标识符None 表示未显示具体的表名。TYPE锁定类型这里是 tuple行级锁定或 transactionid事务ID锁定。MODE锁定模式这里均为 ExclusiveLock表示独占锁不允许其他事务同时持有该锁。TIME事务等待锁定的时间单位为秒。Waiting事务当前正在等待的资源如 transactionid、WALSync、ClientRead 等。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 21 1111.txt那么其实关键的倒不是如何监测了而是认识这些监控的数据从而发现数据库的问题上面我的数据库就比较强悍TPS比较高嘛吞吐率强大
好了pg_activity 这个小工具就完结撒花了~~~~~