powa

PostgreSQL 工作负载分析器-核心

概览

扩展包名版本分类许可证语言
powa5.2.0STATPostgreSQLPython
ID扩展名BinLibLoadCreateTrustReloc模式
6870powapublic
相关扩展plpgsql pg_stat_statements btree_gist pg_stat_plans pg_profile pg_stat_statements pg_stat_monitor pg_store_plans pg_track_settings pg_track_optimizer auto_explain pg_show_plans pg_qualstats

Latest stable upstream/PGXN and PGDG DEB are 5.2.0; PGDG RPM remains at 5.1.0.

版本

类型仓库版本PG 大版本包名依赖
EXTPGDG5.2.01817161514powaplpgsql, pg_stat_statements, btree_gist
RPMPGDG5.1.01817161514powa_$v-
DEBPGDG5.2.01817161514postgresql-$v-powa-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
d13.x86_64
d13.aarch64
u22.x86_64
u22.aarch64
u24.x86_64
u24.aarch64
u26.x86_64
u26.aarch64

安装

您可以直接安装 powa 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:

pig repo add pgdg -u          # 添加 PGDG 仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install powa;          # 当前活跃 PG 版本安装
pig ext install -y powa -v 18  # PG 18
pig ext install -y powa -v 17  # PG 17
pig ext install -y powa -v 16  # PG 16
pig ext install -y powa -v 15  # PG 15
pig ext install -y powa -v 14  # PG 14
dnf install -y powa_18       # PG 18
dnf install -y powa_17       # PG 17
dnf install -y powa_16       # PG 16
dnf install -y powa_15       # PG 15
dnf install -y powa_14       # PG 14
apt install -y postgresql-18-powa   # PG 18
apt install -y postgresql-17-powa   # PG 17
apt install -y postgresql-16-powa   # PG 16
apt install -y postgresql-15-powa   # PG 15
apt install -y postgresql-14-powa   # PG 14

创建扩展

CREATE EXTENSION powa CASCADE;  -- 依赖: plpgsql, pg_stat_statements, btree_gist

用法

来源:

PoWA 是一个工作负载分析框架,用于收集性能统计数据并通过 Web UI 提供实时图表。核心扩展 (powa-archivist) 会从多个统计扩展中快照统计信息。

架构

PoWA 包含以下几个组件:

  • powa-archivist:PostgreSQL 扩展,用于收集和存储统计信息
  • powa-web:一个 Web UI,用于可视化性能数据
  • pg_stat_statements:必需的扩展,提供查询统计信息
  • pg_qualstats(可选):提供谓词统计信息和索引建议
  • pg_stat_kcache(可选):提供操作系统级指标(CPU、I/O)
  • pg_wait_sampling(可选):提供等待事件采样

在仓库数据库中启用该扩展。其控制文件需要 PL/pgSQL,pg_stat_statementsbtree_gist

CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION btree_gist;
CREATE EXTENSION powa CASCADE;

pg_stat_statements 本身必须在 PostgreSQL 启动前配置在 shared_preload_libraries 中。

快照

PoWA 定期从所有注册的扩展中快照统计信息:

-- Manual snapshot
SELECT powa_take_snapshot();

-- Check snapshot status
SELECT * FROM powa_snapshot_metas;

配置

-- Register stat extensions (done automatically on CREATE EXTENSION)
SELECT powa_register_server(hostname => 'localhost', port => 5432);

-- Configure snapshot interval and retention
ALTER EXTENSION powa UPDATE;

关键表和视图

-- View collected query statistics
SELECT * FROM powa_statements;

-- View snapshot history
SELECT * FROM powa_snapshot_metas;

Web UI

PoWA 的 Web 界面(单独安装)提供以下功能:

  • 实时查询性能仪表板
  • 查询钻取,带有计划详细信息
  • 基于 pg_qualstats 的索引建议
  • 等待事件分析
  • 系统资源使用情况图表

文档:powa.readthedocs.io

版本和部署注意事项

  • PoWA Archivist 5.2.0 添加了对 PostgreSQL 19 的支持,包括新的 pg_stat_recoverypg_stat_lock 统计视图的收集器。核心快照工作流程与 5.1 系列保持兼容。
  • powa 是数据库扩展;powa-web 是一个单独的可视化服务,而 powa-collector 用于远程收集架构。仅安装扩展不会部署 UI。
  • 保留策略和快照频率直接影响仓库的增长。监控 PoWA 仓库数据库并调整保留策略以适应所需的数据库数量、查询次数以及启用的可选模块的数量。

最后修改 2026-07-30: extension update 2026-07-30 (7373242)