JDK Mission Control (JMC) 显示 Java 应用程序使用了 99.6% 的内存

问题描述 投票:0回答:1

正如标题所解释的,当我在 JMC GUI 中打开 JFR 分析文件时,它显示我一直在运行的 SpringBoot 应用程序严重使用内存。这是一个相当简单的应用程序,带有一些控制器、Spring Security 和 MongoDB 连接。但是,当我继续使用 MacOS

Activity Monitor
top
CLI 工具监控我的应用程序时,它显示了不同的统计数据。谁能解释一下这是怎么回事?

我对 Java 分析和 JFR/JMC 非常陌生,因此非常感谢任何答案。

JMC 结果:

活动监视器

顶部-o MEM

编辑1:(申请详情) 该应用程序是一个常规的 SpringBoot 应用程序,具有很少的用于身份验证(注册、登录)、用户详细信息检索和其他与 CRUD 相关的控制器的 RestController,以及这些模型的相应服务组件。我使用 SpringBoot Mongo Starter 包和 Spring Security Starter 进行数据持久性操作和安全性。除此之外,还有一个 DB Seeder 配置,可在启动时加载 json 文件(250 个条目,每个条目只有 2 个字段)并保留在 DB 中。

郑重声明,此内存配置文件是在我启动应用程序时记录的,并进行了几次 REST API 调用来测试基本功能。我可以保证应用程序中没有内存密集型操作。

我想知道的是“为什么JMC和其他监控工具有区别?”。希望我的问题很清楚。

java spring-boot memory profiling jmc
1个回答
0
投票

JFR 将报告机器上可用物理内存的情况,而不仅仅是 JVM 或 JVM 的堆使用情况(它也这样做)。您似乎可以访问 8GB 物理内存,而您当前正在使用 7.97 GB(即几乎全部)可用物理内存(用于计算机上运行的所有内容,包括带有应用程序的 Java 虚拟机)。如果您对如何改进文本有任何建议,请告诉我! :)

© www.soinside.com 2019 - 2024. All rights reserved.