Elasticsearch.Net and timeouts

I have a 4-node elastic search node. I have a .net console application designed to populate a cluster with data coming from sql. Everything works fine as long as I keep the speed of adding (or deleting) records at a fairly low level. If I increase the number of threads, I will see timeout errors from my console application. The cluster has only 48 cores, and the average time required to index the record is about 0.1 second.

I managed to get him to do about 7000 records (documents) per second. I never see any exceptions that are thrown from an elastic search on the Internet that indicate low resources. I never see overloaded indexing queues. Servers never reach more than 10% of the processor time. It seems that the problem is not in the cluster or its configuration, but in something related to the socket. Here is my connection code:

//set up the es client
Uri node = new    Uri(ConfigurationManager.AppSettings["ESConnectionString"]);
var connectionPool = new SniffingConnectionPool(new[] { node });
ConnectionSettings settings = new ConnectionSettings(connectionPool);
settings.SetDefaultPropertyNameInferrer(p => p); //ditch the camelcase
settings.SniffOnConnectionFault(true);
settings.SniffOnStartup(true);
settings.SniffLifeSpan(TimeSpan.FromMinutes(1));
settings.SetPingTimeout(3000);
settings.SetTimeout(5000);
settings.MaximumRetries(5);
//settings.SetMaximumAsyncConnections(20);
settings.SetDefaultIndex("dummyindex");
settings.SetBasicAuthentication(ConfigurationManager.AppSettings["ESUser"], ConfigurationManager.AppSettings["ESPass"]);
ElasticClient client = new ElasticClient(settings);

I configured a cluster with http.basic authentication, but I tried turning it on and off, and there is no difference. Here are some of the relevant settings from ES nodes:

discovery.zen.minimum_master_nodes: 2
discovery.zen.fd.ping_timeout: 30s
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["CACHE01","CACHE02","CACHE03","CACHE04"]
cluster.routing.allocation.node_concurrent_recoveries: 5
indices.recovery.max_bytes_per_sec: 50mb
http.basic.enabled: true
http.basic.user: "admin"
http.basic.password: "XXXXXXX"

, .Net ? , , . , BulkAPI, SQL- , , , . , , , . , , , , get-update-delete-reindex, , , .

ES, . , . ES .

- , , ?

: :

: (SaveToES). Elasticsearch.Net.Exceptions.MaxRetryException: maxretry ---> Elasticsearch.Net.Exceptions.SniffException: maxretry ---> Elasticsearch.Net.Exceptions.MaxRetryException: 00:00:05 1 : "GET _nodes/_all/clear? Timeout = 3000". InnerException: WebException, InnerMessage: , InnerStackTrace: System.Net.HttpWebRequest.GetResponse() Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest ( HttpWebReestestException, WebException, []) InnerMessage: , InnerStackTrace: System.Net.HttpWebRequest.GetResponse() Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest ( HttpWebRequest, Byte [], IRequestConfig_RategSpecify_Refig_Spec_Ex_Ex_Ex_Gen_Spec_Exject_Reg_Sign_Eg_Seg) . ---> System.Net.WebException: System.Net.HttpWebRequest.GetResponse() Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest ( HttpWebRequest, Byte [], IRequestConfigSpecificific). --- --- --- Elasticsearch.Net.Connection.RequestHandlers.RequestHandlerBase.ThrowMaxRetryExceptionWhenNeeded [T] (TransportRequestState 1 requestState, Int32 maxRetries) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest[T](TransportRequestState 1 requestState) 1 requestState, Int32 maxRetries) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest[T](TransportRequestState 1 requestState) 1 requestState, Int32 maxRetries) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest[T](TransportRequestState 1 requestState) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest[T](TransportRequestState 1 requestState) Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.DoRequest [T] (TransportRequestState 1 requestState) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.Request[T](TransportRequestState 1 requestState) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.Request[T](TransportRequestState 1 requestState, Object data) Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.Sniff(ITransportRequestState ownerState) --- --- --- --- Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.Sniff(ITransportRequestState ownerState) Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.SniffClusterState(ITransportRequestState requestState) Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.SniffOnConnectionFailure(ITransportRequestState requestState) Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest [T] (TransportRequestState 1 requestState) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.DoRequest[T](TransportRequestState 1 requestState) Elasticsearch.Net.Connection.Reque stHandlers.RequestHandler.Request [T] (TransportRequestState 1 requestState, Object data) at Elasticsearch.Net.Connection.Transport.DoRequest[T](String method, String path, Object data, IRequestParameters requestParameters) at Elasticsearch.Net.ElasticsearchClient.DoRequest[T](String method, String path, Object data, IRequestParameters requestParameters) at Elasticsearch.Net.ElasticsearchClient.IndicesCreatePost[T](String index, Object body, Func 2 requestParameters) Nest.RawDispatch.IndicesCreateDispatch [T] (ElasticsearchPathInfo 1 pathInfo, Object body) at Nest.ElasticClient.<CreateIndex>b__281_0(ElasticsearchPathInfo 1 p, ICreateIndexRequest d) Nest.ElasticClient.Nest.IHighLevelToLowLevelDispatcher.Dispatch [D, 3 dispatch) at Nest.ElasticClient.CreateIndex(Func (D, . 3 dispatch) at Nest.ElasticClient.CreateIndex(Func 2 createIndexSelector) DCSCache.esvRepository.CreateIndex(String IndexName, String IndexVersion) DCSCache.esvRepository.Save(esv ItemToSave, String IndexName, String IndexVersion)

+4

Source: https://habr.com/ru/post/1616819/


All Articles