• elasticsearch 优化笔记


    综合来说,提升写入速度可以从以下几个方面入手:
    1、加大 translog flush ,目的是降低 iops,writeblock
    2、加大 index refresh间隔, 目的除了降低 io, 更重要的降低了 segment merge 频率
    3、调整 bulk 线程池和队列
    4、优化磁盘间的任务均匀情况,将 shard 尽量均匀分布到物理主机的各磁盘
    5、优化节点间的任务分布,将任务尽量均匀的发到各节点
    6、优化 lucene 层建立索引的过程,目的是降低 CPU 占用率及 IO

    一、translog flush 间隔调整
    从 es 2.x 开始, 默认设置下,translog 的持久化策略为:每个请求都flush.对应配置项为:
    index.translog.durability: request
    这是影响 es 写入速度的最大因素.但是只有这样,写操作才有可能是可靠的,原因参考写入流程.

    二、索引刷新间隔调整: refresh_interval
    默认情况下索引的refresh_interval为1秒,这意味着数据写1秒后就可以被搜索到,每次索引的 refresh 会产生一个新的 lucene 段,
    这会导致频繁的 segment merge 行为,如果你不需要这么高的搜索实时性,应该降低索引refresh 周期,如:index.refresh_interval: 120s

    三、segment merge
    segment merge 操作对系统 CPU 和 IO 占用都比较高,从es 2.0开始,merge 行为不再由 es 控制,而是转由 lucene 控制,因此以下配置已被删除:
    indices.store.throttle.type
    indices.store.throttle.max_bytes_per_sec
    index.store.throttle.type
    index.store.throttle.max_bytes_per_sec
    改为以下调整开关:
    index.merge.scheduler.max_thread_count
    index.merge.policy.*

    2搜索速度优化
    为文件系统cache预留足够的内存
    使用更快的硬件
    文档模型
    尽量避免join操作,嵌套会使得查询慢几倍,父子关系可能使查询慢数百倍

  • 相关阅读:
    Extjs 动态改变列名
    ext+dwr DynamicGridPanel 封装 态创建ext grid
    extjs 动态表单模板二
    extjs 动态表单模板
    EXTJS 学习笔记(共17项,20090924更新)
    Ext核心API详解Ext.tree.TreePanel
    ExtJS GridPanel动态加载列
    ExtJs之combobox详解
    在 LotusScript 中为自定义对象模拟事件
    Firefox下如何将回车键转为Tab键
  • 原文地址:https://www.cnblogs.com/merciless/p/13734007.html
Copyright © 2020-2023  润新知