Elasticsearch settings管理

概述

在工作中,我们常常需要对setting做一些微调,这个时候我们应该如何处理?

settings是针对索引库而言修改分片和副本数的。

一个索引库的setting如下

{
  "poc2" : {
    "settings" : {
      "index" : {
        "refresh_interval" : "10s",
        "number_of_shards" : "5",
        "translog" : {
          "flush_threshold_size" : "1gb",
          "sync_interval" : "30s",
          "durability" : "async"
        },
        "provided_name" : "poc2",
        "creation_date" : "1559179132567",
        "number_of_replicas" : "2",
        "uuid" : "DWxdd-uQSLSycMslq_16xQ",
        "version" : {
          "created" : "6050499"
        }
      }
    }
  }
}

number_of_shards 主分
number_of_replicas 副本
refresh_interval 每10秒刷新poc2 索引

默认情况下索引的refresh_interval为1秒,这意味着数据写1秒后就可以被搜索到,每次索引的 refresh 会产生一个新的 lucene 段,这会导致频繁的 segment merge 行为,如果你不需要这么高的搜索实时性,应该降低索引refresh 周期(即你可能想优化索引速度而不是近实时搜索, 可以通过设置 refresh_interval , 降低每个索引的刷新频率)

事务日志操作间隔调整:translog flush

durability: async //异步刷新
sync_interval: 30s //间隔30s异步刷新(设置后无法更改)
flush_threshold_size: 1gb //内容容量到达1gb异步刷新

translog是elasticsearch的事务日志文件,它记录了所有对索引分片的事务操作(add/update/delete),每个分片对应一个translog文件。

translog是用来恢复数据的。Es用“后写”的套路来加快写入速度 — 写入的索引并没有实时落盘到索引文件,而是先双写到内存和translog文件,有三种状态(可搜索 & 未落盘 & 已写日志) 。如果掉电,es重启后还可以把数据从日志文件中读回来。

1、首先把要微调的索引库关闭

#关闭poc2索引库
POST /poc2/_close

2、微调setting

PUT /poc2/_settings?pretty
{
    "index" : {
        "number_of_replicas" : 1
    }
}

3、打开微调后的索引库

#打开poc2的索引
POST /poc2/_open

4、查看修改后的setting

#查看索引
GET /poc2/_settings

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值