Spring2.0.8アプリケーションが本番環境にあります。Tomcat5.5.xとJRE1.5.xで実行されており(ええ、アップグレードする必要がありますが、今はポイントではありません)、DBの選択肢としてOracle11gを使用しています。
数か月前(7月と言います)にアプリケーションをアップグレードし、過去1か月ほどでOracle10gからOracle11gに切り替えました(データベースのバージョンに合わせてOracle JDBCドライバーも変更しました)。
私たちは、本番環境で深刻で予期しない問題を抱えています。1日前の時点で、ヒープスペースのOutOfMemoryエラーが数時間間隔で発生しています。これにより、応答時間が約100倍遅くなるか、ユーザーが接続できなくなります。
セットアップは次のとおりです。
- サーバーを実行するためのWindowsマシン
- SSOが有効になっているApache2.2およびTomcat5.5、合計メモリ:128MB、最大メモリ:512MB
- Spring 2.0.8 Webapp
- Oracle 11g
このエラーに気付いたので、これが私たちが試したものです。
- ログをチェックしてください-パターンはないようです。明らかに、ログはサーバーのメモリが不足している場合にのみ通知するため、問題が発生した時点ではなく、機能しなくなった時点を示します。
- サーバーを再起動します
- Tomcatの再インストール
- Tomcatが使用できるメモリの量の増加-これは問題を長引かせました、もちろん、Tomcatは私たちが与えたのと同じくらい食べました
- サーバーとApache+Tomcatの両方の新規インストール
- ヒープダンプの生成-異常なことは何もありません。ほとんどのメモリはアプリケーションの起動に使用されます。
- DBをチェックします-それは問題なく、迅速で応答性が高く、ロックはありません
私は他に何をすべきかについてのアイデアを探しています。合計5つの異なるプロダクションでこれと同じセットアップがありますが、この問題のあるセットアップは、ユーザーとデータの数が最も少ないものです。