我们有一个多线程生产 Java 应用程序。如本文所述,我们正在尝试检查本机内存使用情况。
但是在转储中,我看到 100% 的内存被占用了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```
如果我使用,输出如下所示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
紧随其后的步骤。
- 从这里下载了 jemalloc 5.2.1 发布标签。
./autogen.sh --enable-prof
在 jmalloc tar 解压的目录中。make
使用以下选项启动应用程序
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 ...
我是jemalloc的新手。有人可以建议可能出了什么问题吗?
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)
- 操作系统 - Ubuntu 18.04