Debian 上使用 pgAdmin 监控 PostgreSQL 性能
一 快速上手 pgAdmin 内置监控
二 关键 SQL 与内置视图
SELECT pid, usename, application_name, client_addr, query_start, state, query
FROM pg_stat_activity
WHERE state = 'active';
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid = <目标PID>;
-- 每秒事务数(需按时间窗口计算差值)
SELECT datname, xact_commit, xact_rollback
FROM pg_stat_database;
-- 缓存命中率 = blks_hit / (blks_hit + blks_read)
SELECT datname,
round(blks_hit::numeric / nullif(blks_hit + blks_read, 0) * 100, 2) AS hit_ratio
FROM pg_stat_database;
SELECT client_addr, state, sync_state, write_lag, flush_lag, replay_lag
FROM pg_stat_replication;
SELECT schemaname, tablename, seq_scan, idx_scan, n_tup_ins, n_tup_upd, n_tup_del
FROM pg_stat_all_tables
ORDER BY seq_scan DESC
LIMIT 20;
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
重启后在数据库中执行:CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
SELECT query, total_time, calls, mean_time
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;
三 慢查询与日志分析
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'mod' -- 记录 DDL/DML
log_min_duration_statement = 1000 -- 记录执行超过 1 秒的语句(单位毫秒)
sudo apt install pgbadger
pgbadger /var/log/postgresql/*.log -o /var/www/html/pg_report.html
报告包含 慢查询排名、错误统计、连接数趋势 等,便于长期分析与审计。四 长期监控与告警集成
五 监控落地与优化建议