资讯专栏INFORMATION COLUMN

PostgreSQL性能分析工具-PoWA

IT那活儿 / 1260人阅读
PostgreSQL性能分析工具-PoWA

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

1

PoWA 是啥?
PoWA是PostgreSQL 9.4及以后更新版本的性能工具,允许从各种Stats Extensions收集、聚合和清除多个 PostgreSQL 实例的统计信息。全称为PostgreSQL工作负载分析器(PostgreSQL Workload Analyzer)

2

那它主要有哪些组成部分?
PoWA组成部分如下:
  1. PoWA-archivist是PostgreSQL的插件,收集其他插件获取到的性能统计数据。

  2. PoWA-collector是在专用存储库服务器上,用于收集远程PostgreSQL实例性能指标的守护进程。

  3. PoWA-web是PoWA-collector收集到的性能指标的用户展示界面。

  4. 安装于目标PostgreSQL数据库实例上的其他插件,其是性能指标数据的实际来源。

除了pg_stat_statements、btree_gist、powa为必须的插件,PoWA还支持以下几个插件作为新能指标采集的扩展
  1. pg_qualstats:用于保存在WHERE语句和JOIN子句中发现的谓词的统计信息,powa 利用它来提供索引建议。
  2. pg_stat_kcache:收集有关文件系统层的实际读取和写入的统计信息,可以用于观察SQL花费多少cpu等。
  3. pg_wait_sampling:用于收集等待事件的采样统计信息,启用后它会收集如下两种统计信息:
    --历史等待事件。它被实现为内存中的环形缓冲区,其中每个进程等待事件的样本都以给定的(可配置的)周期写入。因此,对于每个正在运行的进程,用户可以根据历史大小(可配置)查看一些最近的样本。假设有一个客户端定期读取此历史记录并将其转储到某个地方,则用户可以拥有连续的历史记录。
    --等待分析,以内存hash表形式存在,表中存放每个进程和每个等待事件累积的样本,该表可以根据用户请求进行reset。假设有一个客户端定期转储并reset,用户可以统计一段时间内等待事件的详细。
  4. pg_track_settings:该插件提供了一个可定期调用的函数(pg_tracksettingssnapshot())。 在每次调用时,它将存储自上次调用以来更改的设置。
  5. Hypopg:类似MySQL虚拟索引。
  6. pg_stat_statements:用于SQL语句监控。


3

那它有没有什么风险或者说对数据库服务器有没有什么影响?
存在如下风险或者影响:
  1. PoWA 会对PostgreSQL服务器性能产生很小的负面影响。且很难准确评估这种影响。
  2. 如果不使用远程模式,数据将定期存储在本地,所以必须考虑磁盘使用情况,避免影响备份。
  3. 在使用远程模式时,powa-repository中配置采集性能指标实例信息需要输入目标实例的IP、帐号及口令,并且可以通过powa_servers表查询到相关信息,其中连接口令以明文形式呈现,存在安全风险。
  4. 在PoWA-collector配置文件中,powa-repository的连接信息中无连接口令配置,表示powa-repository对于PoWA-collector的连接配置项必须为trust,存在安全风险。
  5. 在PoWA-web配置文件中,可选配置username、password对应powa-repository(远程模式)或者数据库实例(本地模式)的root用户及连接口令,且以明文形式存储,存在安全风险。

4

那有什么措施杜绝这种风险呢?
建议如下:
  1. 检查pg_hba.conf文件,设置只容许相关网段的连接。

  2. 不允许用户从外网直接访问PoWA。

  3. 不允许用户从外网直接访问PostgreSQL。

  4. 在HTTPS服务器上运行PoWA并禁用HTTP访问。

  5. 使用SSL保护GUI和PostgreSQL之间的连接,拒绝GUI和PostgreSQL之间不受保护的连接。

  6. 建议手动授权专用角色查看powa数据库中的数据。

  7. 建议使用依赖其他libpq身份验证方法,杜绝纯文本密码存储,其身份验证方法详见官档https://www.postgresql.org/docs/current/auth-methods.html。

5

PoWA详细安装如下:
在生产环境中,我们要做的是竟可能避免单个PG的powa库中的数据量过大。但是我们又要存放一段时间的快照信息用于性能分析,这个类似于Oracle的AWR快照信息。
这个时候我们就需要专门创建一个多带带的powa数据库用于存储各个pg采集过来的数据。所以生产环境中我们基本上采取的远程模式部署powa。
远程模式示意图
PoWA-archivist安装
5.1 PoWA-archivist是PoWA的核心组件。其主要有如下2个部分:
  1. 名为“powa”的管理功能扩展。

  2. 名称为“powa”的模块,可以选择作为后台工作程序运行,用以收集本地实例上的性能数据。

5.2 先决条件
  1. PostgreSQL版本为9.4或更新版本。

  2. 需安装pg_stat_statements和btree_gist模块。

5.3 本次安装环境
操作系统版本:Redhat7.5
PoWA-archivist版本:4.1.2
5.4 安装步骤
1)首先下载PoWA-archivist安装包,地址如下:
https://github.com/powa-team/powa-archivist/tree/REL_4_1_2
2)解压:
su - postgres
unzip powa-archivist-REL_4_1_2.zip
cd  powa-archivist-REL_4_1_2
3)编译并安装:
make
make install
例:
4)创建 PoWA 数据库并创建所需的扩展:
create database powa;
create extension pg_stat_statements;
create extension btree_gist;
create extension powa;
例:
如果需要本地信息收集,PoWA-archivist可作为后台进程去收集。但是对应的library需要在参数文件中配置且重启生效。
5)修改postgresql.conf配置文件,将powa和pg_stat_statements添加到shared_preload_libraries参数中,并开启track_io_timing。
track_io_timing = on
shared_preload_libraries = pg_stat_statements,powa
例:
由于内容比较多,我们分上下2篇了解PoWA,上篇就到此为止。下篇我们可以了解PoWA-collector、PoWA-web的安装使用及性能指标等的介绍。
参考:
https://github.com/
https://powa.readthedocs.io/en/latest/index.html
https://support.huaweicloud.com/rds/index.html

 


END



 


本文作者:魏 斌

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129504.html

相关文章

  • 新书推荐 |《PostgreSQL实战》出版(提供样章下载)

    摘要:作者谭峰张文升出版日期年月页数页定价元本书特色中国开源软件推进联盟分会特聘专家撰写,国内多位开源数据库专家鼎力推荐。张文升中国开源软件推进联盟分会核心成员之一。 很高兴《PostgreSQL实战》一书终于出版,本书大体上系统总结了笔者 PostgreSQL DBA 职业生涯的经验总结,本书的另一位作者张文升拥有丰富的PostgreSQL运维经验,目前就职于探探科技任首席PostgreS...

    Martin91 评论0 收藏0
  • 构建可扩展的PostgreSQL解决方案

    摘要:这可以通过负载平衡来实现数据分片当问题不是并发查询的数量,而是数据库的大小和单个查询的速度时,可以实现不同的方法。 showImg(https://segmentfault.com/img/remote/1460000018875091); 来源 | 愿码(ChainDesk.CN)内容编辑 愿码Slogan | 连接每个程序员的故事 网站 | http://chaindesk.cn...

    jonh_felix 评论0 收藏0
  • 构建可扩展的PostgreSQL解决方案

    摘要:这可以通过负载平衡来实现数据分片当问题不是并发查询的数量,而是数据库的大小和单个查询的速度时,可以实现不同的方法。 showImg(https://segmentfault.com/img/remote/1460000018875091); 来源 | 愿码(ChainDesk.CN)内容编辑 愿码Slogan | 连接每个程序员的故事 网站 | http://chaindesk.cn...

    FrozenMap 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<