OrientDB:嵌入式应用程序 - 内存不足 - 如何配置 OrientDB 内存使用

OrientDB: embedded application - out of memory - how to configure OrientDB memory usage

使用 Java JDK 1.8.0_60, OrientDB 2.1.3 (embedded/plocal)

我想知道是否有任何方法可以在 Java 进程中将 OrientDB 的内存设置配置为 "share" 内存 space 更好(尤其是当 OrientDB 不一定是 "primary/only" 模块 运行 在进程中)。

例如
下面的内存配置文件在我们的应用程序之外显示了 OrientDB 运行 本身(我们将其用于负载测试)。 OrientDB 做的很棒!

-Xmx500m -Dstorage.diskCache.bufferSize=500


如您所见,OrientDB 很好地遵守了 500MB 的限制。然而,当我们将它放回到我们的应用程序中时,我们的应用程序的任何其他部分需要更多内存来做其他事情,你就会明白这可能是一个问题,特别是如果 OrientDB 位于上面圈出的峰值区域之一。当 OrientDB 似乎正在与它嵌入的应用程序的其余部分竞争内存时,就会发生内存不足错误。

有什么想法吗?我们应该尝试调整其他内存设置吗?
谢谢!

在对 OrientDB 进行了几次实验之后,我们确定它从未打算成为 space 过程中的第二个 class 公民。我的意思是 OrientDB 被设计为 "the process" 而不是像嵌入 SQLite 那样在应用程序中轻度使用。

因此,我们将 OrientDB 移动到一个单独的 service/process 中,这样它就不会与我们应用程序的内存冲突 space。以这种方式似乎工作正常。