我在单个服务器上安装了elasticsearch。我想知道当数据非常大时是否有必要将num_of_shards
设置为大于1?我假设如果我将num_of_shards
设置为大于1,但这些分片位于单个磁盘中。当我搜索某些东西并将任务分配给这些碎片时。性能可能低于此场景设置num_of_shards
等于1,我的观点是否有问题?
暂时,我只有一台服务器可用。
答案 0 :(得分:3)
每个分片下面都有一个完整的Lucene索引,为了使Elasticsearch服务请求,它将需要顺序查询每个分片。尽管如果使用SSD可以减轻性能影响,但仍然会影响性能。通常,分片的数量要比群集中的节点多,因为稍后如果您要增加分片的数量,则需要重新索引整个数据,这在某些情况下是不可行的。 This文章对此进行了很好的解释。
答案 1 :(得分:0)
我会做一个分片+一个副本(可能是不同的驱动器),根据您的使用情况和数据分布,可能有一些原因来做多个分片-但在大多数情况下,一个分片应该没问题。
较新版本的ES支持dynamic resharding,以防将来添加更多服务器/数据。