elasticsearch,elasticsearch-jest,Java,elasticsearch,Elasticsearch Jest" /> elasticsearch,elasticsearch-jest,Java,elasticsearch,Elasticsearch Jest" />

Java ElasticSearch 5.2.2插槽读取超时

Java ElasticSearch 5.2.2插槽读取超时,java,elasticsearch,elasticsearch-jest,Java,elasticsearch,Elasticsearch Jest,我从ES的2.2移到了5.2.2。我已经运行了一些测试,并且得到了两个错误(一个来自记录器,一个来自ES) 记录器: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.Socke

我从ES的2.2移到了5.2.2。我已经运行了一些测试,并且得到了两个错误(一个来自记录器,一个来自ES)

记录器:

java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:152)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:270)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:161)
at sun.reflect.GeneratedMethodAccessor832.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.http.impl.conn.CPoolProxy.invoke(CPoolProxy.java:138)
at com.sun.proxy.$Proxy325.receiveResponseHeader(Unknown Source)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:254)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
at io.searchbox.client.http.JestHttpClient.executeRequest(JestHttpClient.java:109)
at io.searchbox.client.http.JestHttpClient.execute(JestHttpClient.java:56)
at gov.nasa.jpl.view_repo.db.ElasticHelper.indexCommit(ElasticHelper.java:301)
at gov.nasa.jpl.view_repo.util.EmsNodeUtil.insertCommitIntoElastic(EmsNodeUtil.java:801)
at gov.nasa.jpl.view_repo.webscripts.ModelPost.executeImplImpl(ModelPost.java:145)
at gov.nasa.jpl.view_repo.webscripts.ModelPost.executeImpl(ModelPost.java:80)
at gov.nasa.jpl.view_repo.webscripts.DeclarativeJavaWebScript.execute(DeclarativeJavaWebScript.java:105)
at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:489)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:454)
at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:551)
at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:619)
at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:399)
at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:280)
at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
ES(我认为这与第一个错误无关,但仍然):

[WARN ][o.e.m.j.JvmGcMonitorService] [PnpfiI6] [gc][9162] overhead, spent [1.1s] collecting in the last [1.6s]
factory.setHttpClientConfig(new HttpClientConfig.Builder(elasticHost).defaultSchemeForDiscoveredNodes("https").multiThreaded(true)
                .readTimeout(180000).build());
Jest被正确地设置为一个单例,一次调用如下:

[WARN ][o.e.m.j.JvmGcMonitorService] [PnpfiI6] [gc][9162] overhead, spent [1.1s] collecting in the last [1.6s]
factory.setHttpClientConfig(new HttpClientConfig.Builder(elasticHost).defaultSchemeForDiscoveredNodes("https").multiThreaded(true)
                .readTimeout(180000).build());
我尝试切换设置,打开和关闭多线程,添加和增加readTimeout,甚至connTimeout(尽管对于生产来说,这样做似乎是一个错误)

我有一个特别大的文档,我认为它可能会导致超时,但在2.2中没有这个问题。这类似于一个公开的问题

玩笑的github:

[WARN ][o.e.m.j.JvmGcMonitorService] [PnpfiI6] [gc][9162] overhead, spent [1.1s] collecting in the last [1.6s]
factory.setHttpClientConfig(new HttpClientConfig.Builder(elasticHost).defaultSchemeForDiscoveredNodes("https").multiThreaded(true)
                .readTimeout(180000).build());


有没有办法解决这个问题?为什么这个错误没有出现在2.2上?

ES告诉您,它将70%的时间用于垃圾收集。这将显著降低性能。你试过增加堆大小吗?@ChristianHäckh你是对的。我调整了这个参数,谢谢。@arturobelano您能解决这个问题吗?我也有阅读超时。