pg_activity快速入门:如何在5分钟内开始监控PostgreSQL服务器
【免费下载链接】pg_activitypg_activity is a top like application for PostgreSQL server activity monitoring.项目地址: https://gitcode.com/gh_mirrors/pg/pg_activity
PostgreSQL数据库监控工具pg_activity是一个强大的命令行应用程序,让你像使用Linux的top命令一样实时监控PostgreSQL服务器活动。这个终极监控解决方案能够快速识别性能瓶颈、监控查询执行情况,并优化数据库性能。
📋 为什么选择pg_activity?
pg_activity提供了一种简单直观的方式来监控PostgreSQL数据库,特别适合系统管理员和DBA使用。它实时显示:
- 活跃查询和其执行时间
- 每个进程的CPU和内存使用情况
- I/O读写统计
- 数据库连接状态
- 等待事件和阻塞查询
pg_activity实时监控界面,显示PostgreSQL服务器的运行状态、活跃查询和资源使用情况
🚀 一键安装步骤
方法1:使用pip快速安装(推荐)
这是最简单的安装方法,只需运行以下命令:
python3 -m pip install "pg_activity[psycopg]"安装完成后,直接运行pg_activity即可开始监控。
方法2:使用pipx隔离环境安装
如果你想要一个完全隔离的安装环境,可以使用pipx:
pipx install "pg_activity[psycopg]"方法3:从源代码安装
对于想要最新开发版本的用户,可以从Git仓库克隆并安装:
git clone https://gitcode.com/gh_mirrors/pg/pg_activity.git cd pg_activity python3 -m venv .venv source .venv/bin/activate pip install ".[psycopg]"🔧 最快配置方法
基本连接方式
最简单的使用方式是直接连接到本地PostgreSQL实例:
sudo -u postgres pg_activity -U postgres远程数据库连接
要监控远程PostgreSQL服务器,使用连接字符串:
pg_activity "host=192.168.1.100 port=5432 user=admin dbname=mydb"常用监控选项
pg_activity提供了丰富的配置选项:
# 只显示运行时间超过1秒的查询 pg_activity --min-duration 1 # 自定义刷新频率(0.5-5秒) pg_activity --refresh 1 # 隐藏特定列,专注于关键指标 pg_activity --no-client --no-app-name # 使用配置文件预设 pg_activity --profile narrow # 窄屏模式 pg_activity --profile wide # 宽屏模式📊 核心监控功能详解
实时查询监控
pg_activity显示所有活跃查询的详细信息,包括:
- PID:进程ID
- DATABASE:连接的数据库
- CPU%:CPU使用率
- MEM%:内存使用率
- READ/s:每秒读取量
- WRITE/s:每秒写入量
- TIME+:查询运行时间
- Query:SQL查询语句
系统资源监控
顶部状态栏显示关键系统指标:
- 数据库版本和连接信息
- 会话状态统计
- 内存使用情况(总内存、空闲、已用、缓存)
- I/O操作统计
- 系统负载平均值
交互式快捷键操作
pg_activity支持丰富的键盘快捷键:
| 快捷键 | 功能描述 |
|---|---|
r | 按读取速度排序 |
w | 按写入速度排序 |
c | 按CPU使用率排序 |
m | 按内存使用率排序 |
t | 按运行时间排序 |
Space | 暂停/恢复监控 |
F1/1 | 切换到运行查询视图 |
F2/2 | 切换到等待查询视图 |
F3/3 | 切换到阻塞查询视图 |
q | 退出程序 |
🛠️ 高级配置技巧
自定义配置文件
创建配置文件~/.config/pg_activity.conf来自定义显示:
[header] show_instance = yes show_system = yes show_workers = no [client] hidden = yes color = magenta [database] width = 9监控特定数据库
使用过滤器只监控特定数据库:
pg_activity --filter dbname:production输出到CSV文件
将监控数据保存到CSV文件供后续分析:
pg_activity --output /tmp/pg_monitor.csv💡 实用监控场景
场景1:识别慢查询
当数据库响应变慢时,使用TIME+列排序快速找到执行时间最长的查询:
pg_activity --min-duration 5场景2:监控I/O瓶颈
按读写速度排序,识别高I/O操作的查询:
# 启动时自动按写入速度排序 # 在界面中按 'w' 键场景3:分析内存使用
识别内存消耗大的进程:
# 在界面中按 'm' 键按内存使用率排序🔍 故障排除指南
常见问题解决
问题:看不到查询,只显示TPS
- 原因:查询执行时间太短,在两个刷新间隔之间完成
- 解决:降低刷新频率
--refresh 0.5
问题:连接权限不足
- 原因:用户权限不够
- 解决:使用超级用户连接
sudo -u postgres pg_activity
问题:查询文本被截断
- 原因:PostgreSQL的
track_activity_query_size参数设置太小 - 解决:增加该参数值
性能优化建议
- 调整刷新频率:根据监控需求选择0.5-5秒的刷新间隔
- 使用窄屏模式:在终端宽度有限时使用
--profile narrow - 过滤不必要信息:使用
--no-*选项隐藏不关心的列 - 保存监控记录:定期使用
--output选项保存快照
📈 最佳实践清单
- ✅ 使用超级用户权限运行以获得完整监控数据
- ✅ 根据网络延迟调整刷新频率
- ✅ 定期保存监控数据用于趋势分析
- ✅ 结合
EXPLAIN ANALYZE分析慢查询 - ✅ 使用配置文件统一团队监控设置
- ✅ 监控关键指标:CPU、内存、I/O、锁等待
- ✅ 设置告警阈值(如查询时间>10秒)
🎯 总结
pg_activity是PostgreSQL数据库监控的终极工具,它结合了Linuxtop命令的直观性和PostgreSQL专业监控的深度。通过5分钟的快速安装和配置,你就可以开始实时监控数据库性能,快速识别问题并优化查询性能。
无论你是数据库管理员、开发人员还是系统运维工程师,pg_activity都能提供你所需的实时洞察力,帮助你保持PostgreSQL数据库的健康运行。立即开始使用这个强大的监控工具,提升你的数据库管理效率!
官方文档和源码位置:
- 配置文件示例:pgactivity/profiles/
- SQL查询定义:pgactivity/queries/
- 核心监控逻辑:pgactivity/activities.py
- 用户界面实现:pgactivity/ui.py
- 命令行接口:pgactivity/cli.py
【免费下载链接】pg_activitypg_activity is a top like application for PostgreSQL server activity monitoring.项目地址: https://gitcode.com/gh_mirrors/pg/pg_activity
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考