We have a multi-threaded production Java application. We are trying to check the native memory usage as mentioned in this post.
But on the dump I am seeing 100% memory is being taken by je_prof_backtrace
ubuntu@platform1:/tmp/jemalloc_dump$ /home/ubuntu/jemalloc/bin/jeprof --show_bytes `which java` /tmp/jemalloc_dump/tsdb.62634.6454.i6454.heap
Using local file /usr/bin/java.
Using local file /tmp/jemalloc_dump/tsdb.62634.6454.i6454.heap
Welcome to jeprof! For help, type 'help'.
(jeprof) top
Total: 815965512 B
815965512 100.0% 100.0% 815965512 100.0% je_prof_backtrace
0 0.0% 100.0% 268451840 32.9% 0x00007f1338bd83a5
0 0.0% 100.0% 279057735 34.2% 0x00007f13390d615a
0 0.0% 100.0% 268455936 32.9% 0x00007f133918adda
0 0.0% 100.0% 268455936 32.9% AllocateHeap
0 0.0% 100.0% 268455936 32.9% JVM_MonitorWait
0 0.0% 100.0% 268451840 32.9% Java_java_util_zip_Inflater_inflateBytesBytes
0 0.0% 100.0% 268455936 32.9% ObjectSynchronizer::inflate
0 0.0% 100.0% 268455936 32.9% ObjectSynchronizer::omAlloc
0 0.0% 100.0% 268455936 32.9% ObjectSynchronizer::wait```
Output is like below if I use text
(jeprof) text
Total: 815965512 B
815965512 100.0% 100.0% 815965512 100.0% je_prof_backtrace
0 0.0% 100.0% 268451840 32.9% 0x00007f1338bd83a5
0 0.0% 100.0% 279057735 34.2% 0x00007f13390d615a
0 0.0% 100.0% 268455936 32.9% 0x00007f133918adda
0 0.0% 100.0% 268455936 32.9% AllocateHeap
0 0.0% 100.0% 268455936 32.9% JVM_MonitorWait
0 0.0% 100.0% 268451840 32.9% Java_java_util_zip_Inflater_inflateBytesBytes
0 0.0% 100.0% 268455936 32.9% ObjectSynchronizer::inflate
0 0.0% 100.0% 268455936 32.9% ObjectSynchronizer::omAlloc
0 0.0% 100.0% 268455936 32.9% ObjectSynchronizer::wait
Steps followed.
./autogen.sh --enable-prof
inside the directory where jmalloc tar in untared.make
Application was started with the below options
export JEMALLOC_PATH=/home/ubuntu/jemalloc
export MALLOC_CONF=prof:true,lg_prof_interval:21,lg_prof_sample:28,prof_prefix:/tmp/jemalloc_dump/tsdb
LD_PRELOAD=${JEMALLOC_PATH}/lib/libjemalloc.so.2 \
java ...
I am new to jemalloc. Can someone suggest what could be going wrong?
ubuntu@platform1:/tmp/jemalloc_dump$ java -version
openjdk version "11.0.11" 2021-04-20 LTS
OpenJDK Runtime Environment Zulu11.48+22-SA (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM Zulu11.48+22-SA (build 11.0.11+9-LTS, mixed mode)
Try configuring using the below flags :
./configure --enable-prof --enable-stats --enable-debug --enable-fill