首页 新闻 会员 周边

使用ado.net连接mysql连接池会超出设定的值

0
悬赏园豆:20 [已解决问题] 解决于 2020-06-25 21:30

最近遇到一个问题,在阿里云买了6台ECS服务器,在IIS上部署webapi应用程序,数据库用的是阿里云的rds mysql,webapi里面连接数据库的字符串都是带有 

 Pooling=true;Min Pool Size=200;Max Pool Size=200; 

这样设置理论上一个webapi应用不会超过200个连接数了,6台机器不会超过1200个连接数,但是通过阿里云数据库的后台监控会发现机器上的连接数也会超过200,6台机器总的连接数会超过1200,而且有时候到达6000以上,这个时候数据库就基本上挂了,园子里有人遇到过这种情况吗?

猴哥aiyy的主页 猴哥aiyy | 初学一级 | 园豆:3
提问于:2020-06-06 23:57
< >
分享
最佳答案
0

该用using用,该Dispose用,避免连接在等待超时后才被动释放,影响池使用。

收获园豆:20
花飘水流兮 | 专家六级 |园豆:13560 | 2020-06-08 21:03

也注意服务端自动释放参数设置(预计应该有)。

花飘水流兮 | 园豆:13560 (专家六级) | 2020-06-08 21:04
其他回答(3)
0

把Min Pool Size和Max Pool Size改大写呢

龙行天涯 | 园豆:1794 (小虾三级) | 2020-06-08 14:42

试过按照Pooling=true;Min Pool Size=200;Max Pool Size=200; 是有效的,一直在观察实时连接数,6台服务器都是200,说明设置是有效的,但是有时候就会超过,而且会到700 800以上

支持(0) 反对(0) 猴哥aiyy | 园豆:3 (初学一级) | 2020-06-08 14:47
0

你的6台机器上都是只有一个webapi的实例连接db吗?

Timetombs | 园豆:3954 (老鸟四级) | 2020-06-08 14:50

是的

支持(0) 反对(0) 猴哥aiyy | 园豆:3 (初学一级) | 2020-06-08 14:52

@爱杨洋真是太好了: 超过200时都是什么连接状态?正常的ESTABLISHED?

支持(0) 反对(0) Timetombs | 园豆:3954 (老鸟四级) | 2020-06-08 15:02

@blackheart: 这个倒是没注意,但是从阿里后台看到的连接数确实超过200

支持(0) 反对(0) 猴哥aiyy | 园豆:3 (初学一级) | 2020-06-08 15:07

@爱杨洋真是太好了: 可以在客户端统计下看看,都是什么状态。

支持(0) 反对(0) Timetombs | 园豆:3954 (老鸟四级) | 2020-06-08 15:48

@blackheart: 客户端有工具统计吗

支持(0) 反对(0) 猴哥aiyy | 园豆:3 (初学一级) | 2020-06-08 15:49

@爱杨洋真是太好了: netstat,windows和linux都是这个工具。

支持(0) 反对(0) Timetombs | 园豆:3954 (老鸟四级) | 2020-06-08 15:51
0

暂时没有找到问题

猴哥aiyy | 园豆:3 (初学一级) | 2020-06-25 21:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册