【问题标题】:SOS: my SOLR prod server is crashing every 30 minutesSOS:我的 SOLR prod 服务器每 30 分钟崩溃一次
【发布时间】:2013-05-17 23:05:43
【问题描述】:

更新:见Sunspot-Solr slowing down to a beast once my Application climbed to > 1000 objects [ Solr Logs Included ]

SysAdmin 发现 Xen CPU 中断出现峰值,不知道是什么原因造成的。 Xen virq_timer 在崩溃前大约 10 分钟中断峰值,这就是我们识别崩溃是否即将到来的方式。

一旦 xen cpu 在峰值 tomcat 死后 10 分钟中断峰值。

运行普通值设置。它正在索引博客文章类型的内容。这是我反复看到的错误:

严重:java.lang.OutOfMemoryError:Java 堆空间 在 org.apache.lucene.search.ExactPhraseScorer.(ExactPhraseScorer.java:37) 在 org.apache.lucene.search.PhraseQuery$PhraseWeight.scorer(PhraseQuery.java:251) 在 org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery.java:298) 在 org.apache.lucene.search.FilteredQuery.getFilteredScorer(FilteredQuery.java:149) 在 org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:577) 在 org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:364) 在 org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1296) 在 org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1176) 在 org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:375) 在 org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:394)

严重:java.lang.OutOfMemoryError:Java 堆空间 在 java.util.Arrays.copyOf(Arrays.java:2894) 在 java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:117) 在 java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:407) 在 java.lang.StringBuffer.append(StringBuffer.java:241) 在 java.util.logging.SimpleFormatter.format(SimpleFormatter.java:88) 在 org.apache.juli.FileHandler.publish(FileHandler.java:198) 在 java.util.logging.Logger.log(Logger.java:476) 在 org.slf4j.impl.JDK14LoggerAdapter.log(JDK14LoggerAdapter.java:588) 在 org.slf4j.impl.JDK14LoggerAdapter.info(JDK14LoggerAdapter.java:285)

在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1386)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:636)

2013 年 5 月 16 日上午 1:04:46 org.apache.solr.common.SolrException 日志 严重:java.lang.OutOfMemoryError:Java 堆空间 在 org.apache.lucene.search.ExactPhraseScorer.(ExactPhraseScorer.java:38) 在 org.apache.lucene.search.PhraseQuery$PhraseWeight.scorer(PhraseQuery.java:251) 在 org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery.java:298) 在 org.apache.lucene.search.FilteredQuery.getFilteredScorer(FilteredQuery.java:149) 在 org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:577) 在 org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:364) 在 org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1296) 在 org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1176) 在 org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:375)

在 org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:394)

设置:

export JAVA_OPTS="-Xms1024m -Xmx4096m"

【问题讨论】:

  • 你只是用完了堆空间。你的-Xmx setting是什么?
  • 添加设置,见上文。
  • 您在 Solr 中保存的文档数量是多少?
  • 2000 个文档。我的团队有一个偷偷摸摸的怀疑是我发送给 solr 的术语数量。我在 solr 服务器的帖子中看到了多达 95 到 106 个术语。无法证明这一点,但我的团队认为这就是违规者。
  • 这里是这个问题的解决方案:stackoverflow.com/questions/4887142/…

标签: tomcat solr


【解决方案1】:

也可能是您现在正在向服务器发送不同类型的查询,这些查询需要更多内存来处理。 Java 不会按需分配内存,而是在应用程序启动时获取分配给它的内存,如果它用完,它就会简单地因 OutOfMemoryError 而崩溃。应用程序可能运行良好,直到索引大小增长并且查询消耗足够的内存导致问题。

默认的 Java 堆大小设置(256Mb?)对于运行 Solr 来说非常低。根据我的经验,1-2Gb 是有用的最小值,否则 Solr 会不断崩溃。您可以从管理界面观察 Solr 内存使用情况,并相应地调整设置以匹配特定索引/查询类型的内存要求。

您可以通过在启动时提供 Solr -Xmx1024m 参数来增加内存分配,或者将该设置添加到所有 Java 应用程序的 JAVA_OPTS 环境变量中。

【讨论】:

  • 感谢Fuu的回复,我在上面添加了设置信息。
猜你喜欢
  • 2014-04-16
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多