【发布时间】:2014-03-25 15:07:03
【问题描述】:
我遇到了 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 负载处于最低水平,但有一些异常高峰。
过去一周,我们突然在两台机器上都出现了 SOLR 的 OutOfMemory 崩溃。我回顾了过去几周的更改,但没有一个与 SOLR 相关的接缝。 UI 中的错误修复,与电子邮件相关的内容,但同样:SOLR 架构或查询中没有任何内容。
今天,我们将 Ec2 实例更改为 m1.large (7.5G),并将 SOLR JVM 设置更改为 -Xms=2048 / -Mmx=3072。这有点帮助,他们跑了 3 到 4 个小时,但最终,他们也崩溃了。
哦,数据集(行数、文档数、实体数等)没有显着变化。有一个持续的增长,但是当我将 JVM 内存增加三倍时,它仍然崩溃对我来说没有意义......
问题:你有什么方向可以指点我吗?
【问题讨论】:
-
除了代码更改之外,您是否更改了其他任何内容:例如将 Solr 从版本 x 更新到 y,更新 Solr 运行所在的 tomcat,更新下面的 JVM?
-
第二个想法,增量更新需要多长时间才能完成?可能接近或超过 30 秒?
标签: java solr out-of-memory