2017-04-07 59 views
0

我有一个2.2GB的solr内核,它在通过DataImportHandler运行索引过程后响应非常好。我注意到solr在做这件事时使用了相当多的ram。Solr查询时间在机器重新启动后增加

重新启动机器后出现问题。查询时间增加到200 - 300ms,使用的RAM非常低。

所以,你可以给我一个提示,我可以尝试达到我在索引后甚至在机器重新启动后具有的相同性能吗?

谢谢!

+0

尝试预热缓存通过点击经常使用的查询。 –

+0

谢谢!但这只适用于这些查询。其余的人仍然会有更多的反应时间。另外,你必须为此构建一个缓存预热脚本。我想知道是否存在我可以运行的某种命令,并且索引将被移入内存,就像完全导入完成后一样。 –

回答

1

如果重新启动计算机,索引文件将会变冷,即不会被操作系统缓存。

所以,如果你有足够的RAM加载整个指数中,你可以使用这样的脚本:

find $PATH_TO_YOUR_INDEX_DATA_DIR/data/ -type f -exec cat {} \; > /dev/null 

Solr的开始之前执行此操作。你的索引只有2.2GB,所以这应该相当快。

+0

谢谢!这是否有一个窗口等效? –

+1

可能它有一个等效的窗口,但我不知道它,大多数人都在linux下部署了Solr。尽管你可以在服务器错误中询问 – Persimmonium

0

在谈到Solr的表现,我们需要明确区分之间的缓存:的索引文件 此缓存外发生的Solr

  1. OS文件内存映射,这是从根本上有快速的性能。 更多的索引在内存中缓存,更快的搜索必应(这部分是由操作系统管理)

  2. Solr的缓存 热身Solr的缓存在启动时,您必须配置firstSearcher变暖的查询,也可以是通用的或者非常具体,取决于用例。 可以为firstSearcher(在Solr启动时)和newSearcher(每次提交意味着打开一个新的Searcher)配置它们。

相关问题