Elasticsearch OutOfMemoryError Java 堆空间

新手上路,请多包涵

我正在运行一个 8 核、32g RAM 的弹性搜索节点,它有 5 个分片、4 亿(小)文档。

一切正常,直到我运行 agg 搜索,然后分片开始失败:

 java.lang.OutOfMemoryError: Java heap space

更改了堆大小export ES_HEAP_SIZE=16g (还有 ES_MAX_MEMES_MIN_MEM 相同)

还为 elasticsearch 更改了 yml 文件:

 bootstrap.mlockall: true

甚至(安装文档推荐):

 sudo sysctl -w vm.max_map_count=262144

重启服务还是没影响,还是 java.lang.OutOfMemoryError: Java heap space

还有其他建议吗?除了不运行 agg 查询?

查询是:

 https://localhost:9200/my_index_name/_search?search_type=count
{
  "aggs": {
    "distinct_hostname": {
      "cardinality": {
        "field": "hostname"
      }
    }
  }
}

原文由 B.P 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 531
1 个回答

我想我已经发现了错误。我正在使用“服务”来运行 elasticsearch,因此我的环境变量被删除了。我必须使用正确的环境变量(特别是 ES_HEAP_SIZE=16g )更新 /etc/default/elasticsearch 文件。

到目前为止它运行良好并且应用程序没有错误。

原文由 B.P 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题