由连接池已满引发的测试

同事买了阿里云四台服务器做负载均衡,连的Mysql数据库,访问量大时出现连接池已满的错误,经查购买数据库最大连接数是150...而.net默认最大100,所以4台服务器都连接就可能出现问题。关于mysql的连接字符串可参考以下网站:

https://www.connectionstrings.com/mysql-connector-net-mysqlconnection/

与此同时,我产生了一个疑问,程序何时会使用一个新的数据库连接?

起初我推测两个30秒的查询请求应该是两个连接,然而事实证明我错了...

开始测试(注意每次查询的内容要不一样):

页面有两个按钮A和B,A查询弄长点耗时30秒,B查询弄短点0秒

1.先点击B用时0秒,再点击A用时30秒,没有问题

2.先点击A,等一会点B,此时发现B速度变慢了,排到了A查询之后

3.A连点两下,感觉也是排队了

测试期间使用show PROCESSLIST可以看到程序一直使用的是一个连接,明显感觉到查询排队了。明明可以同时查询,为何要排队呢?有些不解,还有是否能够通过代码实现同时查询呢?请高手赐教。

居然没有新的数据库连接出现,于是我又推测应该是按客户端的端口号来使用连接的吧,再测一下:

1.浏览器1点击A按钮,浏览器2点击B,B变回0秒

2.浏览器1和2分别点击A按钮,使用命令可以看到建立了两个连接

最终推测结论:如果负载均衡每次都用新端口与IIS建立连接,那么查询就是并行的,连接池消耗也快。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖无疾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值