温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

postgresql如何监控运行状态

发布时间:2026-09-07 01:42:36 来源:亿速云 阅读:101 作者:小樊 栏目:数据库

在 PostgreSQL 中,监控运行状态可以从系统级、数据库级、SQL 级、工具级几个层面来做。下面给你一个比较实用、由浅入深的总结。


一、查看 PostgreSQL 基本运行状态

1. 查看服务是否运行

pg_lsclusters        # Debian/Ubuntu
systemctl status postgresql
ps -ef | grep postgres

2. 查看版本

SELECT version();

二、数据库级监控(最常用)

1. 当前连接情况

SELECT * FROM pg_stat_activity;

常用监控字段:

  • state(active / idle / idle in transaction)
  • query
  • wait_event
  • client_addr
  • backend_start

查看活跃连接数:

SELECT count(*) FROM pg_stat_activity WHERE state = 'active';

2. 数据库整体统计

SELECT * FROM pg_stat_database;

重点关注:

  • numbackends(连接数)
  • blks_read / blks_hit(缓存命中率)
  • deadlocks
  • conflicts

命中率示例:

SELECT
  datname,
  blks_hit::float / (blks_hit + blks_read) AS hit_ratio
FROM pg_stat_database;

三、性能与慢查询监控

1. 慢查询日志

在 postgresql.conf 中:

log_min_duration_statement = 1000  # 毫秒
logging_collector = on

2. 查看当前慢 SQL

SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC;

3. 表级统计

SELECT * FROM pg_stat_user_tables;

关注:

  • seq_scan(全表扫描)
  • idx_scan
  • n_dead_tuples

四、锁与阻塞监控(非常重要)

查看锁等待

SELECT
  pid,
  usename,
  state,
  wait_event_type,
  query
FROM pg_stat_activity
WHERE wait_event_type = 'Lock';

查看锁关系

SELECT * FROM pg_locks WHERE NOT granted;

五、资源使用监控

1. 磁盘使用

SELECT pg_database_size('dbname');
SELECT pg_total_relation_size('tablename');

2. 表空间

SELECT * FROM pg_tablespace;

3. 系统资源(OS 层)

top / htop
iostat -x 1
df -h
free -m

六、自动化 & 可视化监控工具(推荐)

1. 官方 / 轻量

  • pg_stat_statements(强烈推荐)
CREATE EXTENSION pg_stat_statements;

查看最耗资源的 SQL:

SELECT * FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;

2. 监控平台

  • pgAdmin(图形化)
  • Prometheus + Grafana + postgres_exporter
  • Zabbix
  • Datadog / CloudWatch(云环境)

七、日常监控建议清单

✅ 连接数
✅ 慢查询
✅ 锁等待
✅ 缓存命中率
✅ 表膨胀(dead tuples)
✅ 磁盘空间
✅ WAL 增长


如果你愿意,可以告诉我:

  • 用的是 PG 几版本
  • 是 单机 / 主从 / 云数据库
  • 想监控 性能 / 稳定性 / 业务指标

我可以直接给你一套可落地的监控方案或脚本。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手