增加JVM可用的堆空间:OutOfMemoryError:请求的数组大小超过VM限制Ubuntu 64Bit Neo4j 2.0

我的规格:

-Ubuntu 64bit

-Neo4j 2.0

-32 GB的Ram

-AMD FX-8350八核处理器

问题:

我正在使用以下查询向我的Neo4j服务器发出请求:

MATCH (being:my_label_2) RETURN being 

并给我这个错误:

 OutOfMemoryError Requested array size exceeds VM limit StackTrace: java.lang.StringCoding$StringEncoder.encode(StringCoding.java:300) java.lang.StringCoding.encode(StringCoding.java:344) java.lang.String.getBytes(String.java:916) org.neo4j.server.rest.repr.OutputFormat.toBytes(OutputFormat.java:194) org.neo4j.server.rest.repr.OutputFormat.formatRepresentation(OutputFormat.java:147) org.neo4j.server.rest.repr.OutputFormat.response(OutputFormat.java:130) org.neo4j.server.rest.repr.OutputFormat.ok(OutputFormat.java:67) org.neo4j.server.rest.web.CypherService.cypher(CypherService.java:101) java.lang.reflect.Method.invoke(Method.java:606) org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139) org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112) 

这适用于“my_label_1”,返回大约30k的结果

我认为是问题所在:

我没有足够的内存分配给我的JVM

尝试修复/我在网上找到的东西:

我阅读了手册所说的内容

Ubuntu论坛说要做什么

所以我试着去我的neo4文件夹(像往常一样使用cd)并以这种方式运行它:

 sudo bin/neo4j start -Xmx4096M 

但是那没用。 当Neo4j启动时它确实警告我,我可能没有足够的空间:

 WARNING: Max 1024 open files allowed, minimum of 40 000 recommended. See the Neo4j manual. Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled 

我知道我肯定使用错误的参数,老实说,我对JVM配置没有多少经验。 我该怎么办呢,我错过了什么吗?

您应该将JVM设置放入conf/neo4j-wrapper.conf文件中。 它应该如下所示:

 user@pc:> head -n 7 neo4j-enterprise-2.0.0/conf/neo4j-wrapper.conf wrapper.java.additional=-Dorg.neo4j.server.properties=conf/neo4j-server.properties wrapper.java.additional=-Djava.util.logging.config.file=conf/logging.properties wrapper.java.additional=-Dlog4j.configuration=file:conf/log4j.properties # Java Additional Parameters wrapper.java.additional=-XX:+UseConcMarkSweepGC wrapper.java.additional=-XX:+CMSClassUnloadingEnabled 

请注意,您可以通过不同的文件配置neo4j的不同方面,因此最好将描述读取到该conf/目录中的每个文件,以便熟悉可以完成的工作和具体操作。