1

I have one java program (doing lot of in memory operations). I have allocated 10GB java heap to the process (-Xmx). Total memory of the system is 30 GB. Java program is actually taking almost 24 GB of memory (I can see from svmon output). Java heap utlization is below 10 GB (from verbose GC). I would like to know what is using the rest of the memory (24-10 = 14 GB of memory)? Is it native heap? ( I dont have any JNI code or any other third party libray which can using JNI code). Could you please tell how can I monitor native memory usage?

OS :AIX

Java : IBM JVM 1.6

CPU : Power 7 SMT -4

4

4 に答える 4

2

もう 1 つのタイプのメモリは非ヒープ メモリです。JConsoleで状況を監視してみてください。

あなたのキットに関するこのページで私は読んだ:

非ヒープ メモリ サイズの異常な増加は、潜在的な問題を示している可能性があります。この場合、次の点を確認してください。

  • ローダーのリークなど、クラスの読み込みに関する問題がある場合。この場合、クラスローダービューを使用して問題を解決できます。
  • ストリングが大量に収容されている場合。このような問題の検出には、割り当て記録が使用される場合があります。
于 2011-11-04T12:48:08.040 に答える
0

プロファイラーを使用したことがありますか?これは、どのオブジェクトがメモリを消費しているか、RAM で何が起こっているかを特定するのに役立ちます

于 2011-11-04T12:48:18.580 に答える
0

思い出をありがとう。

これをここに置きます:https://www.ibm.com/developerworks/java/library/j-nativememory-aix/

于 2011-11-04T12:48:36.227 に答える
0

IBM JMATは優れたツールですが、分析するには大量のメモリが必要です。使用しているメモリの量が、操作しているオブジェクトに適していることをどの程度確信していますか? コール スタックが非常に大きいので、参照が漏れていないか調査を開始します。

于 2011-11-04T12:51:45.300 に答える