我们在使用elasticsearch时,常常会遇到outofmemoryerror java heap space 的ERROR,但是我们却没法找到产生这个ERROR的背后正在的原因的描述日志。我们仅仅看到的ERROR描述如:
|
产生这类型错误的可能原因如下(部分):
1.读取过多的数据到内存,尤其是field data字段(在使用sorting和aggregations)
2.配置出错,设置的heap size没有生效,可能是设置错地方了。默认的heap size(min 256M,max 1G)是不够用的。
3.做索引的数据过多,比如bulk size设置过大
4.查询时,要求返回的数据量太大(size设置过大)
5.主节点的内存不够用,这种情况下可能是由于cluster state引起的。若索引使用大量的别名(alias),cluster state就会使用大量的内存。
PS:出现OOM的节点必须重启。