行动是治愈恐惧的良药,而犹豫、拖延将不断滋养恐惧。

Unassigned shards一般有哪些原因?如何根治呢?

Elasticsearch | 作者 Finix | 发布于2015年04月05日 | 阅读数:8194

请问一下,大家遇到过Unassigned shards的情况吗?一般有哪些原因呢?又是如何根治的呢?我知道用reroute有时候可以修好,用transient有时也能修好,但想知道根治的办法。
鄙人的环境是2个node的ES,内存每个node是4G,有750多个shards

另外,看到medcl在InfoQ的视频上有大约如下的描述,试过1次,好像还是会有unassigned shards的问题。
笔记如下:
节点丢失了,但还能访问,节点都是在线的,并且端口都还在。
没丢失的节点中,有的节点没有shard,而剩下的节点shard过多集中。
若Java的GC时间比较长,那么在ES的默认配置下,会造成节点的频繁失联。
可能会有连锁反应:因为要为丢失的节点上的数据继续产生副本,所以会加重其他节点负担;一旦其他节点又有崩溃的,那么就又有更多副本需要在剩下的节点中产生,从而进入恶性循环。

调大参数:(有的默认是30秒,而实际可能是几分钟)
discovery.zen.fd.*
discovery.zen.publish_timeout
discovery.zen.ping_timeout
discovery.zen.join_timeout
已邀请:

要回复问题请先登录注册