0

我有一个 2.2GB 的 solr 内核,它在通过 DataImportHandler 运行索引过程后响应非常好。我注意到 solr 在这样做时使用了大量的内存。

问题出现在我重新启动机器后。查询时间增加到 200 - 300ms 并且使用的内存非常低。

那么,您能否给我一个提示,让我知道即使在机器重新启动后,我可以尝试在索引后达到相同的性能吗?

谢谢!

4

2 回答 2

1

如果您重新启动机器,索引文件将是冷的,即不被操作系统缓存。

所以,如果你有足够的空闲内存来加载整个索引,你可以使用这样的脚本:

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

在启动 solr 之前执行此操作。您的索引只有 2.2GB,所以这应该相当快。

于 2017-04-08T11:35:04.333 回答
0

在谈论 Solr 性能和缓存时,我们需要清楚地区分:

  1. 索引文件的 OS 文件内存映射 这种缓存发生在 solr 之外,它是快速性能的基础。您的索引在内存中缓存的越多,搜索速度就越快(这部分由操作系统管理)

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

于 2017-04-10T13:33:02.543 回答