psql: could not fork new process for connection: Resource temporarily unavailable

业务无法和数据库建立连接,上去查看,切换用户就报错
su - postgres
su: cannot set user id: Resource temporarily unavailable
看资源不紧张,怀疑内核参数设置进程数有问题

问题如下:


tail -n10 /etc/security/limits.conf 

# End of file
* soft    nofile  131072
* hard    nofile  131072
* soft    nproc   131072
* hard    nproc   131072
* soft    core    unlimited
* hard    core    unlimited
* soft    memlock 50000000
* hard    memlock 50000000

原来是以下文件没有修改,还是1024
cat  /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     1024
root       soft    nproc     unlimited


查看postgres用户进程,已经跑满

 ps -elf | grep  postgres | wc -l
 1025

注意:/etc/security/limits.d/90-nproc.conf会覆盖/etc/security/limits.conf文件的配置

解决方案:

修改/etc/security/limits.d/90-nproc.conf文件
和/etc/security/limits.conf一致,都为131072,修改文件需要重启生效

所以,还要临时修改进程的资源限制,查到postgresql主进程号为2161

cd /proc/2161/
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            10485760             unlimited            bytes     
Max core file size        unlimited            unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             1024                 1024               processes 
Max open files            131072               131072               files     
Max locked memory         51200000000          51200000000          bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       126260               126260               signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us 

临时修改Max processes为131072
echo -n "Max processes=131072:131072" > limits
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值