2014-03-28 15 views
0

我的規格:增加堆空間可供JVM:OutOfMemoryError錯誤:請求的數組大小超過VM限制的Ubuntu 64位的Neo4j 2.0

-Ubuntu 64

-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作出修正/東西

嘗試,我在網上找到的:

I read what the manual says to do

And what the Ubuntu Forums say to do

所以我試着去我的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配置。我該如何解決這個問題,我是否錯過了一些東西?

+0

使用標題X-Stream:true,然後結果將流式傳輸到客戶端。你首先如何提出你的要求? –

回答

2

您應該將JVM設置放入conf/neo4j-wrapper.conf文件中。它應該是這樣的:

[email protected]:> 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/目錄,以便讀取描述每一個文件,以熟悉什麼可以做,如何。

+0

我已經知道了,但這正是我必須要解決的問題。很好的答案! – AngelloMaggio

相關問題