.net 2.0 aspx アプリ / IIS6 が w3wp.exe プロセス アプリ プールに大量のスレッドを作成します。
アプリは、次の設定で独自のアプリ プールに分離されています。
リサイクル
ワーカー プロセスのリサイクル (分単位): 870 ワーカー プロセスのリサイクル (リクエスト数): (チェックなし) 次の時間にワーカー プロセスをリサイクル: 00:00 最大仮想メモリ: (チェックなし) 最大使用メモリ (MB): 1000mb (1ギガバイト)
パフォーマンス
アイドル状態になった後にワーカー プロセスをシャットダウンする (分単位の時間): 20 カーネル要求キューを制限する (要求数): 1000 CPU 監視を有効にする (%): 85 CPU 使用率を更新する (分単位): 5 CPU 使用率が最大 CPU 使用量: NO ACTION (セッションを保持) ワーカー プロセスの最大数: 1
健康
ping を有効にする (チェックあり) ping ワーカー プロセスごと (秒): 30 ラピッド フェイル プロテクションを有効にする (チェックあり) 失敗: 5 期間 (分単位):5 開始時間制限 - ワーカー プロセスは (秒) 以内に起動する必要があります: 90 シャットダウン時間制限 -ワーカー プロセスは (秒) 以内にシャットダウンする必要があります: 90
通常の実行では、w3wp.exe プロセスが 300MB の RAM と 50 台のスレッドを使用します。私の問題が発生すると、スレッド数がゆっくりと 10,000 に増加し、スレッドが 0 に戻る前に RAM が 1GB になります。w3wp.exe プロセスはシャットダウンされず、ユーザーは (重要なことに) ログアウトされません。再度ログインする必要があります。ただし、標準の 50 のスレッドは、10,000 のルージュ スレッドの中で殺されます。
1) 専門家は、上記のアプリ プールの設定について賛否両論を提供できますか?
2)「最大使用メモリ」設定は、この問題を自動的に処理するためのトリックを行っているようです(スレッドを強制終了し、セッションを維持しますが、誰かが理由を説明できますか?...スレッドはセッションとは無関係だと思います) .
アプリはサーバー ベースのセッションを使用しますが、認証用にローカル Cookie を保存します。