1

JVM ヒープに問題があります。

Apache HTTP Server と Apache Tomcat Application Server で Web サイトを運営しています。

Apache HTTP サーバーへのすべての *.jsp 要求は、Tomcat サーバー (プロトコル: ajp) にリダイレクトされます。

Web サイトには 10,000 を超える jsp ファイルがあります。

Google 検索アプライアンスもあり、毎晩ウェブサイトをクロールしています。

クロール中に、jvm ヒープ スペースが上限の 8 GB まで上昇します。

javamelody を使用すると、ロードされたクラスと同様にヒープ領域が増加することがわかります。

分析のために、ヒープダンプを取得しました。

Eclipse MAT からのレポートは次のとおりです。


「org.apache.catalina.loader.StandardClassLoader @ 0x7092c5148」によってロードされた「org.apache.jasper.servlet.JspServlet」の 1 つのインスタンスは、1'189'603'328 (96.75%) バイトを占有します。

メモリは、「」によってロードされた「java.util.concurrent.ConcurrentHashMap$Segment[]」の 1 つのインスタンスに蓄積されます。

キーワード

java.util.concurrent.ConcurrentHashMap$Segment[]

org.apache.catalina.loader.StandardClassLoader @ 0x7092c5148

org.apache.jasper.servlet.JspServlet


GSA リクエストに問題はありますか?

JVM が生成されたクラスをアンロードできないのはなぜですか?

4

1 に答える 1

1

すべての JSP のロードが問題を引き起こしているようです。

デフォルトでは、Tomcat はロードされたすべての JSP を Web アプリケーションが停止するまでメモリに保持します。

Tomcat 7 では、JSP サーブレットの maxLoadedJsps パラメータを設定して、メモリに保持される JSP の数を制限できます。

于 2012-05-03T18:55:23.840 に答える