news 2026/5/23 1:33:59

pg_activity快速入门:如何在5分钟内开始监控PostgreSQL服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pg_activity快速入门:如何在5分钟内开始监控PostgreSQL服务器

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参数设置太小
  • 解决:增加该参数值

性能优化建议

  1. 调整刷新频率:根据监控需求选择0.5-5秒的刷新间隔
  2. 使用窄屏模式:在终端宽度有限时使用--profile narrow
  3. 过滤不必要信息:使用--no-*选项隐藏不关心的列
  4. 保存监控记录:定期使用--output选项保存快照

📈 最佳实践清单

  1. ✅ 使用超级用户权限运行以获得完整监控数据
  2. ✅ 根据网络延迟调整刷新频率
  3. ✅ 定期保存监控数据用于趋势分析
  4. ✅ 结合EXPLAIN ANALYZE分析慢查询
  5. ✅ 使用配置文件统一团队监控设置
  6. ✅ 监控关键指标:CPU、内存、I/O、锁等待
  7. ✅ 设置告警阈值(如查询时间>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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 1:34:23

思考的四个层次:拆分、归纳、联系、提炼(实操版)

最近我看了一个很有意思的现象。 2026年,AI写作工具已经非常成熟,很多人用AI生成了大量内容。但你会发现,真正能打动人的文章,AI写不出来。 不是因为AI词汇量不够,也不是因为AI不懂结构。 而是因为,那些…

作者头像 李华
网站建设 2026/5/23 1:34:15

Laravel Stats Tracker性能调优:大规模数据下的高效处理

Laravel Stats Tracker性能调优:大规模数据下的高效处理 【免费下载链接】tracker Laravel Stats Tracker 项目地址: https://gitcode.com/gh_mirrors/tr/tracker Laravel Stats Tracker是一款强大的Laravel统计跟踪工具,能够帮助开发者收集和分析…

作者头像 李华
网站建设 2026/5/23 1:34:01

OpenClaw模型微调集成:Qwen3-32B适配特定领域术语的实战方法

OpenClaw模型微调集成:Qwen3-32B适配特定领域术语的实战方法 1. 为什么需要领域适配的OpenClaw模型 上周我尝试用OpenClaw自动整理一批半导体行业的英文技术文档时,发现基础模型对"FinFET"、"BEOL"等专业术语的理解总出现偏差。这…

作者头像 李华
网站建设 2026/5/23 1:34:02

火山口数据中心:高温压力测试颠覆行业标准

挑战传统认知的极限环境在软件测试领域,稳定性与可靠性是衡量系统质量的核心标尺。传统的数据中心压力测试,往往在精心控制的恒温恒湿环境中进行,模拟的是“理想状态”下的峰值负载。然而,一个位于活火山口附近、代号“熔炉”的数…

作者头像 李华
网站建设 2026/5/23 1:34:02

快速原型实践:用快马AI十分钟搭建颜色代码实时转换预览工具

最近在做一个前端小项目时,经常需要处理颜色代码的转换问题。每次都要手动计算RGB和十六进制之间的转换,特别麻烦。于是想着能不能自己做个工具来解决这个问题,正好最近发现了InsCode(快马)平台,决定用它来快速实现这个想法。 需求…

作者头像 李华
网站建设 2026/5/23 1:34:06

“男子靠AI开一人公司年营收达150万”冲上热搜;Claude Code开发团队回应源码泄露:纯属人为失误;树莓派因LPDDR4内存涨价7倍 | 极客头条

「极客头条」—— 技术人员的新闻圈!CSDN 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:zhanghycsdn.net)整理 | 郑丽媛出品 | CSDN(I…

作者头像 李华