Solr 中有许多设置以及可能影响索引性能的硬件规格。除了投入更多机器的明显解决方案之外,调整 Solr 更像是一门艺术而不是科学。这是我的经验,所以请持保留态度。通常,您应该看到每秒 6K 到 8K 的索引性能。
硬件规格:4 x 40 核(超线程),256GB RAM 和 SSD
我还使用 updateCSV API 来导入文档。
我的基线矩阵是用其中一台机器(1 个分片)测量的。我的 SolrCloud 矩阵是用所有 4 个来测量的(4 个分片,每个集合 1 个副本)。
对于大型集合(82GB),我看到了 3.68 倍的吞吐量。
对于中等收集 (7GB),2.17 倍。
对于小型集合 (1.29GB),1.17x。
所以回答你的问题:
Q1:通常每个集合拥有的 Solr 节点越多,索引速度就越快。它可能会在某个时候达到稳定状态,但索引性能肯定不会降低。也许您的集合太小而无法证明 SolrCloud 水平扩展开销是合理的?
Q2:不,SolrCloud 不应该降低索引速度。
Q3:这真的取决于你如何设置它。我看到只有默认设置的性能提升。但以下是我遇到的更能提升性能的东西:
- 不要
commit=true
在您的 updateCSV API 调用中设置。
- 如果系统利用率低,您可以使用比活动 Solr 节点数量更多的分片。
solr.hdfs.blockcache.slab.count
应在可用系统内存的 10% 到 20% 之间。
autoCommit
一般应为15秒。