问题
Java 1.8.0_131 + Windows Server 2012 R2.
'-Xmx=9000m'. But Windows Task Manager shows the java process uses more than 14 GB memory.
NMT shows "Internal" consumes more than 4.5 GB memory. Why does this occur? I understand it is not Java functionality to define spaces for the native memory. But is there any method to limit the 'Internal' memory?
Total: reserved=15782485KB, committed=14653869KB - Java Heap (reserved=9216000KB, committed=9216000KB) (mmap: reserved=9216000KB, committed=9216000KB)
Class (reserved=1277553KB, committed=260193KB) (classes #37738) (malloc=11889KB #64612) (mmap: reserved=1265664KB, committed=248304KB)
Thread (reserved=80528KB, committed=80528KB) (thread #79) (stack: reserved=79872KB, committed=79872KB) (malloc=244KB #398) (arena=412KB #157)
Code (reserved=166388KB, committed=55208KB) (malloc=10356KB #10526) (mmap: reserved=156032KB, committed=44852KB)
GC (reserved=340353KB, committed=340277KB) (malloc=3521KB #1861) (mmap: reserved=336832KB, committed=336756KB)
Compiler (reserved=290KB, committed=290KB) (malloc=160KB #947) (arena=130KB #2)
Internal (reserved=4513559KB, committed=4513559KB) (malloc=4513495KB #7980353) (mmap: reserved=64KB, committed=64KB)
Symbol (reserved=52759KB, committed=52759KB) (malloc=48180KB #563951) (arena=4579KB #1)
Native Memory Tracking (reserved=134867KB, committed=134867KB) (malloc=108KB #1634) (tracking overhead=134759KB)
Arena Chunk (reserved=190KB, committed=190KB) (malloc=190KB)
回答1:
Finally it was confirmed the issue was caused by DynaTrace Agent.
After removing DynaTrace Agent the issue does not occur any more. And the issue also does not occur after applying the DynaTrace update.
来源:https://stackoverflow.com/questions/44943675/java-process-memory-usage-keeps-increasing-and-java-native-memory-tracking-shows