我们正在运行一个连接繁重、插入繁重的postgres数据库(以至于我们应该做一些连接池,但现在没有时间)。
在进行一些故障排除时,我使用netstat来显示有多少个连接到postgres。我通常会看到比我在postgres.conf文件(通过max_connections)中指定的内容更多的内容。
即使我将max_connections设置为1000,我也可以通过netstat看到1400-1600个连接。
有人知道这是怎么回事吗?这到底是怎么发生的呢?
任何关于这方面的见解都会很棒。
发布于 2010-09-04 02:01:04
有没有可能这些连接已经关闭?例如,Windows不会立即关闭连接,但它会将连接状态更改为"TIME_WAITING“。
因此,这些连接显示在netsat中,但实际上是关闭的。
只有那些显示为“已建立”的连接才是“活动”连接。
顺便说一下:您可以简单地在PostgreSQL服务器前面放置一个连接池,而无需更改您的应用程序。pgPool (或pgBouncer)将假装它们是应用程序的一个真正的PostgreSQL服务器,并“在其背后”进行池化
发布于 2010-09-04 02:23:46
使用连接池。超过1000个连接将显着降低数据库速度,即使是1000个连接,也需要一些具有大量内核和内存的$$$$$硬件。使用连接池要高效得多。
https://stackoverflow.com/questions/3638174
复制相似问题