OrientDB 2.2.*+ Embedded 推荐的 32 位/x86 配置/JVM 参数

Posted

技术标签:

【中文标题】OrientDB 2.2.*+ Embedded 推荐的 32 位/x86 配置/JVM 参数【英文标题】:OrientDB 2.2.*+ Embedded Recommended 32-bit/x86 Configuration/JVM Parameters 【发布时间】:2016-10-25 01:40:44 【问题描述】:

我想问一下为了在 32 位/x86 Windows 上正常运行,传递给 OrientDB 和 JVM 的推荐/必需参数是什么?

我们正在运行 OrientDB 2.2.2,如果我们配置 Xmx + storage.diskCache.BufferSize 总计超过 1.5gb,我会看到 OOM 问题。如果我将总数设置为 ~1.4gb,则行为会更加稳定。我还必须将 memory.chunk.size 设置为 400 才能正确查看 orientdb 启动。我正在尝试遵循性能调整页面上的指导方针,但似乎大多数言论都假设是 64 位/x64 系统。

这是我们设置的:

-Xrs -XX:+使用G1GC -XX:+AggressiveOpts -XX:CompileThreshold=200 -XX:+HeapDumpOnOutOfMemoryError -XX:MaxDirectMemorySize=1g(将此设置为 2g 会导致稳定性问题) -Djna.nosys=true(根据 orientdb github 问题后的建议) -Dstorage.wal.syncOnPageFlush=false -Dstorage.diskcache.bufferSize=712 -Dmemory.chunk.size=400(这是必需的吗?添加后我们看到行为更加稳定) -DORIENTDB_HOME=C:\someLocation -DSERVERLOGS_DIR=C:\someLocation\logs -Xms10m -Xmx712m

如果可能的话,我想从 OrientDB 获得一些明确的 32 位建议。

提前致谢!

【问题讨论】:

嗨@Kazelin 你能把错误发布到日志中吗?提前谢谢 嗨@MichelaBonizzi,使用上述设置,我们没有看到错误。我正在寻找配置/优化项目,以确保在 32 位 Windows 机器上运行不会导致任何处理/内存问题。我还添加了我们当前使用的 Xmx 和 Xms 值。 OrientDB 工作人员有什么建议吗? 我也有同样的问题。我们使用 32 位 Java 以获得更通用的兼容性,并且将 OrientDB 更新到 2.2.x(使用直接内存)让生活变得困难。对于具有少量内存 ( 【参考方案1】:

通过以下更改,我已经能够在 Windows 上可靠地运行 32 位 OrientDB。我注意到性能不如 OrientDB 2.0 好,可能是因为 OrientDB 现在假设更多内存,而 32 位 Java 无法提供。

在 orientdb-server-config.xml 中:

    更小的 WAL。

    <entry value="true" name="storage.useWAL"/> <entry value="32" name="storage.wal.maxSegmentSize"/> <entry value="256" name="storage.wal.maxSize"/>

    较小的内存块大小(默认为 MAX_INT 2147483647)。

    <entry name="memory.chunk.size" value="134217728"/>

在JVM参数中:

    最大堆为 512MB。 -Xmx512m 最大直接内存大于堆,但足够低,不会耗尽内存。 -XX:MaxDirectMemorySize=640m

【讨论】:

以上是关于OrientDB 2.2.*+ Embedded 推荐的 32 位/x86 配置/JVM 参数的主要内容,如果未能解决你的问题,请参考以下文章

OrientDB 删除网络 BigData

Orientdb:这个java实例不支持64位JVM

OrientDB for ETL(Kettle)

如何在 MEAN 堆栈中使用 orientDB

OrientDB 教程:文档数据库

OrientDB 中的嵌入式列表查询性能