一 问题描述
有同事反馈postgre数据库连不上了,报错:
我ps -ef | grep postgres | wc -l 看到有1024个进程,且执行su - postgres报错:
su: cannot set user id: Resource temporarily unavailable
lsof -u 用户名 | wc -l #查看进程数
二 出错原因
postgre进程数超过了操作系统对用户创建的进程数的限制(默认1024)
三 解决办法
① 修改/etc/security/limits.d/90-nproc.conf,调大nproc的值,示例:
添加一行:
postgres soft nproc 10240
② 重启postgre
/*
有一次oracle也遇到了这个报错,后来通过调整/etc/security/limits.conf里oracle用户的
soft nofile的值,然后执行sysctl -p好的。
当时oracle还有个故障表现是:
ORA-12536:TNS:操作可能阻塞
*/