【问题标题】:Solr Qtime difference to real timeSolr Qtime 与实时的差异
【发布时间】:2014-09-08 11:03:38
【问题描述】:

我试图找出导致我的 Solr 应用程序中 Qtime 和实际响应时间之间差异的原因。 SolrServer 与生成查询的程序在同一台机器上运行。 我得到的 Qtimes 平均约为 19 毫秒,但实际得到我的响应需要 30 毫秒。 这听起来可能并不多,但我正在将 Solr 用于一些每毫秒都很重要的晦涩难懂的东西。

我认为时间差不是由磁盘 I/O 引起的,因为使用 RAMDirectoryFactory 并没有加快任何速度。

使用 SolrEmbeddedServer 而不是 SolrHttpServer 也不会导致加速(所以导致差异的不是 Jetty?)

查询程序和 Solr 实例之间的数据传输是否会导致时差?更重要的是,我怎样才能最大限度地减少这个时间?

问候

【问题讨论】:

  • 您是否尝试过禁用日志记录?
  • 感谢您的输入,我已禁用 log4j.properties 文件中的日志记录。这导致没有加速。我是否也必须在其他地方禁用日志记录?
  • 嗯,好的。之后你有没有重启过服务器?您是否仍然在每个请求的日志文件中看到输出?
  • 没有更多的日志输出文件。

标签: solr solrj


【解决方案1】:

这是众所周知的FAQ

为什么 QTime Solr 返回的时间低于我的时间量 测量我的客户?

“QTime”仅反映 Solr 处理 要求。它不反映从读取请求所花费的任何时间 客户端通过网络,或将响应写回 客户。 (这应该是显而易见的,因为 QTime 实际上是 包含在响应正文中。)

在此网络 I/O 上花费的时间可能是不小的贡献 从客户观察到的总时间,特别是因为 在很多情况下,Solr 可以为 直接来自索引的响应(即:由“fl”参数请求)为 响应写入的一部分,在这种情况下磁盘 I/O 读取那些 存储的字段值可能会影响观察到的总时间 在 QTime 测量的时间之外的客户。

如何最小化这个时间?

不确定它是否会产生任何影响,但请确保您使用的是 javabin 格式,而不是 json 或 xml (wt=javabin)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    相关资源
    最近更新 更多