OutOfMemoryError:Neo4j中的Java堆空间

时间:2018-09-04 11:54:01

标签: neo4j jvm heap-memory neo4j-apoc

我正在尝试从联接的表中检索所有字段。结果的大小应该是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 个答案:

答案 0 :(得分:0)

您正在尝试执行一个比Neo4j所能提供的更多RAM的查询。因此,您需要增加堆大小。

您可以尝试以下Neo4j设置:

dbms.memory.heap.max_size=2048M
dbms.memory.heap.initial_size=2048M

欢呼