4

これらは、WebLogic11gでのSunHotspot1.6JVMヒープ設定です。

-Xms10g -Xmx10g -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=2

JVMのヒープフリー%グラフに24時間表示されているのは、基本的にヒープフリー%が約9%に達するまでゆっくりと低下することです(約24時間かかります)。その後、システムは完全なgcのように見えるものを実行し、97%に戻ります。

ヒープが10%未満になるよりも早く、この完全なGCを実行するようにJVMに指示する、追加/変更する必要のある設定はありますか?例:いくつかの比率設定?

9%が無料になるまで待つという問題は発生しませんが、監視/アラートがより困難になります。理想的には、常に30%の空き容量よりも高い値を維持して、これらの1桁の数字にドロップダウンした場合に、メモリリークなどの何らかの問題があることがわかるようにします。

4

2 に答える 2

2

他のstackoverflow記事の組み合わせを使用して答えを見つけました。

-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=N

ここで、Nは、完全なGCをトリガーする占有率のおおよその割合です。デフォルトは〜92です。これが、完全なGCが9%無料で表示されている理由です。私のユースケースでは、65に切り替えることができました。完全なGCが発生し、現在35%無料です。

于 2012-10-11T22:01:25.083 に答える
0

-Xms10gを削除してから、ヒープの合計サイズを監視するのはどうですか?これにより、gcがより頻繁に実行されるようになります。

アプリが実際に300MBのRAM(3%)しか使用していない場合、10ギガバイトの割り当てから始めるのは極端に思えます。

于 2012-10-11T16:01:22.157 に答える