2017-08-23 54 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的執行 –