好的,我们来系统介绍一下 PostgreSQL 的监控工具 pgcenter。我会从 概述、功能、安装、使用示例、优缺点 等方面说明。


1️⃣ pgcenter 简介

pgcenter 是一个 轻量级、命令行式的 PostgreSQL 监控和诊断工具,主要用于 实时观察数据库性能和状态。它由 Pavel Stehule 开发,开源且无需安装复杂依赖。

  • 官方地址: https://github.com/lesovsky/pgcenter
  • 特点
    • 基于命令行,类似 Linux 的 top 命令
    • 支持 PostgreSQL 9.x 到 15.x
    • 可实时显示数据库指标、锁、查询、缓存等
    • 支持聚合统计和历史查询

2️⃣ pgcenter 主要功能

功能模块描述
pgcenter top类似 Linux top,显示 PostgreSQL 活动连接、CPU/IO使用情况、锁等待、缓存命中率等实时指标
pgcenter info显示 PostgreSQL 配置信息、版本、启动参数
pgcenter locks实时显示锁等待情况,包括表锁和行级锁
pgcenter queries显示当前运行的 SQL 查询及执行时间
pgcenter stats聚合统计,显示数据库活动统计(如事务提交数、回滚数、IO、缓存命中率等)
pgcenter wal监控 WAL 写入、归档、延迟情况
pgcenter replication监控主从复制状态、延迟

3️⃣ 安装

3.1 通过 Homebrew (macOS / Linux)

brew install pgcenter

3.2 通过二进制包 (Linux)

wget https://github.com/lesovsky/pgcenter/releases/download/v0.12.0/pgcenter-0.12.0-linux-amd64.tar.gz
tar xzf pgcenter-0.12.0-linux-amd64.tar.gz
sudo mv pgcenter /usr/local/bin/

3.3 通过源码编译

git clone https://github.com/lesovsky/pgcenter.git
cd pgcenter
make
sudo make install

注意:需要 PostgreSQL 开发库 libpq 支持。


4️⃣ 使用示例

4.1 实时 top

pgcenter top -h 127.0.0.1 -U postgres -d mydb

输出类似:

PID   USER   DATABASE  CPU  MEM  TIME  STATE  QUERY
1234  postgres mydb   0.1  1%   00:01 active SELECT ...
...

4.2 查看锁

pgcenter locks -h 127.0.0.1 -U postgres -d mydb

显示锁类型、等待状态、阻塞的查询。

4.3 查询当前执行 SQL

pgcenter queries -h 127.0.0.1 -U postgres -d mydb

显示慢查询、执行时间、锁等待情况。

4.4 查看聚合统计

pgcenter stats -h 127.0.0.1 -U postgres -d mydb

显示事务数量、缓存命中率、IO统计等。


5️⃣ 优缺点分析

优点

  • 命令行工具,轻量且可快速部署
  • 支持实时监控,不依赖 Web 界面
  • 提供多维度数据库指标(锁、查询、WAL、缓存)
  • 可聚合统计,有助于性能分析

缺点

  • 命令行显示,图形化和历史趋势可视化有限
  • 对初学者而言,指标解释需要 PostgreSQL 基础
  • 对大规模分布式集群监控有限,适合单节点或主从场景