如何分析在Cloud Foundry上运行的Spring Boot Web应用程序的内存?



我有一个在内部云铸造空间上运行的Spring启动应用程序。 我想监视此 Web 应用程序的堆栈和堆内存,以便查找源自代码的 StackOverflow 异常。

分析应用程序的最佳方法是什么。

  • https://content.pivotal.io/blog/new-cloud-foundry-java-buildpack-improves-developer-diagnostic-tools
  • https://community.pivotal.io/s/article/How-to-Remotely-Debug-Java-Applications-on-Cloud-Foundry

1.使用 JMX 设置运行应用

  • 要在本地计算机上测试分析,请使用以下 JMX 配置运行theapp,然后转到最后一步"3.可视化虚拟机配置">

    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 中的theapp,请使用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"
    

阿拉伯数字。创建到应用容器的 SSH 隧道

cf ssh -N -T -L 9999:localhost:9999 theapp

3. 可视化虚拟机配置

  • 下载可视化虚拟机
  • 运行可视化虚拟机:visualvm --jdkhome "$JAVA_HOME"
  • 添加 JMX 连接:localhost:9999


您还可以使用 PuTTY 创建 SSH 隧道

  • 检索并显示应用的 GUID:
    cf app theapp --guid
    # example: 12345678-1234-1234-1234-123456789012
    
  • 获取 ssh 客户端的一次性密码:

    cf ssh-code
    # example: PolSkAjEzyKtrUdnA
    
  • 创建 PuTTY SSH 连接:

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

如果您在 cloudfoundry 安装中启用了 ssh 访问权限,则可以使用 JMX 或 Yourkit Profiler 来执行此操作。

以下是一些链接:

  • https://www.cloudfoundry.org/blog/just-released-java-buildpack-4-0/

  • https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-your_kit_profiler.md

  • https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-jmx.md

相关内容

  • 没有找到相关文章

最新更新