我们有azure sql server,连接超过40个并发用户时我们遇到错误。
超时已过期。在获得a之前经过了超时时间 从游泳池连接。这可能是因为所有人都集中了 正在使用连接并达到最大池大小。
在进行负载测试时,我们得到了错误。我们使用工具([http://www.datamanipulation.net/sqlquerystress/][1])直接执行存储过程。对于单个用户存储过程,将在1秒内返回结果。
azure的硬件详细信息是标准服务级别和s2(50DTU)性能级别。数据库大小为705 MB。
我们在本地电脑中恢复相同的数据库。本地我们使用的是SQL Server 2014快递版。使用此工具,我们已成功连接200个用户。
如何在azure中实现200个并发用户? 感谢您的宝贵意见。
答案 0 :(得分:3)
这些查询必须在SQL DB中运行足够长的时间才能使连接耗尽。查看sys.dm_exeC_requests和/或sys.dm_exec_connections以查看为40个用户测试打开的数量。慢查询也可能是因为您在S2层上遇到的资源限制。查看sys.resource_stats视图以查看是否达到了任何资源限制。如果是这种情况,扩展可能有助于解决您的问题。
确保明确打开和关闭您的连接,以便.Net可以管理您的连接
将连接字符串中的最大池大小设置为更大的值
答案 1 :(得分:0)
您的用户是否直接连接数据库(或许来自某个桌面客户端应用程序)?因为如果我们讨论支持200个并发用户的Web应用程序,这并不意味着您需要200个并发连接到数据库来为它们提供服务 - 很可能为1-2个用户提供1-2个连接。达到连接池限制几乎总是意味着,你只是不关闭你的连接(它们没有物理关闭,当你在SqlConnection上调用Close()时它们被返回到连接池并标记为可用。我不熟悉压力测试你正在使用的工具,但情况可能如此。