惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
爱范儿
爱范儿
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 叶小钗
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
博客园 - 司徒正美
博客园 - 【当耐特】
IT之家
IT之家

博客园 - 一贴灵

企业级数据治理体系落地全指南 claude code 快速安装 从训练到上线:Qwen3-0.6B + LoRA FastAPI 推理服务部署实战 Qwen3-0.6b模型微调 无显卡也能微调大模型:Qwen3-0.6B + QLoRA 低配实战全记录 DOCKER 学习笔记 关于企业自建AI Qwen-Agent是一个开发框架 python 换源方法 qwen3-0.6B初探 设备虐我千百遍,AI待我如初恋 蓝凌OA流程附件 蓝凌OA 流程管理数据结构字典(km_review_main) Windows 包管理器:chocolatey 配置 npm 国内镜像(重要!) OpenTalking 负责实时数字人编排 readme pip install -e ".[dev]"的文件在pyproject.toml或 setup.py​ 里 CC SWITCH配置百练的token plan给 claude pgsql 带转义符的更新,$$ '更新内容'$$ 新手提效必看!Claude Code只需这九个Skills(转) 技术要用来向善:水印机机 与盲水印 另类文件备份方法 转:PostgreSQL向量检索:pgvector入门指南 设置pip全局镜像源(国内加速) Chroma数据库入门到进阶教程(转) pip install 使用国内镜像安装加快速度 调整指标达成插入yjlx表的sql OpenClaw 的 select channel中没有直接显示微信选项怎么办? openrouter 免费API-KEY hermes安装笔记
查询 PostgreSQL 当前连接数的常用方法
一贴灵 · 2026-02-05 · via 博客园 - 一贴灵

以下是查询 PostgreSQL 当前连接数的常用方法,按场景分类整理:

🔹 方法 1:查询当前总连接数(最常用)

SELECT COUNT(*) AS current_connections 
FROM pg_stat_activity;

🔹 方法 2:按数据库分组统计连接数

SELECT 
    datname AS database_name,
    COUNT(*) AS connection_count
FROM pg_stat_activity
GROUP BY datname
ORDER BY connection_count DESC;

🔹 方法 3:按用户分组统计连接数

SELECT 
    usename AS username,
    COUNT(*) AS connection_count
FROM pg_stat_activity
GROUP BY usename
ORDER BY connection_count DESC;

🔹 方法 4:区分活跃/空闲连接

SELECT 
    state,
    COUNT(*) AS count
FROM pg_stat_activity
GROUP BY state
ORDER BY count DESC;
  • active:正在执行查询
  • idle:连接空闲(事务已结束)
  • idle in transaction:事务中但无操作(需警惕长事务)
  • idle in transaction (aborted):事务中发生错误

🔹 方法 5:查看连接上限及使用率

SELECT 
    current_setting('max_connections') AS max_connections,
    (SELECT COUNT(*) FROM pg_stat_activity) AS current_connections,
    ROUND(
        100.0 * (SELECT COUNT(*) FROM pg_stat_activity) 
        / current_setting('max_connections')::int,
        2
    ) AS usage_percent;

🔹 方法 6:命令行快速查看(psql)

# 总连接数
psql -c "SELECT COUNT(*) FROM pg_stat_activity;"

# 详细列表(含数据库、用户、状态)
psql -c "SELECT pid, usename, datname, state, query FROM pg_stat_activity;"

🔹 ⚠️ 注意事项

  1. 权限要求:普通用户只能看到自己的连接,需 pg_read_all_stats 角色或超级用户权限查看全部连接。
  2. 连接泄漏排查
    -- 查找空闲超过 10 分钟的连接(可能泄漏)
    SELECT pid, usename, datname, state, query_start,
           NOW() - query_start AS idle_time
    FROM pg_stat_activity
    WHERE state = 'idle' 
      AND NOW() - query_start > INTERVAL '10 minutes'
    ORDER BY idle_time DESC;
    
  3. 终止异常连接(谨慎操作):
    SELECT pg_terminate_backend(pid) 
    FROM pg_stat_activity 
    WHERE state = 'idle' 
      AND NOW() - query_start > INTERVAL '1 hour';
    

🔹 补充:监控建议

  • 将连接数监控纳入 Prometheus + Grafana(使用 pg_stat_activity 指标)
  • 设置告警阈值(如连接数 > max_connections * 0.8
  • 应用层使用连接池(如 PgBouncer)避免连接数耗尽

💡 您当前配置的 max_connections = 500(根据您上传的配置文件),建议日常使用保持在 70% 以下,预留应急空间。