Lucene Solr中的同时查询

Lucene Solr中的同时查询,lucene,solr,jetty,Lucene,Solr,Jetty,嘿 我正在部署一个包含3000多万文档的Solr服务器。目前,我正在测试搜索性能,结果非常依赖于我同时执行的查询数量: 1同时查询:2516ms 2同时查询:42504469毫秒 3个同时查询:578162196219ms 4个同时查询:648472037719781毫秒 Jetty线程池配置为默认值: 新建class=“org.mortbay.thread.BoundedThreadPool” Set name=“minThreads”10 Set name=“lowThreads”50 S

我正在部署一个包含3000多万文档的Solr服务器。目前,我正在测试搜索性能,结果非常依赖于我同时执行的查询数量:

1同时查询:2516ms

2同时查询:42504469毫秒

3个同时查询:578162196219ms

4个同时查询:648472037719781毫秒

Jetty线程池配置为默认值:

新建class=“org.mortbay.thread.BoundedThreadPool”

Set name=“minThreads”10

Set name=“lowThreads”50

Set name=“maxThreads”10000

我想知道是否有任何因素可以降低同步请求对响应时间的影响

Solrconfig也配置为默认值,但没有用于测量最坏情况和mergeFactor=5的缓存(搜索的请求将多于更新)

提前感谢

请查看此

我从中得到了很大的帮助


希望您能找到您的答案。:-)

为什么要在关闭缓存的情况下执行此操作?你到底想测量什么

您已经有效地迫使Solr(Lucene)从磁盘执行每个搜索。您实际测量的是Java本身的并发性以及操作系统和磁盘吞吐量。这与Jetty或Solr无关


缓存是你的朋友。你真的应该在任何生产能力中使用它们。在我看来,您应该在改变缓存的同时测量负载下的吞吐量,以了解缓存大小和吞吐量之间的权衡。

如果没有任何关于系统资源(内存、cpu、磁盘)负载的详细信息以及关于正在运行的查询的信息,很难对此进行分析,例如,“:”与没有任何方面的简单查询相比,使用几个方面通常会导致更高的负载。我认为如果使用适当的硬件,2516ms太高了。尝试调整缓存(不要关闭缓存)并使用真实查询(!!)。你使用刻面吗?你是否在使用新闻搜索器、取暖搜索器等?