0

我们有一个应用程序,大约有 60,000 台客户端机器访问它。以前我们有一个分布式模型,但我们正在通过创建一个 BO 层并通过 WAN 调用它来迁移到 SaaS。我们使用 LINQ to Entities 从 BO 层访问数据库。我们的多租户模型是联合的,因此由多个商店组成的“企业”位于不同的 sql 服务器上(每台服务器通常有大约 200 个“企业”)。

每个 BO 服务器都是双处理器 8 核,具有 HT(32 个逻辑)。IIS 设置为拥有 32 个最大工作进程。

BO 层工作得很好,因为每次调用都会提取与该企业关联的连接字符串,然后与正确的数据库进行对话。我遇到的问题是我们有 1/4 的客户端和大约 15 台 BO 服务器,我注意到我们有 3000 多个开放连接到每个数据库服务器并且它还在增长。

知道为什么它会这样增长吗?我应该在哪里设置使其重用连接(连接池似乎已打开),以防止它像这样淹没每个数据库服务器?还有其他建议吗?

4

1 回答 1

0

它可能是纯粹的建筑学的东西。

您总共有多少台数据库服务器?某些数据库服务器上的工作负载问题是否很重,而其他数据库服务器上的工作量不是很大?

如果是这种情况,那么考虑如何将不同的企业分区到不同的数据库服务器可能会有所帮助。或者在负载较重的数据库服务器中进一步分区数据。另一种技术是在垂直分区表之间没有连接的情况下,将企业的不同表垂直分区到不同的数据库。

于 2013-10-23T14:17:49.713 回答