postgresql可以执行多少连接?

问题描述:

我有3个表,每次访问。我的PHP网页将请求发送到一个中间的基于C语言的层,然后将这些调用转移到postgresql。但是,当我从单个选项卡浏览时,所有记录都会正确提取。但是,当我从许多浏览器/选项卡发出更多请求时,至少有一半失败,并且作为其嵌入域,调试是真正的问题。我怀疑同时来自不同浏览器的数据库连接会被放入队列中,并且可能会发生错误。有没有人可以就这个生产问题转达你的看法?postgresql可以执行多少连接?

不要猜测,知道。

您可以让PostgreSQL记录连接和断开连接。它可能已经为您记录了一条错误消息。检查日志。

如果不知道这个“C”层正在做什么,很难说更多。您可能会发现连接池很有用。也许开始看pgbouncer

如果您没有从C层获取任何错误,请检查Postgresql日志文件以查看是否在该错误中出现错误。

我的初始猜测。将其:

一个)C层是越来越线程和同时与相同的连接做两件事情之间混淆连接。

或b)C层在完成它们时不会释放连接,因此您正在达到内存限制。

无论采用哪种方式,您都需要能够在发现错误之前找到该错误。

Postgresql本身将处理大量的并发连接,尽管您可能希望将它们合并以减少每个会话的设置/拆卸时间。