暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

PostgreSQL性能分析工具-PoWA(下)

IT那活儿 2022-08-04
1060

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

接上篇《PostgreSQL性能分析工具-PoWA》,接下来开始PoWA-collector、PoWA-web的安装使用及指标的介绍。


PoWA-collector安装

一个多线程python程序,它对在powa存储库数据库(在powa_servers表中)中配置的所有远程服务器执行快照收集。可以使用pipRPM包或手动安装PoWA-collector

安装要求:

  • 需要 python 2.7 或 python 3
  • psycopg2
1. 获取最新版本,下载地址如下,可以通过wget命令获取或者直接下载:
https://pypi.io/packages/source/p/powa-collector/powa-collector-1.2.0.tar.gz
tar -zxvf powa-collector-1.2.0.tar.gz
2. 解压,并将提供的powa-collector.conf-dist文件复制到新的powa-collector.conf文件,通过运行powa-collector.py启动程序。
tar -zxvf powa-collector-1.2.0.tar.gz
cd powa-collector-1.2.0
cp ./powa-collector.conf-dist ./powa-collector.conf

复制



powa-collector配置及启动
1. 通过调整配置文件使其能够连接到想要的PoWA存储库上。其配置文件为一个的JSON格式的文件。
Powa-collector 将按以下顺序将其配置搜索为以下文件之一:
/etc/powa-collector.conf
~/.config/powa-collector.conf
~/.powa-collector.conf
./powa-collector.conf

复制
配置文件内容示例如下:
{
"repository": {
"dsn": "postgresql://postgres@localhost:5001/powa"
},
"debug": false
}

复制

释义:

  • repository.dsn(字符串):
    连接的URI,用于告诉 powa-collector 如何连接专用存储库 powa 数据库来存储所有远程实例的数据。
以下选项是可选的:
  • debug(布尔值):
    一个布尔值,用于指定 powa-collector 是否应在调试模式下启动,提供更详细的输出,用于调试目的。
注:PoWA-collector 的配置中并没有密码的配置,所以powa-repository数据库的pg_hba.conf中需要配置对应的连接策略为trust免密连接。
2. 启动powa-collector
cd powa-collector-1.2.0
./powa-collector.py &

复制



配置需要采集性能指标的实例信息
1. 执行SQL,添加目标实例信息
select powa_register_server(
hostname => '192.168.XX.22',
alias => 'testdb5002',
port => 5002,
username => 'postgres',
password => 'postgres',
frequency => 300);

复制

释义:

  • hostname
    强制,默认NULL。远程 PostgreSQL 实例的主机名或 IP 地址。
  • port
    强制,默认5432。远程 PostgreSQL 实例的端口。
  • alias
    可选,默认NULL。远程 PostgreSQL 实例的用户友好别名(需要唯一)。
  • username
    强制,默认'powa'。用于连接远程 PostgreSQL 实例的用户的用户名。
  • password
    可选,默认NULL。用于连接远程 PostgreSQL 实例的用户密码。如果未提供密码,则连接可以回退到其他标准身份验证方法(.pgpass 文件、证书……),
    具体取决于远程服务器的配置方式。
  • dbname
    强制,默认'powa'。用于连接远程 PostgreSQL 实例的数据库。
  • frequency
    强制,默认300,远程服务器的快照间隔,单位为秒。
  • retention
    强制,默认'1 day'::interval。远程服务器的数据保留。
截图如下:
2. 查看当前采集指标信息实例的信息
select * from powa_servers;
复制

示例截图如下:



PoWA-web配置及启动
在pypi上下载最新版本,解压并复制示例配置文件:
yum install -y python-sqlalchemy python-tornado
复制

wget https://pypi.io/packages/source/p/powa-web/powa-web-4.1.2.tar.gz

tar -zxvf powa-web-4.1.2.tar.gz
cd powa-web-4.1.2
cp ./powa-web.conf-dist ./powa-web.conf

复制


1. 配置文件

powa-web文件为一个python格式文件。Powa-web 将按以下顺序将其配置搜索为这些文件中的任何一个:
/etc/powa-web.conf
~/.config/powa-web.conf
~/.powa-web.conf
./powa-web.conf

复制
powa-web.conf示例内容如下:
servers={
'main': {
'host': 'localhost',
'port': '5001',
'database': 'powa',
'username': 'postgres',
'query': {'client_encoding': 'utf8'}
}
}
cookie_secret="SECRET_STRING"

复制

注:pg_hab.conf中配置为trust,免密连接,所以未配置password。

2. 启动 powa-web
cd powa-web-4.1.2
./powa-web &

复制
示例截图:
注:UI 可用的地址和端口默认值为 0.0.0.0:8888,如以下消息所示:
Starting powa-web on http://0.0.0.0:8888/
如本例中powa-web安装的IP为192.168.XX.21,所以访问地址为http://192.168.XX.21:8888/
示例截图:



部分指标介绍
1. General Overview

指标如下:

  • Plantime per sec:每秒SQL解析的总耗时。
  • Queries per sec:每秒执行查询的次数。
  • Runtime per sec:每秒执行查询的总耗时。
  • Avg runtime:查询的平均耗时。
  • Total shared buffers hit:命中共享缓冲区的数据量。
  • Total shared buffers miss:未命中共享缓冲区的数据量。
2. Details for all queries
指标如下:
  • Query:执行的SQL文本。
  • (Execution) #:SQL执行的总次数。
  • (Execution) Plantime:SQL解析的总时间。
  • (Execution) Time:SQL执行的总时间。
  • (Execution) Avg time:SQL执行的平均时间。
  • (I/O Time) Read:读I/O等待时间。
  • (I/O Time) Write:写I/O等待时间。
  • (Blocks) Read:磁盘读页面数。
  • (Blocks) Hit:共享缓冲区命中页面数。
  • (Blocks) Dirtied:脏页面数。
  • (Blocks) Written:磁盘写页面数。
  • (Temp blocks) Read:磁盘读临时页面数。
  • (Temp blocks) Write:磁盘写临时页面数。
  • (WALs) #Wal records:WAL日志记录数。
  • (WALs) #Wal FPI:WAL FPI数。
  • (WALs) Wal bytes:WAL日志大小。
由于指标太多了,包括实例级及数据库级各种性能指标。这里就不做一一例举了,有兴趣的安装慢慢探索。

本文作者:魏 斌(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论