postgressql提示sorry, too many clients的解决办法

简介: 本地测试PgSQL集群时频现“too many clients”错误,主因是应用端连接池(各设100)叠加超出了PostgreSQL的max_connections限制(默认100)。PgSQL不会自动回收空闲连接,需靠连接池或超时机制管理。附实用命令:SHOW max_connections;SELECT count(*) FROM pg_stat_activity;SHOW port;及OS级ulimit和端口范围检查。

最近在本地测试一个集群系统,用的pgsql,总是提示sorry, too many clients,明明就几个人再用,默认的postgresql.conf 中的 max_connections已经设为100了,后来排查发现每个集群的sql字符串的连接池都设置为100,导致超过了sql实例的max_connections配置,所以报错,那为什么pgsql不自动回收这些进程呢?

顺便贴一下查看连接和配置连接数的教程,方便后续查看

postgres标准全称PostgreSQL,而psql通常指其命令行客户端。

1. 核心限制参数

PostgreSQL 的连接数限制主要由配置文件 postgresql.conf 中的 max_connections 参数决定。

默认值:通常为 100。
理论上限:受操作系统资源(如文件描述符限制 ulimit)和内存大小限制。通常建议通过 连接池(如 PgBouncer) 来处理成千上万的并发请求,而不是直接调大该参数。

2. 如何查询当前端口和连接限制

可以通过 SQL 命令行工具(如 psql)执行以下指令来获取生产环境下的实时配置:

A. 查看最大连接数限制

SHOW max_connections;

B. 查看当前已使用的连接数

SELECT count(*) FROM pg_stat_activity;

C. 查看服务监听的端口

SHOW port;

D. 获取详细的连接槽位信息(按用户/数据库统计)

SELECT datname, usename, count(*) 
FROM pg_stat_activity 
GROUP BY datname, usename;

3. 操作系统层面的限制

即便 PostgreSQL 设置了很高的 max_connections,如果操作系统层面的端口范围或文件句柄不足,也会导致连接失败。

可用端口范围(针对客户端连接):
在 Linux 上查看:

cat /proc/sys/net/ipv4/ip_local_port_range

最大文件打开数:
查看当前进程限制:

ulimit -n

4. 如何修改限制

若需增加连接上限,请遵循以下步骤:

找到配置文件(一般是 postgresql.conf ):SHOW config_file;。
修改 max_connections = 500(根据服务器内存调整),每个连接大约需要 4MB 到 10MB 的内存(这取决于 PostgreSQL 的版本和配置)例如,在 PostgreSQL 12 中,每个连接大约需要 4MB 的内存。如果你的服务器有足够的 RAM,增加 max_connections 是安全的
必须重启服务 才能生效

sudo systemctl restart postgresql。

问题:执行”SHOW config_file;“,报错信息“SQL Error [42501]: ERROR: must be sysdba or a member of pg_read_all_settings to examine "config_file"”。

“最小权限原则”更安全,可以尝试如下操作。

-- 使用超级用户(通常是 postgres)执行

GRANT pg_read_all_settings TO 你的用户名;

提示:如果你的并发需求超过 500-1000,强烈建议在应用和数据库之间部署 PgBouncer。它能显著降低端口压力并提高资源利用率。你可以通过 PostgreSQL 官方文档 了解更多性能调优细节。

相关文章
|
6月前
|
人工智能 Cloud Native
AI 普及趋势下国内 CMS 建站系统发展前景分析
国内CMS正加速AI化,从单点功能迈向全流程融合。未来3–5年将呈现五大趋势:AI原生创作、数据+AI双驱动运营、智能对话交互、云原生AI基座、普惠下沉普及。一些cms厂商已落地大模型集成与低代码AI平台,推动建站工具升级为“数字内容大脑”。
446 1
|
5月前
|
自然语言处理 运维 安全
2026支持站群集约化的cms建站系统分享
本文介绍5款原生支持站群集约化的CMS系统:PageAdmin(政务/高校首选,信创适配强)、Drupal(开源灵活,多语言佳)、AEM(高端DXP,适合跨国集团)、PhpCMS(国产轻量,百站内适用)和禅知(MVC架构,专注外贸多语言)。聚焦统一平台、安全、管理与服务,助力降本增效、提升体验。
517 5
|
6月前
|
弹性计算 安全 Linux
2026阿里云建站教程:从购买ECS到部署PageAdmin CMS,完整步骤+踩坑记录
本文分享 2026 年阿里云搭建 PageAdmin 网站全流程,含购服务器、域名、备案、部署步骤,总花费 134 元耗时约 15 天,并总结 5 个常见问题及解决办法。
1016 1
|
9月前
|
人工智能 Rust 运维
这个神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
加我进AI讨论学习群,公众号右下角“联系方式”文末有老金的 开源知识库地址·全免费
11055 22
|
6月前
|
人工智能 前端开发 数据可视化
CMS内容管理系统的发展历史及趋势分析
CMS历经五代演进:从90年代静态HTML发布,到2000年动态数据库管理;2010年响应式多端适配;2015年无头架构解耦内容与展示;至2023年第五代,融合低代码、BI与AI大模型,实现智能一体化协同。技术跃迁映射互联网发展脉络。
437 1
|
5月前
|
JSON 前端开发 Linux
PageAdmin 统一身份认证平台 - 接入实施步骤
基于OAuth 2.0的统一身份认证平台,为多应用集群提供单点登录与统一授权。支持第三方应用接入及集中权限配置,提供标准API接口实现系统对接。
357 0
|
5月前
|
存储 JSON 前端开发
PageAdmin平台化:多业务系统动态构建技术
基于元数据驱动与可视化编排,实现多业务系统隔离托管。通过数据模型设计器、页面渲染引擎及BPMN流程引擎,支持零代码快速构建工单、CRM等系统,解决数据孤岛问题。
260 0
|
5月前
|
关系型数据库 MySQL Linux
如何用PageAdmin CMS和阿里云快速搭建一个网站?完整步骤教程
本教程详解如何使用PageAdmin CMS搭配阿里云服务器,从购买域名、配置环境到部署上线,附完整步骤与常见问题解决。
417 0
|
7月前
|
机器学习/深度学习 人工智能 数据可视化
2026年cms建站系统行业的未来发展趋势及挑战分析
AI浪潮下,传统CMS加速转型:一是智能化升级,借力大厂API实现内容识别、创作与审批;二是无头架构普及,支持多端一致发布,提升部署效率;三是低代码集成创新,打通数据孤岛,构建统一数字平台。国产CMS正引领行业新方向。(239字)
297 13