博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elasticsearch 的Merge
阅读量:6302 次
发布时间:2019-06-22

本文共 721 字,大约阅读时间需要 2 分钟。

一个ES index 包含有多个sharding, sharding 主要用于分布式。 一个sharding里面也可以包含多个segment. es 在indexing 的时候会产生很多的segments。 segments 太多会导致文件句柄浪费严重, 并且搜索性能底下。 ES 自己也会去做merge, 算法和cassandra 的sizeTiered 算法类似(但稍逊一些)。合并后,search 性能有所提升,文件句柄所有下降。

如果你想强制进行一次激烈的compact将每个sharding 里面的indexes 数目都变成1.

POST {index-list}/_optimize?max_num_segments=1
然后可以通过
GET {index-list}/_segments 来确认segment count 的数目。

但如果在merge 的时候还有写入,你也有可能发现还有很多segments, 但那些segment 里面的document 会比较少。

在我自己的一次测试中,compact 之前有150 多个segments, compact 后只有5个, 因为有5个sharding. 文件句柄数从2000+ 降到了114 个。

如果要调整es 的默认compact 参数,可以参考

目前我自己遇到的情况是:
我们的某些log 每天产生一个index, 大小在30G左右。有些1个月产生一个log, 大小40~50G. 我们会有一个后台程序,每次产生新的log 后就会对老的index 进行全面的compact.

转载于:https://www.cnblogs.com/zhfan/p/4233228.html

你可能感兴趣的文章
因为你是前端程序员!
查看>>
数据库设计中的14个技巧
查看>>
Android学习系列(5)--App布局初探之简单模型
查看>>
git回退到某个历史版本
查看>>
ecshop
查看>>
HTML5基础(二)
查看>>
在GCE上安装Apache、tomcat等
查看>>
在Mac 系统下进行文件的显示和隐藏
查看>>
ue4(c++) 按钮中的文字居中的问题
查看>>
技能点
查看>>
读书笔记《乌合之众》
查看>>
Hadoop日记Day1---Hadoop介绍
查看>>
iOS 学习资料汇总
查看>>
centos7 yum安装jdk
查看>>
Bluedroid与BluZ,蓝牙测试方法的变动(基于bludroid和BlueZ的对比)
查看>>
接口和抽象类有什么区别
查看>>
Linux 下添加用户,修改权限
查看>>
请问view controller scene,该如何删除
查看>>
bootstrap新闻模块样式模板
查看>>
zzzzw_在线考试系统①准备篇
查看>>