ASP.Net MaxPoolSize配置问题

时间:2012-12-05 15:53:50

标签: c# asp.net .net web-applications connection-pooling

我对.Net应用程序可伸缩性了解不多,我确信一些SO用户对此有更多的了解,可以帮助我。

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

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

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

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

顺便说一句,我完全是威廉·沃恩的文章“The .NET Connection Pool Lifeguard - Prevent pool overflows that can drown your applications”,但我仍然非常担心。

1 个答案:

答案 0 :(得分:1)

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

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