我们有一个应用程序,大约有60,000台客户端机器在访问它。以前我们有一个分布式模型,但我们通过创建一个BO层并通过广域网将调用传到它,从而转移到SaaS。我们使用LINQ to Entities从BO层访问数据库。我们的多租户模型是联合的,因此由多个商店组成的“企业”位于不同的sql服务器上(每台服务器通常有大约200个“企业”)。
每个BO服务器都是双处理器8核,带有HT (32个逻辑)。IIS设置为最多有32个工作进程。
BO层工作得很好,因为每次调用都会提取与该企业关联的连接字符串,然后该连接字符串将与正确的数据库通信。我遇到的问题是,我们有1/4的客户端在15个BO服务器上,我注意到我们有到每个数据库服务器的3000+开放连接,而且还在不断增长。
你知道为什么它会这样增长吗?我应该在哪里设置让它重用连接(连接池似乎是打开的),以防止它像这样淹没每个数据库服务器?还有其他建议吗?
发布于 2013-10-23 22:17:50
这可能是纯粹的架构问题。
您总共有多少台数据库服务器?是否某些数据库服务器上的工作负载很重,而其他数据库服务器上的工作负载不重?
如果是这样,那么考虑如何将不同的企业划分到不同的数据库服务器可能会有所帮助。或者在重负荷的数据库服务器中对数据进行进一步分区。另一种技术是将企业的不同表垂直分区到不同的数据库,而不是跨垂直分区的表进行连接。
https://stackoverflow.com/questions/19469352
复制相似问题