5

外部飼育係に接続された 8 ノードの solr クラウド クラスターがあります。各ノード: 30 Gb、4 コア。私は約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`
4

1 に答える 1

0

私の経験に基づいて、これはCPUが最大になったときに発生します.1分間であっても、更新の失敗を引き起こす可能性があります.

これは、現在終了しようとしている操作以外の操作を実行できないためです。キューに更新がありますが、その間、飼育係はシャードと通信できないため、それをマークダウンします。シャードがダウンとマークされているため (これが接続のリセットの原因です)、更新を送信したノードは更新シャード エラーを受け取ります。

レプリカ行がある場合、レプリカ シャードがマスターになり、現在のノードがレプリカになります。これにより、新しいマスター シャードからのインデックスのサック ダウンがトリガーされます。

インデックス作成中のクエリを遅くし、インデックス作成も遅くすることで、これを防ぐことができます。また、CPUを追加するか、RAMを追加することも役立ちます。

于 2017-01-04T14:16:39.173 に答える