【问题标题】:Not able to enable Native memory tracking in a spring boot application无法在 Spring Boot 应用程序中启用本机内存跟踪
【发布时间】:2019-05-26 01:55:19
【问题描述】:

我正在尝试像这样在我的 Spring Boot 应用程序中启用 NMT

 java -jar -Dlogging.config=log4j2.xml -XX:NativeMemoryTracking=summary application.jar 

但是,我收到了警告

Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not setup properly, using wrong launcher?

如何为在嵌入式 tomcat 上运行的应用程序启用 NMT?

【问题讨论】:

    标签: java spring-boot memory-leaks jvm


    【解决方案1】:

    如果您在每个环境(例如在容器中)运行一个 JVM,JAVA_TOOL_OPTIONS 是标志的位置:

    JAVA_TOOL_OPTIONS=-XX:NativeMemoryTracking=summary -Dlogging.config=log4j2.xml java -jar application.jar

    【讨论】:

      【解决方案2】:

      改变参数的顺序:

      java -XX:NativeMemoryTracking=summary -Dlogging.config=log4j2.xml -jar application.jar
      

      这是java 发射器的特点。 -XX:NativeMemoryTracking 必须由启动器和 JVM 处理才能生效。但是,一旦看到terminal option,启动器就会停止处理参数。 -jar 就是其中之一。

      【讨论】:

      • 也许值得一说为什么这很重要。 ;) +1
      • @PeterLawrey 同意。增加了段落。同时我个人认为这是一个错误。参数被处理了两次,但是启动器和JVM之间的处理逻辑并不一致。
      猜你喜欢
      • 1970-01-01
      • 2021-11-25
      • 2019-07-25
      • 2017-01-06
      • 2015-05-10
      • 2020-08-04
      • 1970-01-01
      相关资源
      最近更新 更多