2

我们正在运行一个非常重连接、重插入的 postgres 数据库(以至于我们应该做一些连接池,但现在没有时间了)。

在进行一些故障排除时,我使用 netstat 向我显示与 postgres 的连接数。我通常会看到比我在 postgres.conf 文件中指定的更多内容(通过 max_connections)。

即使我将 max_connections 设置为 1000,我也会通过 netstat 看到 1400-1600 个连接。

有人知道发生了什么吗?这到底是怎么发生的?

对此的任何见解都会很棒。

4

2 回答 2

2

这些连接是否可能已经关闭?例如,Windows 不会立即关闭连接,但会将其状态更改为“TIME_WAITING.

所以连接显示在 netsat 中,但实际上是关闭的。

只有那些显示为“已建立”的才是“实时”连接。

顺便说一句:您可以简单地在 PostgreSQL 服务器前面放置一个连接池,而无需更改您的应用程序。pgPool(或 pgBouncer)将假装它们是应用程序的真实 PostgreSQL 服务器,并将“在其背后”进行池化

于 2010-09-03T18:01:04.300 回答
0

使用连接池。超过 1000 个连接会显着降低数据库速度,即使对于 1000 个连接,您也需要一些具有大量内核和 RAM 的 $$$$$ 硬件。使用连接池效率更高。

于 2010-09-03T18:23:45.723 回答