我的Azure PostgreSQL服务器的总连接数为480。
我要通过执行以下SQL检查当前正在访问数据库的连接总数:
select * from pg_stat_activity;
我可以看到输出列表包括所有用户(超级用户,...),并且具有空闲和活动状态。那么检查当前连接总数是否正确?或者我应该排除“空闲”连接以确切了解结果?
非常感谢您
答案 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