Tomcat Solr cloud在为常规搜索请求提供索引时崩溃
我在tomcat7上安装了一个4.6Solr云,设置了4个碎片(每个碎片有两个副本),ZooKeeper集成了3台服务器 每个solr服务器都有8个内核和30Gb的ram,我为solr/tomcat分配了15Gb,其余由操作系统处理 我们有一个约2500万文档的单一集合,索引大小约为15Gb。 虽然solr每分钟可以处理许多请求,但在大量索引之后,我得到了一个 线程“http-bio-8080-Acceptor-0”中出现异常 java.lang.OutOfMemoryError:无法创建新的本机线程 被雄猫扔了 索引是使用SolrJ的Tomcat Solr cloud在为常规搜索请求提供索引时崩溃,tomcat,solrj,solrcloud,jvm-crash,lucene-nrt,Tomcat,Solrj,Solrcloud,Jvm Crash,Lucene Nrt,我在tomcat7上安装了一个4.6Solr云,设置了4个碎片(每个碎片有两个副本),ZooKeeper集成了3台服务器 每个solr服务器都有8个内核和30Gb的ram,我为solr/tomcat分配了15Gb,其余由操作系统处理 我们有一个约2500万文档的单一集合,索引大小约为15Gb。 虽然solr每分钟可以处理许多请求,但在大量索引之后,我得到了一个 线程“http-bio-8080-Acceptor-0”中出现异常 java.lang.OutOfMemoryError:无法创建新的本
CloudSolrServer
完成的,有几个索引线程(共享CloudSolrServer
实例),一次执行5000个文档的批量索引。
该过程包括添加和删除文档。
在整个索引结束时,我们只执行一次提交
这个异常从一台服务器开始,但很快所有其他服务器都会出现,云无法提供任何请求(在日志中,我可以看到他们试图互相查询,但没有成功)
注意,tomcat没有挂起,只有solr进程。
为了恢复solr云,我必须重新启动所有8台服务器(killall…service start…)
以下是我使用的一些配置:
solrconfig.xml:
<autoCommit>
<maxDocs>50000</maxDocs>
<maxTime>${solr.autoCommit.maxTime:100000}</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:10000}</maxTime> -->
</autoSoftCommit>
<useColdSearcher>true</useColdSearcher>
<maxWarmingSearchers>4</maxWarmingSearchers>
我没有看到GC对CPU的任何重大使用,大部分都是由ParNew完成的,所以这里没有“停止世界”的问题
尝试将-Xmx15380m设置为2-4 gb,即-Xmx2048m请提供以下检查表的结果:
ulimit-a
,free-m
,ps uH p | wc-l
JAVA_OPTS="$JAVA_OPTS -Xmx15380m -Xms15380m -DzkHost=... -XX:NewRatio=1 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+CMSScavengeBeforeRemark -XX:PretenureSizeThreshold=64m -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:CMSTriggerPermRatio=80 -XX:CMSMaxAbortablePrecleanTime=6000 -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:+AggressiveOpts -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=512M -XX:PermSize=128M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tomcat7/heapDump.hprof"