Cloud foundry CF应用程序命令的CF内存使用情况
我想了解cf app命令报告的内存状态。 e、 g.如果我的应用程序返回Cloud foundry CF应用程序命令的CF内存使用情况,cloud-foundry,Cloud Foundry,我想了解cf app命令报告的内存状态。 e、 g.如果我的应用程序返回 state since cpu memory disk details 0运行2017-02-11 08:06:39上午18.2%2.2G/4G 200.3M/1G 这2.2G到底意味着什么?因为当我在newrelic中看到我的应用程序时,它显示大约1GB正在使用。我相信当应用程序启动时,实际分配还将取决于其他一些参数(xmx,内存计
state since cpu memory disk details
0运行2017-02-11 08:06:39上午18.2%2.2G/4G 200.3M/1G
这2.2G到底意味着什么?因为当我在newrelic中看到我的应用程序时,它显示大约1GB正在使用。我相信当应用程序启动时,实际分配还将取决于其他一些参数(xmx,内存计算器?)
(这是spring boot应用程序)它表示该应用程序的一个实例正在运行。应用程序被分配/分配了4GB内存(在您运行
cf app
时),应用程序已消耗了2.2GB的总内存
如果New Relic报告的内存接近1 GB,这可能意味着还有其他东西占用了另外1.2 GB的内存
首先,我要看看您正在使用的buildpack
。您使用的是标准java buildpack还是公司创建的自定义buildpack?构建包是否添加了任何其他代理?类似AppDynamics(无论如何都不说这是罪魁祸首)或其他东西。找出这一点,并确定这些附加组件消耗了多少内存
我建议您对正在运行的实例执行heapdump
。您必须将ssh连接到容器中。磁头转储可能为2.2GB,分配给应用程序的磁盘只有1GB,这会造成问题。有解决方案,但这取决于您运行的PCF版本
只是一个简单的问题,您是否有可能在应用程序中使用nashorn
希望这有帮助 当您运行cf app&runc时,使用
从概念上讲,您可以将它报告的内容视为容器中运行的所有进程的内存使用情况。这包括您的应用程序进程,但也包括平台放在那里的几个非常小的进程(一个是SSH守护进程,它促进了cf SSH
)。如果您想了解更多关于容器中运行的内容,我建议执行cf ssh
,然后查看ps aux
或top
关于您的特定应用程序,您看到的差异可能是因为它是一个Java应用程序。您需要确保查看的是进程的完整内存使用情况,而不仅仅是堆使用情况。堆只是Java应用程序总内存使用量的一部分,它还包括PermGen(1.7)或Metaspace(1.8)、线程、本机代码、直接内存和JVM本身使用的其他内存。您使用的是标准buildpack。那么,就没有插件了。您可以尝试ssh到app实例容器中,并检查日志文件,看看是否有任何关于正在运行的内容的线索。你必须做heapdump
才能看清楚。您使用的是什么版本的PCF?