【问题标题】:Solr throwing SocketException: Connection resetSolr 抛出 SocketException:连接重置
【发布时间】:2015-02-02 12:10:39
【问题描述】:

我有 8 节点 solr 云集群与外部 zookeeper 连接。每个节点:30 Gb,4 核。 我创建了大约 100 个集合,每个集合大约有 100 个集合。 30个碎片。 (为什么我需要它,让我们另辟蹊径,业务隔离,业务需求可以是任何东西)。

现在,我正在同时将 30 个集合的数据提取到集群中。我看到对少数集合的摄取失败了。在 solr 日志中,我可以看到此“连接重置”异常发生。摄取的总时间约为 10 小时。

有什么建议吗?即使是由于资源匮乏,我如何证明由于资源不足而导致连接重置即将到来。

==== 例外======

2015-01-30 09:16:14,454 ERROR [updateExecutor-1-thread-8151] ? (:) - error
java.net.SocketException: Connection reset

at java.net.SocketInputStream.read(SocketInputStream.java:196) ~[?:1.7.0_55]
at java.net.SocketInputStream.read(SocketInputStream.java:122) ~[?:1.7.0_55]
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:160) ~[httpcore-4.3.jar:4.3]
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:84) ~[httpcore-4.3.jar:4.3]
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:273) ~[httpcore-4.3.jar:4.3]
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260) ~[httpcore-4.3.jar:4.3]
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:283) ~[httpcore-4.3.jar:4.3]
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:251) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:197) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271) ~[httpcore-4.3.jar:4.3]
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123) ~[httpcore-4.3.jar:4.3]
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:682) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) ~[httpclient-4.3.1.jar:4.3.1]
at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer$Runner.run(ConcurrentUpdateSolrServer.java:233) [solr-solrj-4.10.0.jar:4.10.0 1620776 - rjernst - 2014-08-26 20:49:51]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_55]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_55]
at java.lang.Thread.run(Thread.java:745) [?:1.7.0_55]`enter code here`

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题,还没有线索

标签: java solr solrj solrcloud lucidworks


【解决方案1】:

根据我的经验,当 cpu 被最大化时会发生这种情况,即使可能持续一分钟,也可能导致更新失败。

这是因为除了当前尝试完成的操作之外,它无法执行任何其他操作。它在队列中有更新,但与此同时,动物园管理员将其标记下来,因为它无法与分片通信。由于分片被标记为关闭(这就是导致连接重置的原因),发送更新的节点会收到更新分片错误。

如果您有副本行,则副本分片成为主分片,当前节点成为副本。这会触发从新主分片中吸取索引。

您可以通过在编制索引时减慢查询速度以及减慢编制索引速度来防止这种情况发生。添加更多的 CPU 或添加更多的内存也会有所帮助。

【讨论】:

  • 我同意 CPU 的担忧。我支持 Alfresco Solr,并且我观察到问题的另一个原因是垃圾连接。调整 GC 以减少长连接很有用。 G1GC 有帮助,但根据我的经验,它需要更多的内存。另一种可能性是减少活动线程的数量。
  • 我们已经有了这个设置,但是没有帮助 -XX:+AggressiveOpts-XX:+ParallelRefProcEnabled-XX:+CMSParallelRemarkEnabled-XX:CMSMaxAbortablePrecleanTime=6000-XX:CMSTriggerPermRatio=80-XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly-XX:CMSFullGCsBeforeCompaction=1-XX:PretenureSizeThreshold=64m-XX:+CMSScavengeBeforeRemark-XX:+UseConcMarkSweepGC-XX:MaxTenuringThreshold=8-XX:TargetSurvivorRatio=90-XX:SurvivorRatio=4-XX:NewRatio= 3 @luiscolorado
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 1970-01-01
  • 2020-01-31
相关资源
最近更新 更多