elasticsearch 读写性能调优

elasticSearch 读写性能调优

elasticSearch作为java后端和大数据核心的技术之一,肯定在面试当中它的性能调优肯定是要问的,看了好多人整理的性能调优方案,确实受益匪浅。自己整理一份简单的性能调优,能应付面试就行了。哈哈哈!!!

一、写入调优
  • 增加flush时间间隔,目的是减少数据写入磁盘的频率,减少磁盘的IO
  • 增加buffer到segment file 的refresh的时间间隔,默认是1s。目的是减少segment文件的创建,减少segment的merge的次数,merge是发生在jvm中的,可能导致full GC。增加refresh的时间间隔的缺点就是降低了搜索的时效性。
  • 增加Buffer大小,本质也是减少refresh的时间间隔,因为导致segment文件创建的原因不仅有时间的阈值,还有Buffer空间的大小,写满了也会创建。默认Buffer的大小是 48MB<默认值堆大小的10%<默认最大无限制
  • 大批量的数据写入尽量控制在低检索请求的时间段,大批量的写入请求越集中越好。
  1. 减小读写之间的资源抢占,读写分离
  2. 当检索请求数量很少的时候,可以减少甚至完全删除副本的分片,关闭segment的自动创建以达到高效利用内存的目的,因为副本的存在会导致主从之间频繁的进行数据同步,大大增加服务器的资源占用
  • Lucene的数据的fsync是发生在OS cache的,要给OS cache 预留足够的内存大小。

  • 通用最小的算法,能用更小的字段就用更小的,keyword类型比int更快。

  • ignore_above:字段保留的长度,越小越好

  • 调整_source字段,通过include和exclude过滤

  • store:开辟另一块存储空间,可以节省带宽。

    注意:_source设置为false则不存储元数据,可以节省磁盘,并不影响搜索,但是禁用source也会存在弊端。

    1. update,update_by_query 和reindex 不可用
    2. 高亮失效
    3. reindex失效,原本可以修改的mappingde 部分参数将无法修改,并且无法升级索引
    4. 无法查看元数据和聚合搜索
    5. 影响索引的容灾能力
  • 禁用all字段:all字段的包含所有的字端分词后的Term,作用是可以在搜索时不指定特定字段,从所有字段中检索,es 6.0之前需要手动的关闭

  • 关闭Norms字段:计算评分用,如果你确定当前字段将来不需要计算评分,设置为false可以节省大量的磁盘空间,有助于提升性能。常见的比如filter和agg字段,都可以设为关闭

  • 关闭index_options(谨慎使用,高端操作):词设置用于index time 过程中那些内容会被添加到倒排索引文件中。例如TF,docCount、postion、offset,减少option的选项可以减少在创建索引的CPU占用率,不过在实际场景中很难确定业务是否会用到这些信息,除非是在一开始就非常确定用不到,否则不建议删除。

二、搜索速度调优

  • 禁用swap
  • 使用filter 代替query
  • 避免深度分页,避免单页数据过大,可以参考百度或者淘宝的做法。es 提供两种解决方案scroller search 和search after
  • 注意关于index type的使用
  • 避免使用稀疏数据
  • 避免使用单索引业务重耦合
  • 命名规范
  • 冷热分离的架构设计
  • fileddata:搜索时正派索引,doc_value 为index time正排索引
  • enable :是否创建倒排索引
  • doc_values:正排索引,对于不需要聚合的字段,关闭正排索引可节省资源,提高查询速度
  • 开启自适应副本(ARS),6.1版本支持,7.0默认开启
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨大脸I

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值