我试图寻找内存泄漏,在应用程序内的坞容器。
应用程序的堆大小受到如下限制:
java -XX:NativeMemoryTracking=summary -jar /app-0.1.jar -Xms256m -Xmx512m本机内存差异如下所示:
./jcmd 7 VM.native_memory summary.diff本机内存跟踪:
总计: reserved=8295301KB +1728,committed=2794537KB +470172
Java (reserved=6469632KB,committed=2245120KB +466944KB) (mmap: reserved=6469632KB,committed=2245120KB +466944KB)类(reserved=1141581KB -9KB,committed=103717KB -9KB) (类#16347 -86) (malloc=13133KB -9KB #23221 -306) (mmap: reserved=1128448KB,committed=90584KB)线程(reserved=85596KB +999 9KB,committed=85596KB +999 3KB)(线程#84 +1) (堆栈: reserved=85220KB +1027 3KB,committed=85220KB +1027 3KB) (malloc=279KB +3KB #498 +6) (arena=97KB -31 #162 +2)代码(reserved=255078KB +32 3KB,committed=32454KB +228 2KB) (malloc=5478KB +32 2KB #8900 +80) (mmap: reserved=249600KB,committed=26976KB +196 2KB) GC (reserved=249066KB -2KB,committed=233302KB +1302 2KB) (malloc=12694KB -2KB #257 -75) (mmap: reserved=236372KB,committed=220608KB +1304 2KB)编译器(reserved=227KB +10 2KB,committed=227KB +10 15) (malloc=96KB +10 15 #807 +15) (arena=131KB #7)内部(reserved=68022KB +720 15,committed=68022KB +720 15) (malloc=67990KB +720 15 #21374 -287) (mmap: reserved=32KB,committed=32KB)符号(reserved=21938KB -11 15,committed=21938KB -11 188) (malloc=19436KB -11 188 #197124 -188) (arena=2501KB #1)本地内存跟踪(reserved=3962KB -12 188,committed=3962KB -12 188) (malloc=15KB #178 +1) (跟踪overhead=3947KB -12 188)竞技场块(reserved=199KB,committed=199KB) (malloc=199KB)
取下堆转储后:
./jmap -dump:live,format=b,file=/tmp/dump2.hprof 7堆Leak Suspects报告非常小-45 is:

问题是:为什么Java是committed=2245120KB -几乎2GB?它不与-Xmx512m对齐,也不与jmap中的堆转储大小对齐。
https://stackoverflow.com/questions/71240684
复制相似问题