我对 .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 连接池救生员 - 防止可能淹没您的应用程序的池溢出”,但我仍然很担心。