3

以下是在 Solr 4.3 中索引 180 万个文档的基准结果,具有各种配置:

  • solrconfig.xml 中没有配置更新日志。架构中未配置uniqueId字段。

索引文档大约需要165 秒。文档以大约 9-10000 个/秒的恒定速率进行处理。

  • 仅在 solrconfig.xml 中激活更新日志。

索引时间现在是180 秒。文档以大约 9000 个/秒的恒定速率进行处理。

  • 仅在 solrconfig.xml 中激活了更新日志,并在 schema.xml 中添加了 uniqueId 字段(以及在为索引发送的每个文档中)。

索引时间现在是260 秒。文档以每秒约 5000 个文档开始的递减速率进行处理,在索引过程结束时不断下降到约 3000 个文档/秒

  • 在 solrconfig.xml 中激活了更新日志,在 schema.xml 中添加了 uniqueId 字段(以及在每个发送用于索引的文档中),并在发送用于索引的文档中添加了一个递增1 的字段。

索引时间现在是700 秒。文档的处理速度逐渐下降,从每秒大约 4000 个文档开始,在索引过程结束时不断下降到大约 1000 个文档/秒

我已经阅读了文档。基本上,在使用 updatelog 时,关于性能的唯一一件事就是确保您配置了经常配置的自动提交,这样日志就不会变得太大。我已经完成了(将其设置为在添加 500000 个文档时自动提交)。除此之外,性能上没什么。

我的问题是:

我知道当我们进行字段更新时性能会变慢(就像我上次的基准测试一样)。文档被有效复制并添加了新值。我不明白为什么性能会随着时间的推移而下降?为什么,当没有更新日志时性能是恒定的,但是当更新也执行时,性能会下降(从 5k 到 1k 文档/秒)?

此外,在这种情况下如何提高性能(字段更新)?

4

0 回答 0