增加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/
目录中的每个文件,以便熟悉可以完成的工作和具体操作。