【发布时间】:2013-08-22 16:04:31
【问题描述】:
我想知道我需要更改哪些参数(如果存在)以减少 Qtime。
Qtime : The elapsed time (in milliseconds) between the arrival of the request (when the SolrQueryRequest object is created) and the completion of the request handler. It does not include time spent in the response writer formatting/streaming the response to the client.
我在更新文档时记录了 curl 响应,并且我注意到 QTime 在此期间增加。
例如,我的第一个响应(对应于我的第一个索引文档)是 6293 毫秒。在大量索引文档之后,我的 QTime 变长了:1560781 毫秒,大约 26 分钟!
编辑
第一个措施:1 个 CSV 文件,包含 10000 个 solr 文档 -> QTime:6293ms
第二个措施:1 个 CSV 文件,包含 10000 个 solr 文档 -> Qtime:1560781 毫秒
这些措施之间的延迟 = 32 分钟 19 秒
在此时间间隔内索引的文档数:26720000 个文档
我想这可以改进,但我不知道女巫设置修改以获得更好的性能。
与我的系统相关的信息
- 我有 1 个带有一个核心的 solr 实例。
- 我的系统在具有 8 个 CPU 和 16GB RAM 的虚拟机上运行
- 我使用了大约 30% 的 RAM
- 我的 JVM 是:1.7.0_09-icedtea OpenJDK 运行时环境 (rhel-2.3.8.0.el6_4-x86_64) OpenJDK 64 位服务器 VM(内部版本 23.7-b01,混合模式)
问题
- 也许我需要设置更多线程来更新文档或类似的东西。
- 此行为是否与 Jetty 相关? (我认为没有与 Jetty 的链接,有人可以确认吗?)
- 如何使用更多 RAM 来索引数据? (我已经使用这个命令设置了 JVM 为 Solr 分配足够的 RAM:java -Xms2048M -Xmx8192M -jar start.jar)
- 我应该使用更多的 solr 实例(SolrCloud 吗?)来解决它?
- 为什么Qtime随着更新负载的增加而增加?是 Solr 限制(RAM、磁盘)吗?
如果有任何提示可以帮助我更快地完成更新,我们将不胜感激。
谢谢。
【问题讨论】:
-
索引中有多少文档?什么是索引大小? 6000 毫秒开始已经非常慢了。
-
嗨 Okke,是的,我同意你的看法,它非常慢。我添加了您在我的问题中提出的详细信息。这种行为很奇怪,似乎在索引进程级别存在瓶颈,因为延迟(或 Qtime)随着负载的增加而增加。担心的是我只使用了 30% 的 RAM。
-
你什么时候提交?您使用的是什么 DirectoryFactory。你什么时候GC?很多因素都在起作用。建议的链接是一个好的开始。否则,始终可以考虑使用分布式或 Solrcloud 解决方案。