2017-08-23 51 views
0

我运行此查询遍历一个图形Gettig OrientDB Java堆

查询:

TRAVERSE out("Re") FROM #21:39161 WHILE $depth <= 3 
      STRATEGY BREADTH_FIRST 

我的数据集是11M的边缘和20000个节点

我得到这个Java异常

[OServer]java.lang.OutOfMemoryError: Java heap space 
Dumping heap to java_pid3920.hprof ... 
Heap dump file created [911684234 bytes in 26,730 secs] 

我使用这个配置

rem ORIENTDB MAXIMUM HEAP. USE SYNTAX -Xmx<memory>, WHERE <memory> HAS THE TOTAL MEMORY AND SIZE UNIT. EXAMPLE: -Xmx512m 
set MAXHEAP=-Xmx6G 
rem ORIENTDB MAXIMUM DISKCACHE IN MB, EXAMPLE: "-Dstorage.diskCache.bufferSize=8192" FOR 8GB of DISKCACHE 
set MAXDISKCACHE=8GB 

我怎样才能解决这个问题?

+0

你必须增加你的java进程的最大堆值。 – pabrantes

+0

@pabrantes我把磁盘的最大值增加到了每4G的10G,但磁盘仍然在运行。 –

回答

0

尝试使用:

TRAVERSE out("Re") FROM #21:39161 MAXDEPTH 3 STRATEGY BREADTH_FIRST 

MAXDEPTH是在RAM和速度方面更有效。如果不起作用,请减少DISKCACHE并将切入堆。所以:

set MAXHEAP=-Xmx10G 
set MAXDISKCACHE=4GB 
+0

当这样做已经达到13G的磁盘1G时,现在我得到了GC的执行 –