0

我正在尝试在 GridGain 缓存中加载大约 600MB 的数据,我正在尝试使用交换空间来减少我的 RAM 上的负载。我正在从 CSV 文件加载数据。我将前 10000 个键加载到内存中,然后将其余的加载到交换空间中。我能够加载 1350000 个密钥,但之后我收到以下错误:

[16:58:34,701][SEVERE][exchange-worker-#54%null%][GridWorker] Runtime error caught during grid runnable execution: GridWorker [name=partition-exchanger, gridName=null, finished=false, isCancelled=false, hashCode=20495511, interrupted=false, runner=exchange-worker-#54%null%]
java.lang.OutOfMemoryError: Java heap space
    at java.util.HashMap.resize(HashMap.java:559)
    at java.util.HashMap.addEntry(HashMap.java:851)
    at java.util.HashMap.put(HashMap.java:484)
    .
    .
    .
    at java.lang.Thread.run(Thread.java:722)

GridGain node stopped OK [uptime=00:21:14:384]

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
4

1 回答 1

0

我认为您显然用完了堆空间。为了利用交换空间,您应该配置驱逐策略。有关如何配置 Swap 和 OffHeap 空间的更多信息,请参阅OffHeap 内存文档。

此外,这篇文章中还有一些关于内存利用率的解释:我可以减少缓存内存的空间吗?

于 2014-07-12T04:57:55.783 回答