ubuntu 上的套接字超时异常

ubuntu 上的套接字超时异常

我们有 solr 路由器和分片。在所有分片上进行分面搜索时,这会出现在路由器的 jetty 日志中。

org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error 
org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: Retrying request 

随后出现有关内部服务器错误的异常。我们运行分布在多台服务器上的 80 个分片。路由器在其自己的节点上运行。

UPD:在使用 HttpClient 类将请求提交到分片的 SOLR 的 HttpCommComponent 类中,我注意到在 MultiThreadedHttpConnectionManager 上进行了以下设置:mgr.getParams().setDefaultMaxConnectionsPerHost(20);

我觉得 80+ 碎片的设置太少了。

答案1

该消息表明您的服务器收到了 tcp-reset,因此无法继续。

我假设他充当的是 HTTP 客户端?目标 URL 是否正确(即不是封闭端口)。

使用 tcpdump 或类似程序您应该能够找出问题所在。

答案2

经过进一步的调试,我发现其中一个请求的大小为 4.4MB。tomcat6 中的默认 maxPostSize 为 2MB(http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html)。

将其改为 10MB 极大地改善了 solr 方面的情况。

相关内容