ネイティブメモリが不足している仮想サーバー(VM)に問題があります。これらのVMが実行されている: のLinux 7.2(マイポ) Wildfly 9.0.1 ジャワ1.8.0._151 JVMの引数である(異なるJVMが異なるヒープ・サイズを有する彼らは0.5Gから2Gの範囲である。) で実行:Java 8でWildfly 9を実行している間にVMがクラッシュするまでメモリ使用量が増加する
-XX:+UseG1GC
-XX:SurvivorRatio=1
-XX:NewRatio=2
-XX:MaxTenuringThreshold=15
-XX:-UseAdaptiveSizePolicy
-XX:G1HeapRegionSize=16m
-XX:MaxMetaspaceSize=256m
-XX:CompressedClassSpaceSize=64m
-javaagent:/<path to new relic.jar>
約1ヶ月後、VMがスワップ領域をすべて使い始めると、OOM-KillerはJavaがあまりにも多くのメモリを使い、JVMの1つを強制終了させることに気付きます。
メモリの量は、Javaプロセスで使用されているが、ヒープよりも大きい+メタスペース+ -XXを使用することによって明らかにされるように圧縮さ:NativeMemoryTracking =詳細
は、このネイティブメモリ内にあるものを私に言うことができるツールが(ありますヒープダンプのようなものですが、ヒープのためのものではありません)?
jemalloc以外のネイティブ・メモリー使用(ヒープ外)にJavaヒープ使用率をマップできるツールはありますか?私はこれを達成するためにjemallocを使用しましたが、描画されているグラフには16進値のみが含まれ、人間が読めるクラス名は含まれていないので、本当に何も取得できません。たぶん私は何か間違っているか、おそらく私は別のツールが必要です。
ご意見をいただければ幸いです。
おそらくネイティブのバイトバッファですか? – Holger