1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

PostgreSQL性能分析工具-PoWA

介绍 PoWA

PoWA 是 PostgreSQL 9.4 及以后版本的性能工具,拥有 PostgreSQL 工作负载分析器(PostgreSQL Workload Analyzer)这个全称,可以从各种 StatsExtensions 中收集、聚合和清除多个 PostgreSQL 实例的统计信息。

PostgreSQL性能分析工具-PoWA

PoWA 的组成部分

PoWA 由以下组成部分构成:

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

PoWA 的风险及影响

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

杜绝 PoWA 的风险及影响的措施

以下是杜绝 PoWA 的风险及影响的建议:

  • 检查 pg_hba.conf 文件,设置只容许相关网段的连接。不允许用户从外网直接访问 PoWA。
  • 不允许用户从外网直接访问 PostgreSQL。
  • 在 HTTPS 服务器上运行 PoWA 并禁用 HTTP 访问。
  • 使用 SSL 保护 GUI 和 PostgreSQL 之间的连接,拒绝 GUI 和 PostgreSQL 之间不受保护的连接。
  • 建议手动授权专用角色查看 powa 数据库中的数据。
  • 建议使用依赖其他 libpq 身份验证方法,杜绝纯文本密码存储,其身份验证方法详见官档 https://www.postgresql.org/docs/current/auth-methods.html。

以上是 PoWA 的介绍和相关风险及影响、措施的建议。下篇文章将介绍 PoWA-collector、PoWA-web 的安装使用及性能指标等的介绍。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6362.html