Elasticsearch性能优化

常用命令

GET _search
{
  "query": {
    "match_all": {}
  }
}

GET _cat/indices


GET _cat/shards

 PUT /server-2023.02.09/_settings
{
    "number_of_replicas": 0
}


PUT /_cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.disk.watermark.low": "90%",
    "cluster.routing.allocation.disk.watermark.high": "96%",
    "cluster.info.update.interval": "1m",
    "cluster.routing.allocation.disk.threshold_enabled": true
  }
}



PUT _cluster/settings
{
  "persistent" : {
    "cluster.routing.allocation.exclude._ip" : "10.5.234.66"
  },
      "transient" :{
      "cluster.routing.allocation.exclude._ip" : "10.5.234.66"
   }
}


PUT _cluster/settings
{
  "persistent" : {
    "cluster.routing.allocation.exclude._ip" : null
  },
      "transient" :{
      "cluster.routing.allocation.exclude._ip" : null
   }
}


GET _cluster/allocation/explain


GET _cluster/health


GET _cluster/settings

POST /_cluster/reroute?retry_failed=true


PUT _cluster/settings
{
   "persistent" : {
"cluster.routing.rebalance.enable" : "all"
}
}
PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.node_initial_primaries_recoveries": 20
  }
}


PUT /_all/_settings
{
  "index.blocks.read_only_allow_delete": null
}


PUT /device-api-backend-2022.10.12/_settings
{
  "index.blocks.read_only_allow_delete": null
}

PUT /_cluster/settings
{
  "persistent": {
    "indices.recovery.concurrent_streams": 8
  }
}

GET /_cluster/settings

GET /_cat/nodes?v

PUT /_cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.cluster_concurrent_rebalance": 6
  }
}


PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.enable" : "none"
    }
}


PUT /_cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.node_concurrent_recoveries": 10
  }
}


PUT /_cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.cluster_concurrent_rebalance": 6
  }
}

PUT /_cluster/settings
{
  "transient": {
    "indices.recovery.max_bytes_per_sec": "300mb"
  }
}

GET _cluster/allocation/explain

PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.node_initial_primaries_recoveries": 50
  }
}

总结

luster.routing.rebalance.enable 参数是用于控制 Elasticsearch 集群中数据分片再平衡(rebalance)的设置。与 cluster.routing.allocation.enable 相比,它关注的是已经分配的分片的重新分布,而不是新的或新增的分片分配。

以下是 cluster.routing.rebalance.enable 参数的作用以及与 cluster.routing.allocation.enable 的区别:

cluster.routing.rebalance.enable 参数:

当设置为默认值 all 时,允许 Elasticsearch 自动触发数据分片再平衡。
当设置为 none 时,禁止 Elasticsearch 自动触发数据分片再平衡。
cluster.routing.allocation.enable 参数:

控制新的分片(主分片和复制分片)的自动分配。
all:允许自动分配所有新的分片。
primaries:只允许自动分配主分片,不包括复制分片。
none:禁止所有新的分片的自动分配。
区别:

cluster.routing.rebalance.enable 主要控制现有分片的再平衡,即已经分配到节点上的分片的重新分布。这在集群中节点发生故障或节点添加或移除时可能发生。设置为 all 时,Elasticsearch 将尝试自动重新平衡分片以确保数据均匀分布。设置为 none 时,将禁止自动再平衡,分片将保持在当前节点上。
cluster.routing.allocation.enable 主要用于控制新的分片的分配。这适用于在索引创建时或索引分配时。不同的设置允许或禁止新的分片自动分配到可用节点上。
总之,cluster.routing.rebalance.enable 控制的是现有分片的再平衡,而 cluster.routing.allocation.enable 控制的是新的分片的分配。两者一起使用可以更好地管理 Elasticsearch 集群中的数据分布和平衡。
posted @ 2023-08-26 23:17  西门运维  阅读(84)  评论(0编辑  收藏  举报