OutOfMemoryError:Neo4j 中的 Java 堆空间
Posted
技术标签:
【中文标题】OutOfMemoryError:Neo4j 中的 Java 堆空间【英文标题】:OutOfMemoryError: Java heap space in Neo4j 【发布时间】:2019-02-09 10:55:48 【问题描述】:我正在尝试从连接的表中检索所有字段。结果的大小应该是 5893886 条记录。每次我尝试使用适用于 Scala 的 Neo4j 驱动程序运行此查询时,都会出现这种错误:
Exception in thread "dispatcher-event-loop-4" *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message can't create byte array at JPLISAgent.c line: 813
*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message can't create byte array at JPLISAgent.c line: 813
java.lang.OutOfMemoryError: Java heap space
我应该如何优化我的查询或调整设置来修复这个错误? 我的查询如下所示:
MATCH (m:Member)-[mg_r:PARTICIPATE_IN]->(g:Group)
RETURN m.member_id, m.member_join_id, m.bio, m.city, m.country,
m.joined, m.lat, m.link, m.lon, m.member_name, m.state,
m.member_status, m.visited, m.group_id, g.group_id, g.category_id,
g.category_name, g.city_id, g.city, g.country, g.created, g.join_mode,
g.lat, g.link, g.lon, g.members, g.rating
此外,Neo4j conf 文件内容看起来是这样的:
dbms.allow.upgrade=true
dbms.allow.format.migration=true
dbms.security.allow.csv.import.from.file.urls=true
wrapper.java.additional=-Dneo4j.ext.udc.source=docker
ha.host.data=350d989e7781:6001
ha.host.coordination=350d989e7781:5001
dbms.tx_log.rotation.retention_policy=100M size
dbms.memory.pagecache.size=512M
dbms.memory.heap.max_size=1024M
dbms.memory.heap.initial_size=1024M
【问题讨论】:
【参考方案1】:您正在尝试执行的查询需要比 Neo4j 提供的更多 RAM。因此您需要增加堆大小。
你能试试这个 Neo4j 设置吗:
dbms.memory.heap.max_size=2048M
dbms.memory.heap.initial_size=2048M
干杯
【讨论】:
以上是关于OutOfMemoryError:Neo4j 中的 Java 堆空间的主要内容,如果未能解决你的问题,请参考以下文章
Neo4j 图形数据库 java.lang.OutOfMemoryError:Java 堆空间。 Neo4j 图数据库
Neo4j - 无法删除节点 - 获取 java.lang.OutOfMemoryError:Java 堆空间