即使 onHeapCacheEnabled 设置为 false,Ignite large query 也会将数据存储在内存中

Ignite large query stores data in memory even when onHeapCacheEnabled is set to false

我在嵌入模式下 运行ning ignite 2.3,这意味着我的默认数据存储模式是堆外模式。我没有启用堆缓存。

问题是当我 运行 一个大型查询时,数据在最终被垃圾回收之前在堆上存储了很长时间。这是预期的吗?为什么 JVM 需要这么长时间来垃圾收集这些数据。

我很担心,因为作为我的查询结果,它在堆上占用的数据会影响我的应用程序性能。

我的缓存配置如下:

Ignite 总是在堆外存储数据,堆上缓存是一项功能,使您能够使用 Java 堆作为堆外内存的缓存,并配置特定于此缓存的逐出策略。

因此,您在 onHeapCacheEnabled=false 的 Java 堆上观察到的数据在您的情况下不是 Ignite 缓存数据,而是绝对预期存在的 Java 应用程序内存占用空间。如果您遇到与 GC 相关的应用程序性能问题,请查看 Ignite 文档的 Preparing for Production and namely Garbage Collection Tuning 部分以获取调优提示或在此处提出任何具体问题。

此致。