我试图在Solr应用程序中找出导致Qtime和实际响应时间之间差异的原因。SolrServer运行在与生成查询的程序相同的maschine上。我得到的Q倍平均在19毫秒左右,但它需要30毫秒才能真正得到我的反应。这听起来可能不多,但我用Solr做一些模糊的东西,每毫秒都很重要。
我认为时间差不是由磁盘I/O引起的,因为使用RAMDirectoryFactory并没有加速任何事情。
使用SolrEmbeddedServer而不是SolrHttpServer也不会导致加速(所以不是Jetty,是什么导致了差异?)
查询程序和Solr实例之间的数据传输是否导致时间差?更重要的是,我如何减少这一次?
问候
发布于 2014-09-09 15:53:13
这是一个众所周知的常见问题
为什么QTime Solr返回的时间比我在客户端测量的时间要低? "QTime“只反映Solr处理请求所花费的时间。它没有反映通过网络读取来自客户端的请求或将响应写入客户端的任何时间。(希望这是显而易见的,因为QTime实际上包含在响应的主体中。) 花费在此网络I/O上的时间对从客户端观察到的总时间有重要贡献,特别是因为在许多情况下,Solr可以直接从索引中将“存储字段”流到响应(即"fl“param),作为响应写入的一部分,在这种情况下,磁盘I/O读取这些存储的字段值可能有助于客户端在QTime测量的时间之外观察到的总时间。如何尽量减少这一次?
不确定它是否会产生任何效果,但请确保您使用的是javabin格式,而不是json或xml (wt=javabin)。
https://stackoverflow.com/questions/25722817
复制相似问题