【问题标题】:IoTDB memory usage exceed MAX_HEAP_SIZEIoTDB 内存使用量超过 MAX_HEAP_SIZE
【发布时间】:2021-12-28 23:11:24
【问题描述】:

我在一台 32GB 内存的机器上使用 IoTDB,并在 iotdb_env.sh 中设置 JVM 最大内存如下:

MAX_HEAP_SIZE = 25G

但是,经过两个小时的数据摄取,我发现 IoTDB 已经使用了 31GB 内存,很快就会被 OOM Killer 杀死。为什么 IoTDB 可以使用比 MAX_HEAP_SIZE 更多的内存?

【问题讨论】:

    标签: apache-iotdb iotdb


    【解决方案1】:

    在jvm中,内存分为堆内存和非堆内存。您可以参考此问题以获取更多详细信息: What is the difference between Java Non Heap Memory and Stack Memory? Are they Same if not what is the difference between them? IoTDB 使用一些使用非堆内存的直接缓冲区。所以总内存使用量将超过 MAX_HEAP_SIZE。您可以在“iotdb_env.sh”中使用以下参数来控制非堆内存:

    MAX_DIRECT_MEMORY_SIZE = 5G
    

    您需要确保 MAX_HEAP_SIZE + MAX_DIRECT_MEMORY_SIZE

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2014-11-15
      • 1970-01-01
      • 2010-10-02
      • 2014-12-17
      • 2019-03-28
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多