温馨提示×

centos中pgadmin如何监控性能

小樊
45
2025-12-13 17:44:07
栏目: 智能运维

在 CentOS 上使用 pgAdmin 进行性能监控

一 快速上手 pgAdmin 内置监控

  • 连接到数据库:在 pgAdmin 左侧 Servers → Create → Server,填写主机、端口(默认 5432)、维护库(如 postgres)、用户名与密码并保存。
  • 实时仪表盘:进入目标数据库,打开右侧 Dashboard,查看关键指标:Server sessions(连接数)Transactions per second(每秒事务数)Tuples in/out(行操作量)Block I/O(块读写)Server activity(会话与锁)
  • 监控节点:展开服务器下的 Monitoring,可获取更细的实时性能数据(如 CPU、内存、磁盘 I/O 等,取决于采集方式)。
  • 日志查看:在 Logs 节点查看数据库日志(需提前开启日志收集),用于定位慢查询与错误。
  • 查询性能分析:使用 Query Tool 执行 SQL,配合 EXPLAIN / EXPLAIN ANALYZE 查看执行计划与实际耗时,定位瓶颈。

二 深入诊断与扩展监控

  • 扩展状态与版本:在数据库 Extensions 节点查看已安装扩展;或用 SQL 查询系统视图 pg_stat_extensions,获取扩展名、版本、是否可重定位、模式、最近更新时间等,用于排查扩展导致的异常。
  • 自定义扩展监控面板:在 Query Tool 中运行扩展状态查询,点击工具栏 Save as Dashboard 保存为仪表板组件,与其他指标统一展示。

三 长期可视化与告警 Prometheus Grafana

  • 部署采集器:在 CentOS 安装 prometheus-postgresql-exporter,默认监听 9187
  • 配置 Prometheus:编辑 /etc/prometheus/prometheus.yml,新增抓取任务:
    • job_name: ‘postgresql’
      static_configs:
      • targets: [‘localhost:9187’]
        重启 Prometheus 生效。
  • Grafana 可视化:登录 3000 端口,添加 Prometheus 数据源,导入 PostgreSQL Overview 面板,配置查询(如 pg_stat_activitypg_stat_database 等)。
  • 告警:在 Grafana 面板中配置阈值告警(如连接数、事务延迟),并配置通知渠道(邮件、Slack 等)。

四 操作系统层面的性能排查

  • 资源监控命令:
    • top/htop:实时查看进程 CPU/内存 占用;
    • vmstat 1:关注 r(运行队列)free(空闲内存)si/so(swap 进出)
    • iostat -x 1:查看磁盘 await、svctm、util 等指标识别 I/O 瓶颈;
    • ss -tulnp:检查数据库与 pgAdmin 相关网络连接与端口;
    • /proc/meminfo、/proc/cpuinfo:内核级资源信息;
    • dstat、sar、pidstat、Glances:综合或进程级资源统计与趋势查看。
  • 使用思路:先用系统工具确认是否存在 CPU、内存、磁盘 I/O、网络 瓶颈,再回到 pgAdmin 做数据库层定位。

五 关键 SQL 与扩展检查清单

  • 查询活动与会话:
    • 查看当前活动连接与查询:
      • SELECT datname, pid, usename, state, query, query_start FROM pg_stat_activity;
    • 按状态统计会话数:
      • SELECT state, COUNT(*) FROM pg_stat_activity GROUP BY state;
  • 查询性能与负载:
    • 数据库级事务与缓存命中:
      • SELECT datname, xact_commit, xact_rollback, blks_hit, blks_read, tup_returned, tup_fetched FROM pg_stat_database;
    • 检查是否启用 pg_stat_statements(用于定位慢 SQL 与热点语句):
      • SELECT * FROM pg_available_extensions WHERE extname = ‘pg_stat_statements’;
  • 扩展状态一览:
    • SELECT extname, extversion, relocatable, schema, last_updated FROM pg_stat_extensions;
  • 维护建议:定期执行 VACUUM / ANALYZE,为高频查询字段建立合适索引,减少全表扫描。

0