我正在寻找经验证据来支持使用Open J9的class data sharing功能。此功能声称:
在同一主机上运行的多个Java虚拟机(JVM)之间提供透明,动态的数据共享,从而减少了每个JVM实例消耗的物理内存量
我正在使用docker compose来运行同一应用程序的5个副本和一个本地prometheus服务器,以监视所有5个JVM中的内存使用情况。
我在启用和禁用类数据共享功能的情况下运行,然后查看指标。
全部通过Prometheus执行器端点在Spring Boot应用程序中公开。
我的直觉告诉我,如果将某些内存映射文件用于类存储,我可能会看到类存储和非堆内存的使用量有所减少。
并不是说我的测试非常科学,但是到目前为止,我发现情况恰恰相反-当我启用该功能时,这两个指标都略有上升(边际量但没有下降)。
真正应该在哪里评估该功能的影响。从表面上看,我认为它应该产生一些可衡量的影响,因为所有5个应用程序都是相同的,这使我感到自己在测量错误的东西。