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 参数的主要内容,如果未能解决你的问题,请参考以下文章