elasticsearch多次查询得分不一致
hapjin 回复了问题 • 6 人关注 • 4 个回复 • 3339 次浏览 • 2019-09-27 17:59
elasticsearch中 transport最大传输限制 在哪设置?
micmouse521 回复了问题 • 2 人关注 • 1 个回复 • 1676 次浏览 • 2019-08-29 23:10
elasticsearch内部会对dsl进行优化吗
kennywu76 回复了问题 • 5 人关注 • 2 个回复 • 5093 次浏览 • 2018-09-18 12:15
idea 导入 elasticsearch源码报错
大慈大悲掌 回复了问题 • 2 人关注 • 2 个回复 • 10233 次浏览 • 2018-07-06 11:26
哪种类型的数据会占用大量terms_memory,有何优化方案?
zqc0512 回复了问题 • 6 人关注 • 3 个回复 • 3375 次浏览 • 2018-07-05 17:16
elastic搜索得到距离lbs的距离,但是不想让距离参与排序,只按价格排序,如何实现
pygmalion666 回复了问题 • 2 人关注 • 2 个回复 • 1792 次浏览 • 2019-11-14 17:53
嵌套聚合中子聚合是不是只对上一级聚合显示的bucket的数据进行聚合,对于处在sum_other_doc_count中的bucket不进行聚合了
JackGe 回复了问题 • 6 人关注 • 3 个回复 • 3764 次浏览 • 2018-09-10 23:36
elasticsearch排序java api如何实现根据某字段值不同选择不同字段排序
hufuman 回复了问题 • 2 人关注 • 1 个回复 • 4313 次浏览 • 2018-07-05 21:18
elasticsearch5.2.0安装时Could not find any executable java binary.
Dm 回复了问题 • 2 人关注 • 1 个回复 • 4115 次浏览 • 2018-07-05 14:42
ROOT用户启动ES后出现Too many open files异常
qq171563857 回复了问题 • 4 人关注 • 3 个回复 • 7399 次浏览 • 2019-09-02 11:36
ElasticSearch不知道怎么插入数据
大慈大悲掌 回复了问题 • 2 人关注 • 1 个回复 • 2663 次浏览 • 2018-07-04 17:25
windows运行ElasticSearch.bat报错
Dm 回复了问题 • 2 人关注 • 1 个回复 • 4637 次浏览 • 2018-07-05 14:47
计算字段所占百分比
xiaoyanghapi 回复了问题 • 2 人关注 • 2 个回复 • 5943 次浏览 • 2018-12-29 14:57
ES内存分配规划
yayg2008 发表了文章 • 2 个评论 • 9697 次浏览 • 2018-07-04 15:15
阅读本文前,请先阅读[ES内存分析](https://elasticsearch.cn/article/698)。
ES默认配置下,heap是存在超卖情况的。
| 类目 | 默认占比 | 是否常驻 | 淘汰策略(在控制大小情况下) | 控制参数 |
| --- | --- | --- | --- | --- |
| query cache | 10% | 是 | LRU | indices.queries.cache.size |
| request cache | 1% | 是 | LRU | indices.requests.cache.size |
| fielddata cache | 无限制 | 是 | LRU | indices.fielddata.cache.size |
| segment memory | 无限制 | 是 | 无 | 不能通过参数控制 |
| common space | 70% | 否 | GC | 通过熔断器 indices.breaker.total.limit 限制 |
common space(可GC)
| 子类目 | 默认占比 | 控制参数 |
| --- | --- | --- |
| indexing buffer | 10% | indices.memory.index_buffer_size |
| request agg data | 60% | indices.breaker.request.limit |
| in-flight data | 100% | network.breaker.inflight_requests.limit |
通过上表可知,segment memory是非常重要,而且是不可通过参数干预的内存空间,而cache部分则可以提升性能,可以被清除。common space 是运行时的动态空间,可以被GC。
综上所述,需要保证segment memory+cache+common space不超过100%。由于熔断器是按整个heap大小来计算的,所以如果segment memory 过大,仍然可能会导致OOM。为了减少这种情况的发生,需要预留足够空间给segment。
优化
- 限制fielddata大小,fielddata是针对text类型进行排序、聚合才用到。正常应该避免这种情况发生。
- 限制request agg data大小,这个参数会影响聚合使用的内存,如果触发熔断,业务需要进行优化。
内存分配
segment memory
预留10%
fielddata cache
限制在20%
query cache
限制10%
request cache
限制1%
indexing buffer
限制10%
request agg data
限制1%
父熔断器配置30%,扣除fielddata,agg剩余的就是in-flight
in-flight data
限制9%
参数设置
```plain
indices.fielddata.cache.size:1%--需要重启节点
PUT _cluster/settings
{
"persistent": {
"indices.breaker.fielddata.limit":"20%",
"indices.breaker.request.limit":"1%",
"indices.breaker.total.limit":"70%"
}
}
```
请教使用dynamic_mapping模式插入纯数字字符串遇到的问题
回复zhuangfy92 发起了问题 • 1 人关注 • 0 个回复 • 2428 次浏览 • 2018-07-04 15:08