Java 如何配置在CloudFoundry上运行的spring boot webapp的内存?

Java 如何配置在CloudFoundry上运行的spring boot webapp的内存?,java,spring-boot,cloud-foundry,memory-profiling,Java,Spring Boot,Cloud Foundry,Memory Profiling,我有一个Spring boot应用程序运行在内部cloud foundry空间上。 我想监视这个web应用程序的堆栈和堆内存,以便找到源于代码的StackOverflow异常 配置应用程序的最佳方法是什么。如果您在cloudfoundry安装中启用了ssh访问,您可以使用JMX或您的Kit Profiler来执行此操作 以下是一些链接: 1.使用JMX设置运行应用程序 要在本地计算机上测试评测,请使用以下JMX配置运行App,然后转到最后一步“3.VisualVM配置”: ja

我有一个Spring boot应用程序运行在内部cloud foundry空间上。 我想监视这个web应用程序的堆栈和堆内存,以便找到源于代码的StackOverflow异常


配置应用程序的最佳方法是什么。

如果您在cloudfoundry安装中启用了ssh访问,您可以使用JMX或您的Kit Profiler来执行此操作

以下是一些链接:

      1.使用JMX设置运行应用程序
      • 要在本地计算机上测试评测,请使用以下JMX配置运行App,然后转到最后一步“3.VisualVM配置”:

        java \
        -Dcom.sun.management.jmxremote=true \
        -Djava.rmi.server.hostname=localhost \
        -Dcom.sun.management.jmxremote.port=9999 \
        -Dcom.sun.management.jmxremote.rmi.port=9999 \
        -Dcom.sun.management.jmxremote.ssl=false \
        -Dcom.sun.management.jmxremote.authenticate=false \
        -jar theapp.jar ...
        
      • 要将JMX配置传递到CF中的应用程序,请使用
        JBP_CONFIG_JMX
        环境变量(或
        JAVA_OPTS
        ,参数如上所述),
        manifest.yml

        applications:
          - name: theapp
            buildpack: java_buildpack
            env:
              JBP_CONFIG_JMX: "{enabled: true, port: 9999}"
              # JAVA_OPTS: "-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=localhost -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
        
      2.创建应用程序容器的SSH隧道 3.可视化配置
      • 下载
      • 运行VisualVM:
        VisualVM--jdkhome“$JAVA\u HOME”
      • 添加JMX连接:
        localhost:9999


      您还可以使用创建SSH隧道
      • 检索并显示应用程序的guid:
        cf应用程序应用程序--guid
        #示例:12345678-1234-1234-1234-123456789012
        
      • 获取ssh客户端的一次性密码:

        cf ssh代码
        #示例:PolSkAjEzyKtrUdnA
        
      • 创建PuTTY SSH连接:

        • 主机名:
          app.your.cloud
        • 端口:
          2222
        • 用户名:
          cf:/@ssh.your.cloud
          • 示例:
            cf:12345678-1234-1234-1234-123456789012/0@ssh.your.cloud
        • 密码:
          • 示例:
            PolSkAjEzyKtrUdnA
        • 连接/ssh/tunnels/:
          • 源端口:
            9999
          • 目的地:
            127.0.0.1:9999

      Java构建包中还有Java内存助手。它可以用于在某些条件下触发堆转储,例如当达到某个阈值时。还有一种杀戮剂,当有臭味时也会这样做。
      cf ssh -N -T -L 9999:localhost:9999 theapp