嘿嘿
我正在部署一个包含超过 3000 万个文档的 Solr 服务器。目前,我正在测试搜索性能,结果非常依赖于我执行的同时查询的数量:
1个同时查询:2516ms
2 个同时查询:4250,4469 毫秒
3 个同时查询:5781、6219、6219 毫秒
4 个同时查询:6484、7203、7719、7781 毫秒
...
Jetty 线程池默认配置为:
新类="org.mortbay.thread.BoundedThreadPool"
设置名称="minThreads"10
设置名称="lowThreads"50
设置名称="maxThreads"10000
我想知道是否可以设置任何因素来减少同时请求对响应时间的影响。
Solrconfig 也被配置为默认值,但没有缓存用于测量最坏情况和 mergeFactor=5(搜索比更新请求更多)。
提前致谢
最佳答案
为什么要在关闭缓存的情况下尝试执行此操作?你到底想测量什么?
您已经有效地强制 Solr (Lucene) 从磁盘执行每次搜索。您实际测量的是 Java 本身的并发性以及您的操作系统和磁盘吞吐量。这与 Jetty 或 Solr 无关。
缓存是你的 friend 。您确实应该在任何类型的生产能力中使用它们。在我看来,您应该在改变缓存的同时测量负载下的吞吐量,以查看缓存大小和吞吐量之间的权衡。
关于lucene - Solr 中的同时查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431620/