如何知道与PostgreSQL的当前连接的确切总数?

时间:2019-04-22 04:36:55

标签: postgresql

我的Azure PostgreSQL服务器的总连接数为480。

我要通过执行以下SQL检查当前正在访问数据库的连接总数:

select * from pg_stat_activity;

我可以看到输出列表包括所有用户(超级用户,...),并且具有空闲和活动状态。那么检查当前连接总数是否正确?或者我应该排除“空闲”连接以确切了解结果?

非常感谢您

1 个答案:

答案 0 :(得分:2)

“空闲”连接是真实连接。因为Postgres没有任何内部执行程序池(如MySQL的线程池),所以任何“空闲”连接都可以处理任何命令。目前,“空闲”连接不需要太多的资源,但是在计算保存内存限制时(使用swap),也应该使用“空闲”连接进行计算-因为任何连接有时都可以是活动连接。

480个连接通常很多-数量很多的max_connections是10-20 x CPU内核。如果max_connection太高,那么work_mem就会太低,这可能会对性能产生负面影响,否则您的配置就不能避免过载。

share buffers + (max connection * work_mem * 2) + ram for operation system
              + ram for filesystem < RAM