Elasticsearch 内存管理与性能优化指南
在 Elasticsearch 的使用过程中,合理管理内存和优化性能至关重要。下面将详细介绍控制内存使用和减少延迟的方法。
1. 限制 Fielddata 大小
为了防止 Fielddata 耗尽内存,可以在 config/elasticsearch.yml 文件中添加如下设置来设置其上限:
indices.fielddata.cache.size: 40%
这个设置可以是堆大小的百分比,也可以是具体的值,如 5gb 。设置之后,最近最少使用的 Fielddata 会被驱逐,以为新加载的数据腾出空间。
需要注意的是,网上可能会看到 indices.fielddata.cache.expire 设置,但千万不要使用它。这个设置可能会在未来被弃用,它会让 Elasticsearch 驱逐超过指定时间的 Fielddata 值,无论这些值是否正在被使用,这会严重影响性能,而且没有实际的好处。
2. 监控 Fielddata
密切关注 Fielddata 的内存使用情况以及是否有数据被驱逐非常重要。高驱逐计数可能表示存在严重的资源问题和性能不佳的原因。可以通过以下方式监控 Fielddata 使用情况:
- 按索引监控 :使用 indices-stats API
GET /_stats/fielddata?fields=
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



