使用OpenJ9的类数据共享时,对JVM内存的哪个区域的影响最大

时间:2019-03-26 19:15:49

标签: jvm openj9

我正在寻找经验证据来支持使用Open J9的class data sharing功能。此功能声称:

  

在同一主机上运行的多个Java虚拟机(JVM)之间提供透明,动态的数据共享,从而减少了每个JVM实例消耗的物理内存量

我正在使用docker compose来运行同一应用程序的5个副本和一个本地prometheus服务器,以监视所有5个JVM中的内存使用情况。

我在启用和禁用类数据共享功能的情况下运行,然后查看指标。

  • 已加载jvm类
  • jvm非堆内存
  • jvm类存储
  • jvm JIT数据缓存
  • 缓冲存储器

全部通过Prometheus执行器端点在Spring Boot应用程序中公开。

我的直觉告诉我,如果将某些内存映射文件用于类存储,我可能会看到类存储和非堆内存的使用量有所减少。

并不是说我的测试非常科学,但是到目前为止,我发现情况恰恰相反-当我启用该功能时,这两个指标都略有上升(边际量但没有下降)。

真正应该在哪里评估该功能的影响。从表面上看,我认为它应该产生一些可衡量的影响,因为所有5个应用程序都是相同的,这使我感到自己在测量错误的东西。

0 个答案:

没有答案