首页/数据/NoSQL 速查/_cat/allocation 磁盘与分片数概览
Elasticsearch89 条

_cat/allocation 磁盘与分片数概览

_cat/allocation 按节点汇总分片数量与磁盘指标(已用索引占比、剩余空间、使用率),用于判断是否触达水位线导致无法分配新分片。

NoSQL 速查数据更新于 2026-10-13

分配概览看什么

_cat/allocation 是 Elasticsearch 的 cat 系列接口之一,按节点逐行输出该节点承载的分片数量与磁盘指标,包括索引自身占用(disk.indices)、整盘已用、可用、总量与使用率。分片是 ES 存放数据的最小单位,一个分片只能落在某个节点上,所以「哪个节点分片最多、哪块盘最紧」是容量排查的起点,这个接口不需要写 DSL 就能给出答案。

基本信息

接口GET /_cat/allocation?v
适用版本Elasticsearch 7.x / 8.x(cat 接口自 5.x 起稳定)
权限要求monitor 及以上,只读操作不影响集群
常用参数?v 显示表头、?h= 只取指定列、?s= 排序、?format=json 便于脚本采集
数据来源集群状态中的分片分配结果 + 各节点磁盘统计

典型使用场景

  • 磁盘水位巡检:一眼看出哪个节点的 disk.percent 逼近 85% 低水位线
  • 判断分片分布是否均匀:节点间分片数差异过大说明分配被磁盘或节点标签限制
  • 排查未分配分片:确认是磁盘不足、还是节点下线导致无法分配
  • 扩容决策:根据 disk.avail 与日均增量估算现有磁盘还能撑多久
  • 定位混部隐患:同一集群里混用不同规格磁盘时,小盘节点往往最先被写满

常用取数与解读

常用取数与解读
GET /_cat/allocation?v&s=disk.percent:desc   # 按使用率降序,先看最紧张的节点
GET /_cat/allocation?v&h=node,shards,disk.used,disk.avail,disk.percent  # 只看关键列
GET /_cat/allocation/nodename?v              # 只看某个节点的分配明细
GET /_cat/allocation?format=json             # 交给监控脚本采集
GET /_cluster/settings?include_defaults=true # 确认水位线阈值是否被改过

输出逐列读法

列含义正常 / 异常
shards该节点承载的分片总数(含副本)节点间差异大说明分配不均衡
disk.indicesES 索引数据自身占用的空间与 disk.used 的差值来自快照、日志和其他进程
disk.used整块磁盘已用空间涨幅异常时先排查非 ES 进程
disk.avail剩余可用空间低于总量 15% 即触发低水位,不再接收新分片
disk.percent整盘使用率百分比85% / 90% / 95% 三档水位线是最关键的阈值
node节点名;未分配分片所在行显示 UNASSIGNED出现 UNASSIGNED 行说明有分片没有落盘
三个默认水位线都基于整盘使用率:低水位 85% 起不再向该节点分配新分片,高水位 90% 起尝试把分片迁走,洪水水位 95% 会把该节点上的索引置为只读。节点磁盘规格不统一时,同样的百分比对小盘节点意味着更少的余量。

易错点

  • disk.indices 只统计 ES 索引自身占用,快照仓库、应用日志与同机其他进程都不在内,只看这一列会低估整盘压力,判断能否继续写入要以 disk.used 与 disk.percent 为准
  • 看到水位告警就把阈值调高只是把问题推后:数据增长趋势不变时下一步会撞上洪水水位、索引直接变只读,正确顺序是先删旧索引或归档、再扩容
  • cat 接口返回的分片数包含副本,评估主分片分布要看 _cat/shards 或 _cat/indices,用 allocation 的分片数列下结论容易误判
  • 节点角色混合(数据节点同时跑 master 或协调)时,磁盘被其他角色占用会让实际可用于 ES 数据的空间小于 disk.avail 的数值

数据来源与参考

  • Elasticsearch Guide: cat allocation API
  • Elasticsearch Guide: Disk-based shard allocation
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌