Solr性能建议

时间:2011-07-15 12:13:55

标签: solr solrj

我在Solr安装(3核服务器)上遇到了一些性能问题。我正在根据某些关键字索引实时推特数据,你可以想象,收到文件的速度非常高,所以对核心的更新非常高且经常。下面给出了我的三个核心的文档大小。

Twitter  - 26874747
Core2    -  3027800
Core3    -  6074253

我的服务器配置有8GB RAM,但现在我们遇到服务器性能下降。可以做些什么来改善这个?另外,我有几个问题。

提交次数是否占用高内存?减少每小时的提交次数有帮助吗? 我的大多数查询都是基于字段或日期分面的?如何改善那些?

此致 罗希特夏尔

3 个答案:

答案 0 :(得分:3)

  • 由于您拥有大量提交,因此您可能希望拥有更大的合并因子来提高索引性能。
  • 分批索引文档,而不是逐个索引。
  • 合并发生时需要非常高的内存/ CPU,此时索引也会被阻塞。
  • 从查询服务器分离索引服务器以获得更好的性能,使用主从配置。

答案 1 :(得分:0)

自从我们的原始设置以来,我们在Solr中的性能也有所下降,我发现最好的是: http://www.lucidimagination.com/blog/2010/01/21/the-seven-deadly-sins-of-solr/

这应该让您直接对Solr实现进行一些改进。到目前为止,我的调查结果表明:

  • 使用SolrJ使用二进制更新获得更好的性能(它将文档添加到索引但不需要提交......我们不得不放弃PHP并将后端移动到Java)
  • 从每次提交中删除优化过程,每天只运行一次,具体取决于您拥有的数据量(默认设置为在php-solr-client库的每次提交时运行)。
  • 将您的热身查询调整为您最常访问的数据。
  • 提交大量数据。
  • 监视JVM和垃圾收集器
  • 调整Tomcat / Java设置

答案 2 :(得分:0)

升级到SOLR 4.0的最新主干。然后,按照此处的说明操作:http://wiki.apache.org/solr/NearRealtimeSearch

解决方案的关键是在导入推文时使用软提交。

我们正在使用与您所描述的类似的系统,并且每小时索引约500,000条推文,顺便说一下。

此处的部分问题是您无法在此环境中设置过多缓存,因为您需要在某一时刻提交。当发生这种情况时,缓存消失,自动装配开始。请确保查看自动装配设置。当您进行方面查询时,还要检查日志,以获取任何方面中唯一值的数量不是太高的指示。我们仍然在寻找拥有600万独特用户的数据透视查询。这会杀死你的表现。在实践中,这意味着我们用50M左右的推文做得很好,超过它会显着减速,我们正在等待4.0改进来解决这个问题。