Elasticsearch OutOfMemoryError Java堆空间

时间:2014-12-08 14:13:44

标签: java elasticsearch out-of-memory heap-memory

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

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

java.lang.OutOfMemoryError: Java heap space

我有changed heap sizeexport ES_HEAP_SIZE=16g(同样ES_MAX_MEMES_MIN_MEM

还更改了elasticsearch的{​​{1}}文件:

yml

甚至(安装文档推荐):

bootstrap.mlockall: true

重启服务但仍然没有影响,仍为sudo sysctl -w vm.max_map_count=262144

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

查询是:

java.lang.OutOfMemoryError: Java heap space

2 个答案:

答案 0 :(得分:19)

我想我发现了这个错误。我使用'service'来运行elasticsearch,因此我的环境变量被剥离了。我必须使用correcct env变量(特别是/etc/default/elasticsearch)更新ES_HEAP_SIZE=16g文件。

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

答案 1 :(得分:5)

更新Elasticsearch 5的Java堆大小的正确方法不是EXPORT _JAVA_OPTIONSEXPORT ES_HEAP_SIZE或使用命令行参数。据我所知,所有这些都被Elasticsearch安装目录config/jvm.options中的配置文件覆盖。要更改这些设置,您需要在该文件中编辑这些行:

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms2g
-Xmx2g