我们有一个应用程序,大约有60,000台客户端计算机访问它。以前我们有一个分布式模型,但我们通过创建一个BO层并通过WAN调用它来转向SaaS。我们使用LINQ to Entities从BO层访问数据库。我们的多租户模型是联合的,因此包含多个商店的“企业”位于不同的sql服务器上(每台服务器通常有大约200个“企业”)。
每个BO服务器都是具有HT(32个逻辑)的双处理器8核心。 IIS设置为具有32个最大工作进程。
BO层工作得非常好,因为每次调用都会拉出与该企业关联的连接字符串,然后与正确的数据库进行通信。我遇到的问题是我们有1/4的客户端和大约15个BO服务器,我注意到我们有3000多个打开的连接到每个数据库服务器及其不断增长。
知道它为什么会像这样成长吗?我应该设置什么使它重新使用连接(连接池似乎打开),这将使它不会像这样淹没每个数据库服务器?还有其他建议吗?
答案 0 :(得分:0)
这可能是纯粹的建筑事物。
您总共拥有多少台数据库服务器?关于工作负载的问题在某些数据库服务器上是否很重要而在其他服
如果是这种情况,那么可能考虑如何将不同的企业划分到不同的数据库服务器将有所帮助。或者在重载数据库服务器中进一步分区数据。另一项技术是将企业的不同表格垂直分区到不同的数据库,但没有跨垂直分区表的连接。