如果有人可以建议每个ES节点的最佳分片数量以获得最佳性能,或者提供任何建议的方式来得出一个应该使用的分片数量(如果有核心数量和内存占用量的话),我将不胜感激。
分片前要考虑以下三种情况。
情况1) 您想将Elasticsearch与故障转移和高可用性一起使用。然后,您要进行分片。在这种情况下,您需要根据要在生产中使用的节点[ES实例]的数量来选择分片的数量。
考虑您要在生产中提供3个节点。然后,您需要为每个索引选择1个主碎片和2个副本。如果您选择的碎片数量超出了您的需要。
情况2) 您的当前服务器将保存当前数据。但是由于未来动态数据的增加,您最终可能会在磁盘上没有空间,或者服务器无法处理大量数据,因此您需要为每个索引配置更多的碎片,例如2或3个碎片( 取决于您的要求 )。但是不应该有任何副本。
情况3) 在这种情况下,您将结合情况1和2的情况。然后,您需要将两种配置结合起来。考虑您的数据动态增加,并且您还需要高可用性和故障转移。然后,使用2个分片和1个副本配置索引。然后,您可以在节点之间共享数据并获得最佳性能。
注意: 然后将在每个分片中处理查询,并对所有分片的结果执行mapreduce并将结果返回给我们。 因此,地图缩小过程是昂贵的过程。最小碎片使我们获得最佳性能
如果您仅在生产中使用一个节点,则对于每个索引而言,仅一个主分片是最佳的分片。
希望能帮助到你..!