添加solr节点后性能下降

时间:2014-04-14 02:54:44

标签: performance solr datastax-enterprise

我在设置带有1个Cassandra节点和1个Solr节点(使用DseSimpleSnitch)的DSE 4.0群集时遇到了一个奇怪的问题,性能非常好。如果我添加额外的节点以拥有3个Cassandra节点和3个Solr节点,那么我的Solr查询的性能将大幅下降。任何人都知道我可能做错了什么?我基本上都有DSE的所有默认选项,并尝试擦除所有数据并从头开始重新创建几次,结果相同。我还尝试使用复制因子1和2创建具有相同结果的键空间。 也许我的用例有点奇怪,但我使用Solr进行OLTP类型查询(通过SolrJ与二进制写入器/读取器),这就是性能至关重要的原因。由于5个客户端的工作量很小,制作非常简单的Solr查询,从单个Solr节点到3个Solr节点的响应时间增加了约50%,只有几百个小文档用于我的测试(~25ms到~50ms)。与单个节点相比,150个客户端对3个节点的响应时间慢约2至3倍。 Cassandra的响应时间没有变化,只有Solr查询变慢。 我的配置可能会出现这种情况吗?

2 个答案:

答案 0 :(得分:0)

Solr查询需要扇出以覆盖列族的所有键。因此,当您从一个节点转到三个节点时,总查询时间将增加到可以通过单个节点满足的查询的三倍,这一点不足为奇。

您还没有提到搜索DC的RF。

对于更复杂的查询,扇出会减少查询延迟,因为每个节点上只有一小部分查询时间会发生,而对于小查询,扇出开销和查询结果聚合相形见绌。是时候进行实际的Solr核心查询了。

通常,Cassandra查询往往比Solr查询简单得多,因此它们很少具有可比性。

答案 1 :(得分:0)

问题解决了。在注意到文档提到不使用Solr节点的虚拟节点(而不是说为什么)之后,我检查了我的配置并注意到我正在使用虚拟节点。我将配置更改为不使用虚拟节点,性能问题消失了。我也从4.0.0升级。同时到4.0.2,但我很确定是导致问题的虚拟节点。