2015-12-29 61 views
0

我试图测试SOLR 5.2(我打算切换到)与SOLR 3.6(目前用于产品)的SOLR性能,我使用Jmeter执行测试,在测试计划中有6个查询,所有都是简单查询(或者查询固定字段值,例如:some_field:“fixed_value”,或者一个简单的方面)......问题是我期待的性能1)如果我在测试/测试标准中做了不正确的结果,导致结果不准确(如果我在测试/测试标准中做了错误的事情),结果不准确(更差的平均响应时间),所以我问:Solr性能基准测试(版本3.6与版本5.2)

2)或者可能是因为查询使用固定的值,因此从缓存或soemthing喜欢阅读的是

3)不恰当的测试我的本地(非服务器计算机上)

4)需要调整JMeter的

5)本正常

环境的详细信息:

WIN7 - 8GB RAM - I7

的Apache Tomcat 7/8 - 码头(我尝试了所有三个都为3.6和5.2)在每个Solr的核心

java的7/8(我都尝试了两个3.6和5.2)

30M的文件

的核心是使用Solr的相同版本的它在

进口指数*测试的详细信息(在JMeter的):

60个用户

20S斜坡上升期间

吞吐量20个请求/秒(这是预期的命中率,所以调谐延迟到达它)每个用户

6查询(infinetly运行)

回答

2

你的问题是关于solr 5.2的性能,只有6个查询和简单的方面搜索。没有范围查询,没有复杂的查询,也没有更新(这会清除缓存)。

我们最近也从3.X版本切换到5.X. 对于您的简单查询和简单的方面,我们还有一个巨大的(因子0.8)性能回归。但整体而言,搜索应用程序的速度更快(因子1.2)。

从3.6开始,lucene中的很多工作都是用于近实时搜索(NRS)。主要是lucene-folk减少了对内存的影响,从IndexReaderLeafReader(=每段读卡器)。

其他很大的改进是,lucene现在更多地了解索引中的令牌类型(BytesRef而不是字符串),并且可以使用Automaton来检查索引(而不是仅仅从一个令牌跳到一个令牌其他像前缀搜索)。

每个术语对所有文档的快速访问是lucene从一开始就关注的焦点,并没有得到改进。

确实solr 3.X中的简单切面是ms中的性能窥视,因为大多数facet值都在主内存中。所以非常快速但昂贵,只有在没有索引更新的情况下才能实现快速。

可能您可以切换编解码器以获得更好的“搜索固定字段值”性能。如果您切换到版本5.4(因为它为speed-up faceting on doc values fields),最有可能的是您可以从您的方面搜索的新DocValues中受益。

请注意,solr-folk等待证明刻面现在真的很慢。如果你能证明在发行这也与5.4写点东西SOLR-8096:Major faceting performance regressions

更新大约刻面:

SOLR-8096仍然是开放的,但Solr的5.5似乎是快通过SOLR-8466再次小面:Uninverted field faceting is re-enabled, for higher performance on rarely changing indices

+0

非常丰富,谢谢你 –

0

我可以确认5.2.1(5.3.x和5.4.x)之后的任何Solr版本都在我们的系统中引入了大量的性能下降。服务器上的查询响应时间翻倍并且负载平均值变为10.

在同一台服务器上恢复到Solr 5.2.1并重建索引“normalises”操作。

Solr 5.3.0我们在底池和SolrJetty下进行测试,性能很差。 Solr 5.4.0用标准SolrJetty发行版(我们提出堆)进行测试,性能比5.3.0差。

服务器和JVM参数的规格保持不变。

+0

在我的情况5.3与3.6相比也有不好的结果 –