暂无图片
PostgreSQL 差不多到400左右连接数, 机器内存就扛不住了, 正常吗?
我来答
分享
暂无图片 匿名用户
PostgreSQL 差不多到400左右连接数, 机器内存就扛不住了, 正常吗?

PostgreSQL 差不多到400左右连接数, 机器内存就扛不住了, 正常吗?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
农夫三拳

这个要具体情况具体分析了,

一条sql把机器搞死的也不是没见过

暂无图片 评论
暂无图片 有用 1
愤怒的蜗牛
2022-10-31
布衣
2022-10-31
在理
布衣
暂无图片

你的服务器能抗住就正常。你的服务器抗不住那就是不正常。。。

暂无图片 评论
暂无图片 有用 2
张sir

1、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
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏