1

OrientDB v.2.1 で console.sh を使用して選択を行っています。数分待った後、次の出力が得られます。

java.lang.OutOfMemoryError: GC overhead limit exceeded

6 GB の RAM が利用可能で、デフォルト構成を使用しています。

JAVA_OPTS=-Xmx1024 のコメントを外して値を 4G に変更し、orientdb を再起動してクエリを再度実行しようとしました...結果は次のとおりです。

Exception in thread "OrientDB WAL Flush Task (dati_scopus)" 
Error: java.lang.OutOfMemoryError: Java heap space

orientdb {db=dati_scopus}> java.lang.OutOfMemoryError: Java heap space
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.addConditionWaiter(AbstractQueuedSynchronizer.java:1855)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2068)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

結果を出すにはどうすれば修正できますか?

更新:デフォルト構成でバージョン 2.2 を使用した同じ話

Error: java.lang.OutOfMemoryError: GC overhead limit exceeded
4

1 に答える 1

1

OrientDB コンソールを使用して OutOfMemoryError を解決するには、ヒープの最小サイズと最大サイズを変更します。

bin/console.sh を編集して、exec 引数を変更します。たとえば、最小で 5GB、最大で 6GB を使用するには、次のように指定します。

exec "$JAVA" -Xms5g -Xmx6g -client $JAVA_OPTS $ORIENTDB_SETTINGS $SSL_OPTS

SSL_OPTS パラメーターで Xmx 値を必ず削除してください (そうしないと、指定された以前の Xmx が上書きされ、Xms より小さい場合はエラーが表示されます)。

于 2016-05-25T14:49:46.080 に答える