Назад | Перейти на главную страницу

исключение тайм-аута сокета в ubuntu

У нас есть solr router и шарды. Это отображается в журнале причала маршрутизатора при выполнении фасетного поиска по всем шардам.

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 

за которым следует исключение о внутренней ошибке сервера. У нас восемьдесят шардов, распределенных по нескольким серверам. Маршрутизатор работает на собственном узле.

UPD: в классе HttpCommComponent для SOLR, который отправляет запросы в шарды с использованием класса HttpClient, я заметил следующий набор в MultiThreadedHttpConnectionManager: mgr.getParams (). SetDefaultMaxConnectionsPerHost (20);

мне кажется, слишком мало настроек для 80+ шардов.

В сообщении говорится, что ваш сервер получил tcp-reset и поэтому не может продолжить работу.

Полагаю, он действовал как HTTP-клиент? Правильный ли целевой URL (то есть не закрытый порт).

Используя tcpdump или аналогичный, вы сможете выяснить, что пошло не так.

После еще одной отладки я обнаружил, что один из запросов имел размер 4,4 МБ. По умолчанию maxPostSize в tomcat6 составляет 2 МБ (http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html).

Изменение этого значения на 10 МБ значительно улучшило ситуацию на стороне solr.