6
Javaプロセスでメモリを消費するものは何ですか?
中程度の負荷でのJavaプロセスのメモリ使用量を調査しようとしています。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12663 test 20 0 8378m 6.0g 4492 S 43 8.4 162:29.95 java ご覧のとおり、6Gbに常駐メモリがあります。興味深い部分はこれです:プロセスはこれらのパラメータで実行されます: -Xmx2048m -Xms2048m -XX:NewSize = 512m -XX:MaxDirectMemorySize = 256m ... GCおよびその他のもの これらの設定と実際のメモリ使用量を見ると、このプロセスの使用が予想されるものと実際に使用されるものの違いを見つけるためにつまずきます。 通常、メモリの問題はヒープダンプを分析することで解決されますが、この場合、メモリはヒープ外のどこかで使用されます。 質問:このような高いメモリ使用量の理由を見つけて見つけるための手順は何ですか?そのプロセスでメモリを使用しているものを識別するのに役立つツールは何ですか? 編集0 まだかなりのスペースがあるので、これはヒープ関連の問題のようには見えません: jmap -heap 12663 結果(スペースを節約するために編集) Heap Configuration: MinHeapFreeRatio = 40 …