solr - java 堆空间不足内存

2022-09-04 01:12:00

任何人都可以帮我找出tomcat中的错误原因。我在里面使用solr。启动它工作正常。稍后我将提出此错误。重新启动后,它工作正常。请帮我找出错误。

Mar 7, 2011 10:36:47 AM org.apache.solr.common.SolrException log SEVERE: java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1068) at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:418) at org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:85) at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:169)at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69) at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) atorg.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Unknown Source) Cause by: java.lang.OutOfMemoryError: Java heap space


答案 1

尝试增加记忆力

设置环境变量,这意味着堆起始大小为 256 MB,最大 512 MB。或者编辑您的卡塔利娜.bat或.sh并在那里添加此行。JAVA_OPTS="-Xms256m -Xmx500m"

你必须考虑这些值,几周前我有一个SOLR索引器作业,大约2 GB的数据,需要700MB堆。


答案 2

您可以尝试在数据源定义中降低缺省批处理大小 JDBC 连接参数。
DataImportHandler 旨在逐个流式传输行。它将读取大小值(默认值:500)传递给语句#setFetchSize,某些驱动程序不支持该值。

如果您使用的是MsSQL,则可以添加dataSource param responseBuffering=“adaptive”。

更多信息请看这里:
http://wiki.apache.org/solr/DataImportHandlerFaq