ES 创建索引时该索引应当设计几个分片?
默认情况下,Elasticsearch 种索引创建时会创建5个主分片(primary shard),每个主分片会有1个副本(replica shard)。
主分片:索引中的每一个文档均会存储在一个主分片中,主分片数量在索引创建时指定,随后不可动态修改,只能 reindex。
副本分片:索引中每一个主分片可以有零个或多个副本分片,当文档写入主分片后会复制到该主分片对应的所有副本分片,副本分片数量在索引创建时指定,随后可以动态修改。
number_of_shards控制每个索引中主分片的数量
number_of_replicas控制每个索引中主分片的副本分片数量
主分片与其对应的副本分片不会再同一个节点。
一般建议:单个分片建议为30GB到50GB。
ElasticSearch推荐的最大JVM堆空间是30~32G, 所以把你的分片最大容量限制为30GB, 然后再对分片数量做合理估算. 例如, 你认为你的数据能达到200GB, 我们推荐你最多分配7到8个分片.