1

我对 .Net Application Scalability 了解不多,我相信一些 SO 用户对此了解更多,可以帮助我。

我知道过去已经提出了一些关于连接池溢出的问题。大多数时候,它最终会谈论“如何正确关闭连接”(我强烈认为这不是我的情况,因为我所有的 LinqToSQL 查询都是Disposed相应地使用这种代码):

using (MyDataContext context = new MyDataContext())
{
    return (from o in context.t_Orders
            where o.order_id.Equals(_id)
            select o).ToList();
}

此外,我读过的大多数答案最终都说“一个网站不应该需要很多并发连接,即使对于数百个用户也是如此”。但我说的是一个庞大的 WebApp,有超过 500 个并发用户(他们可能在相同的 2 分钟范围内登录)。此外,每个页面访问都记录在一个表中(因此考虑多次读取和插入)。

现在,我想知道默认MaxPoolSize的 100 个连接是否足够或可能存在风险?如果它可能代表任何风险,我应该如何修改连接池设置?我是否应该MaxPoolSize将并发用户增加到一定百分比。会不会有什么负面影响?或者我应该增加ConnectionTimeout以防止任何InvalidOperationException

顺便说一句,我完全红了 William Vaughn 的文章“ .NET 连接池救生员 - 防止可能淹没您的应用程序的池溢出”,但我仍然很担心。

4

1 回答 1

1

并发用户没有任何意义。并发请求更有意义。您会同时处理 100 多个请求吗?在那种情况下,我肯定会增加最大池大小,因为增加设置本身没有成本。

您可以放心地将其增加到至少 250。如果您想做更多,您需要测试(或重新设计应用程序)。

于 2012-12-05T21:54:03.307 回答