匿名用户PostgreSQL 差不多到400左右连接数, 机器内存就扛不住了, 正常吗?
PostgreSQL 差不多到400左右连接数, 机器内存就扛不住了, 正常吗?
我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户PostgreSQL 差不多到400左右连接数, 机器内存就扛不住了, 正常吗?
这个要具体情况具体分析了,
一条sql把机器搞死的也不是没见过
评论
有用 11、400个连接如果都是活动会话,即使是短平快的sql,那你的负载已经非常高了。
2、如果sql都是多表关联查询,大表扫描,那400个连接扛不住很正常。
3、重点分析下sql语句的执行情况。
评论
有用 0这个也要结合你环境的业务SQL去看的,看看执行较多的SQL类型有没有大量的sort,或者hash join等操作。因为本身一个SQL执行过程如果包含了多个这种操作的话,单个SQL的占用内存可能不仅仅是一个work_mem的大小,一个复杂的SQL可能用了好几倍的work_mem。例如一个SQL包含了两个sort的操作,work_mem设置为32MB。他可能占用了最多64MB内存,如果你业务并发一瞬间上来了。400个连接都执行同一类这种SQL,那么你可能一下就用了25GB的内存。而且也可能有少部分的SQL走的执行计划存在问题,直接一个两个SQL就导致占用了大量的内存,可以先根据内存占用情况看看是不是某种SQL的问题,再分析下执行计划里的操作哪一步会占用较多内存,这是和SQL相关的。除此之外VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等等这些操作也都是要使用内存的。也可以看一看数据库里这些维护操作的频率。
评论
有用 0
墨值悬赏