机器内存分配
官方推荐一个ES节点最好是分配当前机器最大内存的50%,比如机器内存是16g,就分配8g给ES:-Xmx8g
。
剩下的8g内存并不是说就闲置了,ES会拿机器剩余的内存来优化自身的查询效率。也就是说,并不是一味将最大内存设置很大就是最优解。
优化分段内存占用
随着ES数据量的增加,分段(segment)数量会越来越多,占用的内存也会逐渐增加,可以通过以下方式来释放分段占用的内存:
- 删除不用的索引
- 关闭索引,此时数据依然存在于磁盘,但是占用的内存会被释放
- 定期合并不再更新的索引的分段,将多个小分段合并成大分段,具体接口可以参考这部分文章
参考链接
- Elasticsearch调优——segment memory