设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 medcl 贡献。

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。
优化

  1. 限制fielddata大小,fielddata是针对text类型进行排序、聚合才用到。正常应该避免这种情况发生。
  2. 限制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 • 来自相关话题