ThreadPool.SetMinthreads
の設定の影響を理解しようとしています。 1つのAzure App Serviceで複数の仮想アプリケーションを実行しています。私の理解では、これらの仮想アプリケーションはすべてアプリケーションプールを共有し、1つのワーカープロセスしか持ちません(アプリケーションプールの最大ワーカープロセスは1と仮定します)。ThreadPool SetMinThreads - 設定の影響
私には以下の2つの質問があります。この設定で
- 私はのは100件のワーカースレッドとIOスレッドを言わせし
ThreadPool.SetMinThreads
を設定した場合、私は安全にそれがロードされると、各アプリケーションドメインは100件のワーカースレッドと100個のIOスレッドを持っていると仮定することができますか?正確に言えば、ThreadPool.SetMinThreadsはAppDomain、またはWorker ProcessまたはApp Pool内に適用されますか? ThreadPoolの範囲は何ですか? - また、システムが基本となるホストの容量によって決定されるため、システムが生成できる最大スレッドに制限はないものとします。これは、明示的にThreadPool.SetMaxThreadsを設定しないと、システムは新しいスレッドを生成し、CPU /メモリが最大値に達するまで継続的な負荷がある場合、それを継続します。私は私の仮定をサポートするために、以下の文に基づかています:
プロセスとスレッドを、例えば、 ができること、物理メモリ、仮想 メモリ、およびプールメモリので、プロセスまたはスレッドの数を必要としますプロセスまたは スレッドが作成され、どの制約が最初にヒットするかによって、最終的にこれらのリソースの1つが によって決定されます。 https://blogs.technet.microsoft.com/markrussinovich/2009/07/05/pushing-the-limits-of-windows-processes-and-threads/
を必要とするスレッドの数を開始します特にとして、まれに有害なのですか?スレッドプール内のスレッドの最小数を変更する必要はほとんどありません。 Msoftは、スレッドプールの動作を最適にするために多くの時間を費やしました。なぜ違いますか? – mikelegg
多数の同時ユーザーがいるこのシステムでパフォーマンステストを実行すると、最小スレッドが影響を与えます(これは、間違っていると言っています。エラー数と応答時間はスレッド数に関連しています – Thomas