一个物理节点上应该有多少个分片?
ES官方给予的回答是:
每个分片都是一个Lucene实例,它会消耗相应的CPU,IO,内存,文件描述符等等。
所以我们应该让每台机器上的分片数尽量的少,如果你是一个RDBMS使用者,你也不希望在一台物理机上部署多个数据库,不是吗?
从我的理解上看,分片数和横向拓展性是相关的,分片数多的话,比较便于横向拓展——有新服务器来的时候,我们有多余的分片可以转移过去。如果一开始每台服务器都只有两个分片,等有新机器加入集群的时候,我们就不得不从某些机器上分一个分片走,这必定会造成集群的不平衡。是否有更好的帮助我们确定分片数的方法?
问题讨论:https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/elasticsearch/hrq_z2qtNmo