设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 medcl 贡献。

ES日志集群有1台机器出现load超高

Elasticsearch | 作者 forestlee | 发布于2021年11月24日 | 阅读数:1465

1、问题描述:ES日志集群有1台机器出现load超高,load高原因是磁盘uti%大部分时间都是100%,发现近几天每次预创建索引时,这台机器上2个实例分配的都是主分片,明显比其他节点分片多。除了扩容,请问有什么好办法解决?可以通过什么参数指定每个节点都分配指定数量的主分片+副本分片?
2、集群现状:集群78个实例,9个client实例,3个master实例,66个data实例,每台机器都是48核cpu、256G内存、33TB单盘raid10数据盘,每台机器起2个实例。

load.png

 
已邀请:

medcl - 今晚打老虎。

赞同来自: kin122 xiaowuge

BetterLevi

赞同来自:

可以尝试重新分配主分片
https://www.elastic.co/guide/e ... .html

kin122

赞同来自:

大集群试试cluster.routing.allocation.balance.shard和cluster.routing.allocation.balance.index参数呢

liujiacheng

赞同来自:

我的集群也遇到类似的情况,某个节点的负载特别突出,经过分析,也是热点索引有两个主分片在该节点上,而其他节点都是只有一个主分片。
为什么ES会把两个主分片分配到该节点上呢?因为ES的负载均衡是通过分片数来的(尽可能得使得每个节点的分片数保持一致)
因为历史原因,该节点上的分片数比较少,所以新建索引的时候,ES会尽量往这个节点上多放几个分片。
 
通过参数index.routing.allocation.total_shards_per_node=1成功修复该问题。

forestlee - KD

赞同来自:

大佬们近期一直碰到 还是单台机器load高,但是这台机器上跑了2个data节点,分片数与其他机器的一样,top看是cpu wait%高,也就是磁盘io高,有办法解决下吗?

要回复问题请先登录注册