ES高级操作手册

ES高级操作手册_第1张图片

 一、加快索引recovery速度

当ES扩容缩容时,若分片太大,分片初始化会很慢,此时可选择修改ES配置加快recovery速度。若是生产环境ES在对外提供服务,es默认配置也可能导致对外服务频繁抖动,也可以通过修改配置降低recovery速度。es默认限制了并行恢复的数量,速度等。

修改分片迁移的配置,以便在rebalance或者recovery时更快恢复集群。

indices.recovery.max_bytes_per_sec:恢复时单个节点的总进出流量限制。(默认40mb)

indices.recovery.max_concurrent_file_chunks:恢复时可并发拷贝的文件块数量。(默认2)

cluster.routing.allocation.cluster_concurrent_rebalance:整个集群范围内允许同时rebalance的shard数。(默认2)

cluster.routing.allocation.node_initial_primaries_recoveries:单个节点主分片并行恢复的数据。(默认4)

cluster.routing.allocation.node_concurrent_recoveries:单个节点允许同时接收、传出恢复的shard数,(默认2)

1、加快分片恢复速度命令设置如下

PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.node_concurrent_recoveries":10,
        "cluster.routing.allocation.cluster_concurrent_rebalance":10,
        "indices.recovery.max_bytes_per_sec" : "200mb"
    }
}

注意:可根据集群实际情况适当调大参数,参数调的越大,内部通信带宽占用会越大,集群读、写性能受影响会越大

2、为避免大的波动影响,可参考设置如下

PUT /_cluster/settings

{

  "transient": {

    "cluster.routing.allocation.node_concurrent_recoveries": 2,

    "cluster.routing.allocation.cluster_concurrent_rebalance": 2,

    "indices.recovery.max_bytes_per_sec": "1mb"

  }

}

若对外服务仍是频繁波动,可继续降低速度和并行数量,可根据服务情况调整。

3、重置索引配置

PUT /_cluster/settings

{

  "transient": {

    "cluster.routing.allocation.node_concurrent_recoveries": null,

    "cluster.routing.allocation.cluster_concurrent_rebalance": null,

    "indices.recovery.max_bytes_per_sec": null

  }

}

4、查看配置 GET _cluster/settings

5、若节点有问题,可节点数据迁移走,不再使用。

PUT _cluster/settings

{

  "transient": {

    "cluster.routing.allocation.exclude._name" : "node-15,node-25,node-27,node-31,node-29"

  }

}

6、节点恢复

{

  "transient": {

    "cluster.routing.allocation.exclude._name": null

  }

}

二、查看index recovery进度

GET _recovery?detailed=true&active_only=true

三、查看索引分片数据情况 

GET _cat/shards/索引名字

你可能感兴趣的:(elasticsearch,elasticsearch,recovery,查看索引分片)