出于某种原因,postgres产生了> 700个postmaster进程来处理数据库请求,postgres日志文件如果在客户端连接上有'意外的EOF','不完整的启动包'和'抱歉,已经有太多的客户'。 netstat告诉我,所有打开的连接都是本地的,我很确定从内部来自postgres。 这个特定的实例在过去230天左右一直运行良好,没有任何改变configuration的明智之举。 任何想法,我应该试图解决这个问题?
这是我第一次诊断这样的问题,所以如果有什么步骤可以帮助我们缩小问题的范围。
更新:原来有一个远程机器上运行的tomcat实例,试图通过ssh隧道连接到postgres导致所有地狱摔打。
Postgres为每个连接产生一个postmaster。 这是它应该工作的方式。 如果你正在产生大量的postmaster进程,你就会发起大量的连接,如果这不是你所期望的,你可能会有一个坏的/坏的应用程序创build一个混乱(一个常见的例子:一个不断重新初始化数据库连接,但从来没有closures它,你会泄漏每个连接初始化会话)。
如果这是最近的话,从“什么改变?”开始 如果没有,开始查看与Postgres交谈的所有应用程序(大致按照使用量),然后查看是否可以find坏苹果。
Re:你的日志消息 –
unexpected EOF on client connection incomplete startup packet sorry, too many clients already postgresql.conf增加m ax_connections 。