【发布时间】:2023-08-18 08:43:01
【问题描述】:
我在 OrientDB 中导入一个中等大小的 GraphML 文件(大约 8GB),但我不断收到以下错误:
Importing GRAPHML database from database /root/neo/out.graphml...
Error: java.lang.OutOfMemoryError: GC overhead limit exceeded
我尝试在本地或作为远程数据库 (remote:localhost) 连接到我的数据库,但无济于事。公平地说,远程连接有帮助,但还不够。我还尝试调整控制台应用程序和数据库服务器本身的堆大小(最高为 2048)。这也有帮助,但还不够,我不清楚到底是哪一个帮助了。
我想知道导入过程的哪一部分需要这么多堆内存,因为 OrientDB 本身不使用堆内存进行数据库操作。哪个代理(加载 graphml 的控制台或保存导入结果的数据库)在这里需要更多的堆内存,在这种情况下,将内存分配给 java 堆的最佳方式是什么?最后:与远程连接到同一台机器上的同一个本地数据库(远程:localhost)相比,当我在本地连接到数据库时,内存分配需求是否存在差异?
【问题讨论】:
-
您是针对 plocal 还是远程导入?尝试更快更轻的 plocal。
-
正如我上面所说,我都尝试过。实际上,我注意到使用远程(更好的并行支持?)时性能有所提高。尽管如此,我还是会出现内存不足的错误。
标签: java memory import heap-memory orientdb