一个伪linux粉丝的blog

  1. 首页
  2. unix/linux
  3. 正文

pq: sorry, too many clients already

12月 29, 2020 143点热度 0人点赞 0条评论

1. 问题描述

某客户反馈 系统报内部错误, pq sorry too many clients already,影响客户使用流水线。

 

2. 原因分析

看提示很明显,pq 数据库连接满了,于是查看数据库连接进程。

查看最大连接数,为100(即默认值)

show max_connections;

查看  当前活动连接数 ,显示为 104,超了4个

select count(1) from pg_stat_activity;

查看数据库剩余连接数:

select max_conn-now_conn as resi_conn from (select setting::int8 as max_conn,(select count(*) from pg_stat_activity) as now_conn from pg_settings where name = 'max_connections') t;

同样得到 -4 的超出结果

再查看一下有那些会话

select datid,datname,pid,usesysid,usename,application_name,client_addr,client_port,state,query from pg_stat_activity;

深层原因

上周客户增加了 builder节点,这里runtime就会增加20个会话,所以很容易超100。

 

3. 解决方法

1,临时踢一下idle的会话,很快又超过了100了,无效。

select pg_terminate_backend(pid) from pg_stat_activity where state=’idle’;

2,修改最大连接数,重启pq,问题解决。

找到pg容器的配置文件,一般在 normal节点。

修改 /data/postgres/postgresql.conf 里面的 max_connections 为200

4. 后续改进

1,增加builder节点时考虑同时增加pg连接数

2,提前修改pg默认连接数

相关文章:

  1. mysql学习笔记-转
  2. k8s-set-capabilities-for-a-container
  3. SLUB: Unable to allocate memory on node -1
  4. How to cleanup Postgres WAL files
标签: postgres
最后更新:2月 2, 2021

wanjie

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

归档
分类
  • network / 321篇
  • Uncategorized / 115篇
  • unix/linux / 108篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 12篇
  • 美剧 / 3篇
  • 美图共赏 / 20篇
  • 英语学习 / 3篇
标签聚合
ldap gitlab Google Voice squid nexus Linux kernel dreamhost VPS Opera Mini Google 虚拟主机 Opera Mobile 职责 debian Ubuntu google-chrome k8s 网站运营 docker d90 中国电信 mysql 网通 RSYNC 邮件归档 泰国 Nginx 数码相机 wget

COPYRIGHT © 2008-2022 wanjie.info. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang