最佳Solr JVM /虚拟/物理内存配置

时间:2012-06-07 15:35:08

标签: search ubuntu solr jvm

我们公司有几种不同的获取潜在客户的方式,以及我们处理的几种类型的潜在客户。每种类型的潜在客户之间仅存在细微差别,并且大部分信息与一个或多个其他潜在客户类型共享或相关。我和我的团队正在尝试使用Solr构建/配置索引,Solr处理这些引导类型及其所有共享数据......客户数据,度假数据。等(总共大约120万条记录)。我们目前正在托管一台Ubuntu服务器(12G RAM,8核Opteron),运行Tomcat 6和Solr 3.4。

我希望索引在客户在我们的网站上提交潜在客户表格(每天大约1500-2000)的实时时间内添加记录,以及在员工添加或修改数据时更新(大约2500-3000)每日一次)。

此外,我需要网站上的客户和内部员工能够使用过滤器,方面,自动完成,突出显示以及人们通过精心编写的搜索所期望的所有内容快速搜索此数据。 / p>

此设置目前正在运行,但通常会挂起更新网站和内部应用中的记录。提交每1000个文档或5秒完成,我每天优化一次。这种类型的设置有哪些最佳JVM,服务器或Solr配置?任何帮助将不胜感激,我可以向愿意帮助的人提供所需的尽可能多的信息。

1 个答案:

答案 0 :(得分:4)

首先,you should not optimize

在Solr中配置JVM堆大小时有两个常见的错误:

  • 为JVM提供太多内存,(操作系统缓存无法缓存磁盘操作),
  • 给JVM提供的内存不足(垃圾收集器会受到很大的压力,它将被迫运行频繁的世界各地的集合,使用JMX监控来确定是否触发了完整的GC)。 / LI>

应用程序可能挂起的另一个原因是后台合并。 Lucene基于细分,每当细分数量高于mergeFactor时,就会触发合并。 mergeFactor的低值可能解释了这些问题。

您应该提供有关当前设置的更多详细信息,以便我们为您提供帮助:

  • JVM大小,
  • 您正在使用的收集器(G1,吞吐量收集器,并发低暂停收集器......)
  • 索引大小(在磁盘上,而不是文档数),
  • mergeFactorramBufferSizeMB,...