我对.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”,但我仍然非常担心。
答案 0 :(得分:1)
并发用户没有任何意义。并发请求更有意义。你会同时在飞机上发出100多个请求吗?在这种情况下,我肯定会增加最大池大小,因为增加设置本身没有成本。
您可以安全地将其增加到至少250.如果您想要做更多,您需要测试(或重新设计应用程序)。