ES读写性能优化

写性能优化

优化方案:
  • 客户端: 多线程写,批量写
  • ES:在高质量数据建模前提下,主要在refresh,translog和flush之间做文章
写性能优化 - refresh
  • 增大refresh_interval,降低实时性,增大一次refresh处理的文档树,默认是1s,设置为-1直接禁止自动refresh
  • 增大index buffer size ,参数 indices.memory.index_buffer_size(静态参数,在elasticsearch.yml),默认10%
写性能优化 - translog
  • index.translog.durability设置为async(异步模式),index.translog.sync_interval设置需要的大虾片,比如120s,那么translog会120s写一次磁盘
  • index.translog.flush_threshold_size默认512mb,translog超过该大小会触发flush
写性能优化 - 其他
  • 副本设置为0,写完再增加
  • 合理设计shard数,并保证shard均匀分配在所有的node上,充分利用node资源
    · index.routing.allocation.total_shards_per_node限定每个索引在每个node上可分配的总主副分片数
    · 5个node,某索引10个分片,1个副本,如何设置
    ~ (10 + 10)/5=4
    ~ 实际要设置5个,防止node下线时,分片迁移失败

读性能优化

读性能优化 - 数据建模
  • 高质量的数据建模
  • 将需要通过script脚本动态计算的值提前算好作为字段存到文档中
  • 尽量使得数据模型贴近业务模型
读性能优化 - 索引配置调优
  • 根据数据规模设置合理的主分片数,可通过测试得到适合的分片数
  • 设置合理的副本数
读性能优化 - 查询语句调优
  • 尽量使用Filter上下文,减少算分的场景,由于Filter有缓存机制,可以极大提升查询性能
  • 尽量不要使用Script进行字段计算或算分排序
  • 结合profile/explain API分析慢查询进行分析
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值