Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • MySQL8-SOP手册
  • MySQL实战45讲学习笔记
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • OpenClaw
  • Hermes Agent
  • Claude Code
  • MySQL8-SOP手册
  • MySQL实战45讲学习笔记
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

  • Redis

  • Keydb

  • TiDB

  • MongoDB

  • Elasticsearch

    • Elasticsearch 运维知识地图:从安装配置到排障加速恢复
    • Elasticsearch 安装配置
    • 给Elasticsearch集群添加用户密码
    • Elasticsearch 分片和副本:容量怎么规划,改分片数为什么这么麻烦
    • 单节点分片达到默认上限解决办法
    • Elasticsearch集群节点磁盘使用分配不均解决办法
      • Elasticsearch集群节点磁盘使用分配不均原因主要是template分片分配不均
      • 方法1.可以尝试调节cluster.routing.allocation.disk.watermark
      • 方法2. reindex
    • Elasticsearch的模板template和映射mapping
    • Elasticsearch 分页查询三种方案:from/size、search_after、scroll 怎么选
    • Elasticsearch字符串搜索方式
    • Elasticsearch使用wildcard字段模糊匹配
    • ES数据迁移工具esm
    • Nginx Mirror 模块实现三套ES写入网关
    • ES单机多节点集群docker-compose一键安装
    • ElasticSearch 动态模板 使用方法
    • ES排障两件套:慢查询日志阈值配置 + tcpdump 抓包看真实请求
    • ES 集群恢复太慢?三个参数加速节点/分片恢复
    • Elasticsearch 常用 DSL 语句
    • Logstash迁移ES数据
  • Kafka

  • victoriametrics

  • BigData

  • Sqlserver

  • 数据库
  • Elasticsearch
Carry の Blog
2022-03-17
目录

Elasticsearch集群节点磁盘使用分配不均解决办法

版本说明

本文写于 2022-03。
磁盘水位线相关设置(cluster.routing.allocation.disk.watermark.*)在 7.x/8.x 上语法未变,经 2026-07 复核仍适用。

# Elasticsearch集群节点磁盘使用分配不均解决办法

# Elasticsearch集群节点磁盘使用分配不均原因主要是template分片分配不均

将elasticsearch 的分片数调大,最好跟节点数一致。
  "settings": {
    "index": {
      "number_of_shards": 10,
      "number_of_replicas": 1
    }
  }
1
2
3
4
5
6

# 方法1.可以尝试调节cluster.routing.allocation.disk.watermark

cluster.routing.allocation.disk.watermark.low: 默认 85% 当达到时,replica 不再写入
cluster.routing.allocation.disk.watermark.high: 默认 90% 当达到时,shards 会尝试写入其他节点
cluster.routing.allocation.disk.watermark.flood_stage: 默认 95% 当达到时,所有索引变为 readonly状态
PUT /_cluster/settings

{
  "transient" : {
    "cluster" : {
      "routing" : {
        "allocation" : {
          "cluster_concurrent_rebalance" : "2",
          "node_concurrent_recoveries" : "2",
          "disk" : {
            "watermark" : {
              "low" : "75%",
              "flood_stage" : "95%",
              "high" : "79%"
            }
          }
        }
      },
      "max_shards_per_node" : "15000"
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 方法2. reindex

    POST _reindex?slices=9&refresh&wait_for_completion=false
{
  "source": {
    "index": "my_index",    "size": 10000

  },
  "dest": {
    "index": "my_index_new"
  }
}
1
2
3
4
5
6
7
8
9
10
#Elasticsearch#搜索引擎
上次更新: 8/7/2026

← 单节点分片达到默认上限解决办法 Elasticsearch的模板template和映射mapping→

最近更新
01
Browserless 使用笔记:把 Chrome 变成一个可以被并发调用的网络服务
08-07
02
ORDER BY 配合 LIMIT 触发的索引选择陷阱 原创
08-07
03
Nginx 运维知识地图:从配置基础到反向代理实战 原创
07-29
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式