SOLR突然崩溃与OutOfMemoryException

时间:2014-03-25 15:07:03

标签: java solr out-of-memory

我遇到了Solr走向OutOfMemory的问题。情况如下。我们有2个Amazon EC2小实例(3.5G),每个实例在Tomcat 6中运行Spring / BlazeDS后端(在负载均衡器后面)。每个实例都有自己的本地Solr实例。磁盘上的索引大小约为500M。 JVM设置是几个月(Xms = 512m,Xmx = 768)。我们使用Solr根据用户在他们的个人资料和他们上传的文档中输入的属性来查找人员。我们不使用Solr更新处理程序,只使用select。使用deltaImports完成更新。每个Tomcat实例中的Spring应用程序都有一个作业,每30秒触发一次/ dataimport?command = delta-import处理程序。

这项工作好几个月,即使是一年多,如果我是正确的(我在项目上的时间不长)。 CPU负载最小,特别是一些峰值。

过去一周,我们突然在两台机器上发生了OutOfMemory的SOLR崩溃事件。我回顾了过去几周的变化,但没有一个与SOLR有关。 UI中的错误修正,与电子邮件相关的内容,但同样:SOLR架构或查询中没有任何内容。

今天,我们将Ec2实例更改为m1.large(7.5G),将SOLR JVM设置更改为-Xms = 2048 / -Mmx = 3072。这有点帮助,他们运行3小时4小时,但最终,他们也崩溃了。

哦,数据集(行数,文档,实体等)没有显着变化。有一个不断增长,但是当我将JVM内存增加三倍时它对我来说没有意义,它仍然会崩溃...

问题:有任何指示指向我吗?

2 个答案:

答案 0 :(得分:0)

测量,而不是猜测。而不是猜测,改变了什么,这可能会导致你的问题,你最好采取一些内存泄漏检测工具,例如Plumbr。使用附带的工具运行您的Solr,看看它是否会告诉您内存泄漏的确切原因。

答案 1 :(得分:0)

查看您的Solr缓存设置。减小文档缓存的大小有助于我们稳定同样遇到OutOfMemory错误的Solr 3.6服务器。查询结果缓存大小也可能与您的情况相关,而不是我的。

您可以在核心的管理页面上看到您的Solr缓存使用情况:

http://localhost:8983/solr/core0/admin/stats.jsp#cache

(将core0替换为Solr核心的名称)

<强> documentCache

https://wiki.apache.org/solr/SolrCaching#documentCache

<强> queryResultCache

https://wiki.apache.org/solr/SolrCaching#queryResultCache