最近遇到一个问题,在阿里云买了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以上,这个时候数据库就基本上挂了,园子里有人遇到过这种情况吗?
该用using用,该Dispose用,避免连接在等待超时后才被动释放,影响池使用。
也注意服务端自动释放参数设置(预计应该有)。
把Min Pool Size和Max Pool Size改大写呢
试过按照Pooling=true;Min Pool Size=200;Max Pool Size=200; 是有效的,一直在观察实时连接数,6台服务器都是200,说明设置是有效的,但是有时候就会超过,而且会到700 800以上
你的6台机器上都是只有一个webapi的实例连接db吗?
是的
@爱杨洋真是太好了: 超过200时都是什么连接状态?正常的ESTABLISHED?
@blackheart: 这个倒是没注意,但是从阿里后台看到的连接数确实超过200
@爱杨洋真是太好了: 可以在客户端统计下看看,都是什么状态。
@blackheart: 客户端有工具统计吗
@爱杨洋真是太好了: netstat,windows和linux都是这个工具。
暂时没有找到问题