私の仕様:
-Ubuntu 64 ビット
-Neo4j 2.0
-32 GB の RAM
-AMD FX-8350 8 コア プロセッサ
問題:
次のクエリを使用して、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)
これは、約 30,000 件の結果を返す「my_label_1」で問題なく動作します
私が信じているのは問題です:
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構成の経験があまりありません. これにどのようにアプローチすればよいですか、何か不足していますか?