1

我在 OrientDB v.2.1 上使用 console.sh 进行选择。等待几分钟后,我得到以下输出:

java.lang.OutOfMemoryError: GC overhead limit exceeded

我有 6GB 的可用 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 回答