配置OrientDb - 性能和容量

时间:2016-09-08 17:10:00

标签: orientdb

我回到这个话题

我有一个

的数据库
  • 1百万研究(psq)
  • 1百万出版物(酒吧)
  • psq和pub之间的12.5百万边缘

我执行此查询

SELECT  
    psq1.psq_nome AS nomePesquisador, COUNT(pub1) AS qtdPub
FROM 
    (MATCH 
        {class:Pesquisador, as:psq1}.outE("PUBLICOU").inV(){as:pub1}
     RETURN psq1, pub1)
GROUP BY 
    psq1
ORDER BY 
    qtdPub DESC, nomePesquisador
LIMIT 1000;

OR

SELECT out.psq_nome AS nomePesquisador, COUNT(in.@rid) AS qtdPub
FROM Publicou
GROUP BY out.psq_nome
ORDER BY qtdPub DESC, nomePesquisador
LIMIT 1000;

然后存在内存堆错误

我如何配置OrientDb以允许我执行此操作?

1 个答案:

答案 0 :(得分:1)

调整最重要的是确保内存设置正确。可以产生真正差异的是堆映射与内存映射使用的虚拟内存之间的正确平衡,特别是在大型数据集(GB,TB等)中,内存缓存结构的数量小于原始IO。

例如,如果您可以为Java进程分配最大8GB,则通常更好地分配小堆和大磁盘缓存缓冲区(堆外内存)。所以而不是:

java -Xmx8g ...

你可以试试这个:

java -Xmx800m -Dstorage.diskCache.bufferSize=7200 ...

参考:Performance Tuning