postgresql连接报错:could not fork new process for conn

前端之家收集整理的这篇文章主要介绍了postgresql连接报错:could not fork new process for conn前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

虽然数据库设置了最大连接数是2000,但是当连接数达到1000时。再也不能接受连接,而是报错:could not fork new process for connection: Resource temporarily unavailable。

这个错误的原因是操作系统单个用户的进程数量限制。报错,但不用记录到PG的日志中。

例如

@H_301_8@[postgres@localhost ~]$ ps -ef | grep postgres

@H_301_8@postgres 2704 1 0 16:10 pts/1 00:00:00 /usr/local/pgsql941/bin/postgres

@H_301_8@.....

主进程号是2704

@H_301_8@# cd /proc/2704

@H_301_8@# cat limits

@H_301_8@Limit Soft Limit Hard Limit Units

@H_301_8@Max cpu time unlimited unlimited seconds

@H_301_8@Max file size unlimited unlimited bytes

@H_301_8@Max data size unlimited unlimited bytes

@H_301_8@Max stack size 10485760 unlimited bytes

@H_301_8@Max core file size unlimited unlimited bytes

@H_301_8@Max resident set unlimited unlimited bytes

@H_301_8@Max processes 1024 131072 processes

@H_301_8@Max open files 131072 131072 files

@H_301_8@Max locked memory 51200000000 51200000000 bytes

@H_301_8@Max address space unlimited unlimited bytes

@H_301_8@Max file locks unlimited unlimited locks

@H_301_8@Max pending signals 256607 256607 signals

@H_301_8@Max msgqueue size 819200 819200 bytes

@H_301_8@Max nice priority 0 0

@H_301_8@Max realtime priority 0 0

@H_301_8@Max realtime timeout unlimited unlimited us

可以看到Max processes限制是1024

@H_301_8@# echo -n "Max processes=131072:131072" > limits

@H_301_8@# cat limits

@H_301_8@Limit Soft Limit Hard Limit Units

@H_301_8@Max cpu time unlimited unlimited seconds

@H_301_8@Max file size unlimited unlimited bytes

@H_301_8@Max data size unlimited unlimited bytes

@H_301_8@Max stack size 10485760 unlimited bytes

@H_301_8@Max core file size unlimited unlimited bytes

@H_301_8@Max resident set unlimited unlimited bytes

@H_301_8@Max processes 131072 131072 processes

@H_301_8@Max open files 131072 131072 files

@H_301_8@Max locked memory 51200000000 51200000000 bytes

@H_301_8@Max address space unlimited unlimited bytes

@H_301_8@Max file locks unlimited unlimited locks

@H_301_8@Max pending signals 256607 256607 signals

@H_301_8@Max msgqueue size 819200 819200 bytes

@H_301_8@Max nice priority 0 0

@H_301_8@Max realtime priority 0 0

@H_301_8@Max realtime timeout unlimited unlimited us

不要直接编辑这个文件,限制问题解决了,不会再报资源不足的错误.

如果需要重启也生效,则需要更改文件:/etc/security/limits.conf 和 /etc/security/limits.d/90-nproc.conf 这两个文件都有对最大进程数的限制。具体两个如何配合使用,还请大神指点。我是把两个文件的限制都改成一样的,重启生效。

猜你在找的Postgre SQL相关文章