【问题标题】:Spring boot application not using jemallocSpring Boot 应用程序不使用 jemalloc
【发布时间】:2019-06-02 20:01:41
【问题描述】:

我正在尝试找出内存泄漏问题。我正在关注this 文章并尝试使用 jemalloc

接下来的步骤是:

export LD_PRELOAD=/usr/local/lib/libjemalloc.so
export MALLOC_CONF=prof:true,lg_prof_interval:30,lg_prof_sample:17
sudo java -jar application.jar

但是没有创建 .heap 文件。我在 pmap -x 结果中找不到 libjemalloc.so。如何确保 jvm 正在使用 jemalloc?服务器是ubuntu服务器,应用使用spring boot。

【问题讨论】:

    标签: java spring-boot memory-leaks jvm jemalloc


    【解决方案1】:

    当您运行sudo 时,Java 将获得没有您之前导出的LD_PRELOADMALLOC_CONF 的根环境。

    试试

    sudo LD_PRELOAD=/usr/local/lib/libjemalloc.so \
         MALLOC_CONF=prof:true,lg_prof_interval:30,lg_prof_sample:17 \
         java -jar application.jar
    

    顺便说一句,jemalloc 对于分析 Java 应用程序并不总是有用,因为它不能显示 Java 堆栈(但它对于防止由标准引起的内存泄漏很有用分配器)。

    按照this answer 中的说明尝试异步分析器。

    还要检查this post 关于 Java 本机内存消耗的信息。

    【讨论】:

      猜你喜欢
      • 2018-06-25
      • 2016-07-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2019-08-31
      • 2016-03-08
      • 2020-12-21
      • 2015-03-25
      相关资源
      最近更新 更多