IIS 7アプリケーションプールを再起動することがなぜ良い習慣であると考えているのか疑問に思っていますか?スレッドやセッション状態などの孤立したリソースをクリーンアップすることは知っていますが、他のWebサーバーはこの種の問題にどのように対処しますか?Java開発者/管理者は、メモリ内のジャンクをクリーンアップするために、weblogic / websphere / apache / tomcatを頻繁に再起動する必要がありますか?
2 に答える
通常、これは不適切なプログラミングを補うために使用されます。使用しているライブラリによっては、場合によってはあなたのもの、場合によってはサードパーティ。
また、すべての推奨事項と同様に、特定の環境を調べて、それを実行する前に本当に必要かどうかを確認することをお勧めします。
アプリのプロファイリングから始めます。簡単な方法は、負荷がかかった状態でしばらく実行することです。メモリ使用率が落ち着くのか、それとも継続的に増加するのかなどを探してください。
それが成長し続ける場合は、IISを頻繁にリサイクルするように設定し、アプリを修正する必要があります。それがある程度まで成長してから落ち着くなら、あなたは大丈夫なはずです。アプリのエッジケースもテストしてください。
IISを使用すると、適切に動作しない非マネージコード(最良の例はCOMオブジェクト)が存在する可能性があります。その結果、プロセスを定期的にリサイクルするようにIISを設定して、そのようなコードで発生する可能性のあるメモリリークを考慮に入れることができます。
ただし、それを行う必要はありません。プロセスを再起動したくない場合は、再起動のしきい値を削除できます。
このアイデアが他のサーバーに存在しない場合は、他のサーバーがマネージコードのみを許可していることが原因である可能性があります。