有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

面向java的数据库2.2.*+嵌入式推荐32位/x86配置/JVM参数

我想问一下,为了在32位/x86 Windows上正常运行,向OrientDB和JVM传递哪些建议/必需的参数

我们正在运行OrientDB 2.2.2,如果配置Xmx+存储,我会看到OOM问题。磁盘缓存。缓冲区大小总计超过1.5gb。如果我将总数设置为~1.4gb,那么行为会更稳定一些。我还要设置内存。大块大小设置为400以正确启动orientdb。我试图遵循性能调优页面上的指导原则,但似乎大多数修辞都假设使用64位/x64系统

以下是我们的设置:

  • -Xrs
  • -XX:+UseG1GC
  • -XX:+攻击性选项
  • -XX:CompileThreshold=200
  • -XX:+HEAPDUMPONAUTOFMEMORYERROR
  • -XX:MaxDirectMemorySize=1g(将此设置为2g会导致稳定性问题)
  • -乔娜。nosys=true(根据orientdb github问题后的建议)
  • -数据存储。沃尔。syncOnPageFlush=false
  • -数据存储。磁盘缓存。缓冲区大小=712
  • -数据记忆。大块size=400(这是必需的吗?我们看到添加后的行为更加稳定)
  • -DORIENTDB_HOME=C:\someLocation
  • -DSERVERLOGS\u DIR=C:\someLocation\logs
  • -Xms10m
  • -Xmx712m

如果可能的话,我希望OrientDB提供一些明确的32位建议

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

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

    在orientdb服务器配置中。xml:

    1. 较小的墙

      • <entry value="true" name="storage.useWAL"/>
      • <entry value="32" name="storage.wal.maxSegmentSize"/>
      • <entry value="256" name="storage.wal.maxSize"/>
    2. 较小的内存块大小(默认值为MAX_INT 2147483647)

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

    在JVM参数中:

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