You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启log_connection后Postgres日志大量unknown连接记录原因查询

核心原因

你遇到的现象是应用端使用无复用的短连接访问PostgreSQL导致的,结合你的配置和日志可以完全确认:

  • 你开启了log_connections参数,所以PostgreSQL会把每一次连接请求都记录到日志中,这是大量日志生成的前提
  • 从第二部分日志可以看到,每个连接的会话时长仅10~60毫秒,连接刚完成授权就立刻断开,没有任何SQL执行的时间,说明应用每次发起数据库操作都会新建一个独立连接,操作完成立即关闭,完全没有连接复用逻辑
  • 单日45万+的连接记录完全符合短连接的流量特征,这类场景会导致数据库和应用服务器都产生大量TCP TIME_WAIT连接,浪费大量系统资源在连接建立、销毁的流程上,严重影响业务性能。

验证方法

你可以登录IP为192.168.7.61的应用服务器,执行ss -ant | grep :5432(或netstat命令)查看TCP连接状态,如果TIME_WAIT状态的连接数远高于ESTABLISHED状态的连接数,即可100%确认短连接问题。


解决方案

  • 最优方案是在应用侧配置数据库连接池,根据业务实际并发量设置合理的最小空闲连接、最大连接数参数,实现连接复用,从根源解决短连接问题。不同语言生态有成熟的连接池组件可选,比如Java生态的HikariCP、Druid,Python生态的SQLAlchemy连接池、DBUtils,PHP生态的PDO持久连接等。
  • 如果应用侧暂时无法调整代码,可以在应用和PostgreSQL之间部署PgBouncer连接池中间件,代理所有数据库连接请求,由中间件实现连接复用,降低数据库侧的连接开销。
  • 问题排查完成后如果不需要保留所有连接日志,可以将PostgreSQL的log_connections参数调整为off,避免日志占用过多磁盘空间。

内容的提问来源于stack exchange,提问作者supersantos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:48:02