0

私の仕様:

-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構成の経験があまりありません. これにどのようにアプローチすればよいですか、何か不足していますか?

4

1 に答える 1

2

conf/neo4j-wrapper.confJVM設定をファイルに入れる必要があります。次のようになります。

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/ため、何ができるか、どのように正確に行うことができるかを理解するために、そのディレクトリ内のすべてのファイルの説明を読むことをお勧めします.

于 2014-03-28T18:20:40.203 に答える