美文网首页
ES segment optimize

ES segment optimize

作者: 转身一世铅华尽 | 来源:发表于2020-07-02 10:18 被阅读0次

ES的segment的问题

起因:用户发现ES索引占用文件句柄过高,经过各种排查((0-0)过程这里不叙述了),结论就是ES的segment过于零散,发现可能是segment没有进行自动合并,所以需要在这一块进行优化

首先,解决问题:

对segment进行手动合并,通过以下命令:

POST  /INDEX/_forcemerge
{
  "max_num_segments":1
}
//该命令针对5.0以上版本的ES,5.0以下可以使用以下
POST  /INDEX/_optimize
{
  "max_num_segments":1
}

以下这篇转载的原创文章里面有专门查看forcemerge相关的信息
elasticsearch force merge 步骤 原创

segment优化

在ES的默认配置中,segment的默认合并大小为2M,就是当segment大小达到2M时,会自动进行segment的合并,可以通过以下命令查看到

GET INDEX/_setting?include_defaults

"policy": {
    "fool_segment": "2mb",
    "max_merge_at_once_explicit": "30", //显示调用optimize 操作或者 expungeDeletes时可以操作多少个segments,默认是30
    "max_merge_at_once": "10",//一次最多只操作多少个segments,默认是10.
    "max_merged_segment": "5gb",//超过多大size的segment不会再做merge,默认是5g
    "expunge_deletes_allowed": "10.0",//指删除了的文档数在一个segment里占的百分比,默认是10,大于这个值时,在执行expungeDeletes 操作时将会merge这些segments.
    "segments_per_tier": "10.0"//每个tier允许的segement 数,注意这个数要大于上面的at_once数,否则这个值会先于最大可操作数到达,就会立刻做merge,这样会造成频繁的访问操作
}

上述这些样式都是可以动态优化的通过以下命令

PUT INDEX/_settings
{
   "merge.policy.fool_segment": "2mb",
    "mergr.policy.max_merge_at_once_explicit": "30", 
    "mergr.policy.max_merge_at_once": "10",
    "mergr.policy.max_merged_segment": "5gb",
    "mergr.policy.expunge_deletes_allowed": "10.0",
    "mergr.policy.segments_per_tier": "10.0"
}

通过上述命令对ES的segment的参数进行动态优化,减轻磁盘IO压力,减少文件句柄数

相关文章

  • ES segment optimize

    ES的segment的问题 起因:用户发现ES索引占用文件句柄过高,经过各种排查((0-0)过程这里不叙述了),结...

  • 【转载】JS语法 ES6、ES7、ES8、ES9、ES10、ES

    原文:JS语法 ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性[https://segment...

  • es 合并策略

    1、tiered (es4.x后的默认合并策略) 先对segment进行排序,然后选取合适的segment...

  • ES refresh和flush的区别

    参考来源 lucene segment的产生,flush, commit与es的refresh,flush Fil...

  • es 知识点记录

    es 知识点 [TOC] 数据写入过程 Lucene 把每次生成的倒排索引,叫做一个段(segment)。然后另外...

  • elastic 冷热数据分离

    分析 管理es节点角色划分、并发shard与线程池设定、冷热数据分离、定期合并segment等 索引特点当天索引写...

  • optimize

    linux性能分析及调优__cpu 性能瓶颈调优可调性能参数 、内存性能瓶颈可调性能参数(操作系统设置swap的目...

  • optimize

    code 容器View , keep扩展性 (eg: 设计 accostVC, 联动的应是两containerVi...

  • UISegmentControl

    常用方法 新增一个文字segment 新增一个图片segment 删除某个segment 删除所有segment ...

  • centos7系统初始化脚本

    [root@linux-node1 ~]# cat optimize.sh[http://optimize.sh]...

网友评论

      本文标题:ES segment optimize

      本文链接:https://www.haomeiwen.com/subject/dhelqktx.html