我们有一个应用程序,大约有60,000个客户机访问它。之前我们有一个分布式模型,但我们正在通过创建一个BO层并通过广域网接入呼叫来转向SaaS。我们使用LINQ to Entities从BO层访问数据库。我们的多租户模型是联合的,因此包含多个商店的“企业”位于不同的sql服务器上(每个服务器通常具有大约200个“企业”)。企业规模BO层到SQL Server MAX连接
每个BO服务器都是带有HT(32个逻辑)的双处理器8核。 IIS设置为拥有最多32个工作进程。
BO层工作的非常好,因为每个调用都会提取与该企业相关的连接字符串,然后与正确的数据库通信。但我遇到的问题是,我们有1/4的客户端和大约15个BO服务器,我注意到我们有3000多个打开的连接到每个数据库服务器,并且它在不断增长。
任何想法为什么它会像这样增长?我应该设置什么地方重新使用连接(连接池似乎已开启),以防止它像这样泛滥每个数据库服务器?还有其他建议吗?
Hi Lex,我最担心的问题是开放式连接太多,并且开始严重影响性能。这些服务器非常健壮,但是我们现在正在从所有BO服务器接近5000多个打开的数据库连接。我试图找出架构上是否有更好的方法来解决这个问题。 – Allen
然后,您可以考虑使用一些缓存解决方案,无论是本地缓存还是分布式缓存网格缓存。这可以通过过滤一些经常访问的数据来减少数据库连接 –