1

TomCatにWebアプリをデプロイするときに、恐ろしいPermGen : Outofmemoryエラーが発生します。私は多くの可能な解決策を試しましたが、うまくいきません(時々うまくいく、通常はうまくいきません)。「BuildConfig.groovy」の設定が有効になるかどうか疑問に思います。

grails.tomcat.jvmArgs = ["-Xmx1024m", "-XX:MaxPermSize=1024m"]

JVMによって実際に適用されたMaxPermSizeを表示する方法を知っている人はいますか?

4

3 に答える 3

4

あなたの質問への直接の答えとして、java.lang.management.ManagementFactoryには、PermGenスペースやその他の非ヒープメモリプールを含む、Javaで使用されるすべてのメモリプールに関する情報を取得するメソッドがあります。

List<MemoryPoolMXBean> memoryPoolMXBeans = java.lang.management.ManagementFactory.getMemoryPoolMXBeans();

for (MemoryPoolMXBean bean : memoryPoolMXBeans) {
    //Iterate over pools here
}
于 2011-06-09T10:00:21.360 に答える
3

JDK / binディレクトリのJVisualVMを使用 して、Javaプロセスに関するすべてを監視できます。

于 2011-03-03T06:25:09.457 に答える
1

私が信じているjsdkにはいくつかのユーティリティがあります-jstat-gcpermcapacityを試してください。時々役立つもう1つのトリックは、ps -fwwwC javaです(これをLinuxボックスで実行していると仮定します)

于 2011-03-03T04:55:19.510 に答える