1)Webサイトごとにアプリケーションプールを用意することをお勧めします。このアプローチには注意点がありますか?たとえば、1つのアプリケーションプールですべてのCPU、メモリなどを占有できますか?
これはかなり良いアプローチです。異なる「サイト」(アプリケーション)が同じプールを共有すると考えることができる理由はありません。ある種の単一のリソースを共有する必要がない限り。理論的には、1つのアプリケーションが大量のCPUまたはメモリを消費する可能性がありますが、アプリケーションのプール方法を変更しても、それほど大きな影響はありません。
2)アプリケーションプールで複数のワーカープロセスを許可するタイミング。いつすべきではないのですか?
これは、デフォルト設定を使用して、そのままにしておくのが最善です。あなたが何をしているのか本当に理解していない限り、これは実際にあなたのウェブサイト/アプリケーションに悪影響を及ぼす可能性があります。
3)プライベートメモリ制限を使用して、あるアプリケーションプールが別のアプリケーションプールに干渉するのを防ぐことができますか?設定が低すぎると、有効な要求が有効な応答を取得せずにアプリケーションプールをリサイクルすることになりますか?
a)理論的に
b)はい、低く設定するとマイナスの影響があります。繰り返しますが、特定のニーズがあり、何をしているのかわからない場合は、そのままにしておきます。
4)プライベートメモリ制限と仮想メモリ制限の違いは何ですか?
それは非常に複雑です、ここに私が見つけた簡単な投稿があります:http : //cybernetnews.com/cybernotes-windows-memory-usage-explained/
5)サイトごとに1つのアプリケーションプールを実行しないという説得力のある理由はありますか?
繰り返しになりますが、私が考えることができる唯一の理由は、複数のアプリケーションが必要とする何らかの「共有リソース」がある場合、同じプロセスでそれらを実行することです。
汎用アプリケーションとWebサイトの場合、IISはデフォルト値でかなり適切に設定されています。
****更新****
#2の追加情報のリクエストに関しては、特にそうする必要がない限り、これを行うべきではありません。時間がかかるサーバーアクションであっても、要求は複数のスレッドを使用して処理されるため、「非同期要求」を使用して長時間実行されるタスクを処理します(スレッドプールスレッドを解放して他の要求を処理します)。現実的には、単一のプールに対して複数のプロセスを許可する正当な理由は考えられません。
複数のプロセスについて話し始めたら、プロセス1でセッションが生きているためにセッション状態を失うが、リクエストはプロセス2で処理されているなどの可能性があります。さらに悪いことに、方法を理解する必要がありますいくつかのプロセス間通信を行いますが、これは本当に苦痛です。
複数のプロセスの理由に関して何が来ても、(別のプロセスを起動するのではなく)それに対処するより良い方法があると確信しています。