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

推荐订阅源

U
Unit 42
博客园 - 司徒正美
V
Visual Studio Blog
博客园 - 【当耐特】
T
Tailwind CSS Blog
美团技术团队
博客园 - 叶小钗
Jina AI
Jina AI
宝玉的分享
宝玉的分享
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC

博客园 - 鹅是程序猿

国内CMS建站系统行业:从工具到数字化平台的转型之路 什么是低代码?国内主流低代码平台产品介绍 企业微信授权开发修改Windows hosts模拟外网域名的教程 PageAdmin CMS实现后台内网和前台外网分离部署的教程 2026主流的自助建站系统比较 外贸独立站用什么建站系统好 记一次火狐浏览器被www.2345.com恶意劫持主页处理过程。 2026常用的网页制作软件大全 5个常用的网页制作软件和建站系统,省时又省力! 网站建设主流的4款CMS建站系统对比,WebpyCMS才是轻量级的选择 PageAdmin CMS建站系统承载千万级内容和高并发的架构讲解 2026三款顶尖的CMS建站系统对比!选哪个最香? 2026支持多站点的站群CMS系统推荐 PageAdmin和简道云,明道云、宜搭等低代码平台的区别 2026年做网站建站工具全面对比分析,SaaS平台、开源系统与新兴工具的选择策略 PageAdmin,Wordpres,Drupal三大顶级CMS内容管理系统的区别 2026做网站用什么建站软件或平台?企业站怎么搭建? 常用的cms内容管理系统和建站软件,看看你用过几个? 2026年主流CMS建站工具深度解析与选型指南 两款主流顶尖级的CMS建站工具软件对比及选型技巧 2026集团网站建设指南及CMS站群软件系统的选型 推荐4款功能强大的CMS建站系统 2026主流建站软件工具大比拼,哪个适合你? PageAdmin CMS建站系统启用双因子身份认证的教程 国内外主流CMS建站系统及其特点总结 swiper不同版本多行滚动的代码 支持即时通讯聊天功能的cms内容管理系统有哪些 2026支持站群集约化的cms建站系统分享 PageAdmin CMS推出第五代内容管理系统,重新定义新一代的数字化平台标杆典范 cms建站系统趋势:PageAdmin的平台化和Wordpress的插件化谁是网站建设未来方向?
postgressql提示sorry, too many clients的解决办法
鹅是程序猿 · 2026-03-24 · via 博客园 - 鹅是程序猿

最近在本地地市pgsql,提示sorry, too many clients,问题就自己一个人使用,默认的postgresql.conf 中的 max_connections已经设为100了,奇怪,难道pgsql不会自动释放么?

顺便贴一下查看连接和配置连接数的教程。

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

1. 核心限制参数

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

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

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

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

A. 查看最大连接数限制

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

SELECT count(*) FROM pg_stat_activity;

C. 查看服务监听的端口

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. 如何修改限制

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

  1. 找到配置文件(一般是 postgresql.conf ):SHOW config_file;
  2. 修改 max_connections = 500(根据服务器内存调整),每个连接大约需要 4MB 到 10MB 的内存(这取决于 PostgreSQL 的版本和配置)例如,在 PostgreSQL 12 中,每个连接大约需要 4MB 的内存。如果你的服务器有足够的 RAM,增加 max_connections 是安全的
  3. 必须重启服务 才能生效: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 官方文档 了解更多性能调优细节。