我们有16个64 GB RAM,4个核心机器。索引大小约为200 GB。最初我们决定有64个分片,即每个节点4个分片。我们每个节点有4个分片,因为我们有4个核心机器(4个核心可以一次处理4个分片)。当我们测试查询的qtime非常高时。我们在减少的分片上重新进行了性能测试。一个用于32个总分片(每个节点2个分片)和16个总分片(每个节点1个硬)。对于16个分片,qtime已大幅下降(高达90%)。 那么每个节点的分片是如何决定的呢?是否有基于机器配置和索引量的公式?
答案 0 :(得分:3)
您要查看的另一件事是您要发送给Solr的查询的类型和数量。没有一个神奇的公式你可以使用,我最好的建议是只测试一些不同的选择,看看哪一个表现最好。
要记住的一件事是每台服务器的JVM大小和索引大小。我认为如果你可以在每个盒子的内存中缓存整个索引,那就太好了。
此外,请确保使用您实际运行的查询测试查询响应时间,而不仅仅是编写的东西。分组和分面等事情将产生巨大的变化。