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();
}

また、私が読んだ回答のほとんどは、「何百人ものユーザーであっても、ウェブサイトは多くの同時接続を必要とすべきではありません」と言っています。しかし、私が話しているのは、500 人を超える同時ユーザー (同じ 2 分間の範囲でログインしている可能性がある) を持つ大規模な WebApp です。また、すべてのページ アクセスがテーブルに記録されます (そのため、複数の読み取りと挿入を検討してください)。

さて、デフォルトMaxPoolSizeの 100 接続で十分なのか、それともリスクになるのでしょうか? 何らかのリスクがある場合、接続プールの設定をどのように変更すればよいですか? MaxPoolSize同時ユーザーの特定の % まで増やす必要がありますか。それは何らかの悪影響を及ぼしますか?ConnectionTimeoutまたは、を防ぐためにを増やす必要がありますInvalidOperationExceptionか?

ところで、William Vaughn の記事「The .NET Connection Pool Lifeguard - Prevent pool overloads that can drown your applications」を完全に赤字にしましたが、それでもかなり心配です。

4

1 に答える 1

1

同時ユーザーは何の意味もありません。同時リクエストはより意味があります。同時に 100 を超えるリクエストが進行中ですか? その場合、設定を大きくしてもそれ自体にはコストがかからないため、最大プールサイズを確実に増やします。

少なくとも 250 まで安全に増やすことができます。それ以上のことをしたい場合は、テスト (またはアプリケーションの再設計) が必要です。

于 2012-12-05T21:54:03.307 に答える