监控 Cloud Foundry 中的 Java 应用程序内存

监控 Cloud Foundry 中的 Java 应用程序内存

我有一个 Java 应用程序,正在 Cloud Foundry 环境中部署。我想监视该应用程序的内存使用情况。Cloud Foundry 提供了cf app生成有关指定应用程序的每个实例的输出的命令。在这里,您可以看到有关具有两个正在运行的实例的特定应用程序的信息(已删除):

$ cf app myapp
Showing health and status for app myapp in org myorg / space myspace as admin...
OK

requested state: started
instances: 2/2
usage: 1G x 2 instances
urls: myapp.example.com
last uploaded: Wed Jan 27 09:00:53 UTC 2016
stack: mylinuxstack
buildpack: myjavabuildpack

     state     since                    cpu    memory         disk      details
#0   running   2016-01-27 09:01:31 AM   0.4%   689.8M of 1G   0 of 1G
#1   running   2016-02-03 05:35:03 PM   0.0%   624.2M of 1G   0 of 1G

但是,内存指标似乎只是报告 Cloud Foundry 容器内运行的进程使用的内存量。如果您曾经监控过 Java 应用程序,那么您就会知道,即使 Java 应用程序没有使用内存,JVM 最终也可能会消耗您告诉它们可以使用的内存量。(换句话说,它自己进行内存管理。)这意味着实际java进程可能会消耗其全部 1GB 内存,但这并不意味着它即将耗尽内存。

根据我的经验,对 Java 应用程序内存利用率的有效监控取决于从 JVM 本身获取数据,通过 JMX 之类的方式(例如 via jconsole)。但是,Cloud Foundry 似乎不提供有关应用程序实际运行位置的信息。(事实上,我发现有些人声称 Cloud Foundry 明确不会告诉您该信息。)这意味着我无处连接 JMX 客户端。

如果我想监控 Cloud Foundry 中 Java 应用程序的内存使用情况,我该怎么做?如果您有更好的了解,欢迎反驳我的任何说法。

答案1

我能够通过查询 Cloud Foundry 的(Go)路由器的/routesURL

相关内容