JVM +泄漏+ JEMALLOC =分配内存不安全[已关闭]

nfeuvbwi  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(114)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

8小时前关门了。
Improve this question
这是一个很长的时间重新搜索,并尝试找到的是调用一个不安全的.allocateMemory和没有成功.有点失望:-(我不是一个Maven或配置文件或与jemalloc,但这里是我做了什么,到目前为止,希望有人能看到/找到我不能...

  • 堆和非堆内存都很好...我用了你的工具包。
  • 盒子上的通用内存疯狂增加,直到100%和jvm崩溃。
  • 使用Jemalloc并让应用程序运行很长时间,我能够获得一些JEPROF文件,并将其中一些转换为PDF,以查看备忘录/函数堆栈调用:

我发现在完成后,有东西正在调用***unsafe.allocateMemory***,而没有调用***unsafe.freeMemory***,所以它会吃掉我所有的内存。我从应用程序中做了一个线程转储(link to the txt with the thread dump),但不幸的是,我无法找到任何与***unsafe.allocateMemory***相关的内容。有没有人能看到一些我看不到的东西,或者通过给我任何线索或给我指出正确的方向来帮助我?谢谢...。

cl25kdpy

cl25kdpy1#

试试async-profiler,它可以显示Unsafe_AllocateMemory0的所有调用者的完整Java堆栈跟踪。
示例:

./profiler.sh -e Unsafe_AllocateMemory0 -f alloc.html <pid>

输出文件alloc.html将是所有Unsafe_AllocateMemory0调用的火焰图:

有关在Java中查找本机内存泄漏的更多信息,请参见this questionthis discussion

相关问题