在索引一些记录时,Elasticsearch卡住

时间:2016-01-26 11:47:19

标签: elasticsearch

我有一个elasticsearch节点(无tcp)的嵌入式实例,用于在庞大而复杂的关系数据库上提供快速索引的搜索引擎。

索引通过后台线程与db保持一致(这是ES的一种非常常见的使用模式)。

问题是,经过一段时间后我们开始看到如下所示的异常,我们必须停止并重新启动服务器以使其再次运行:

Caused by: EsRejectedExecutionException[rejected execution of org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryPhase$1@1133ea1 on EsThreadPoolExecutor[index, queue capacity = 200, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@1ff3ea[Running, pool size = 2, active threads = 2, queued tasks = 200, completed tasks = 5]]]
at org.elasticsearch.common.util.concurrent.EsAbortPolicy.rejectedExecution(EsAbortPolicy.java:50)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1369)
at org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor.execute(EsThreadPoolExecutor.java:85)
at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryPhase.routeRequestOrPerformLocally(TransportReplicationAction.java:444)
at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryPhase.doRun(TransportReplicationAction.java:386)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
at org.elasticsearch.action.support.replication.TransportReplicationAction.doExecute(TransportReplicationAction.java:120)
at org.elasticsearch.action.index.TransportIndexAction.innerExecute(TransportIndexAction.java:135)
at org.elasticsearch.action.index.TransportIndexAction.doExecute(TransportIndexAction.java:119)
at org.elasticsearch.action.index.TransportIndexAction.doExecute(TransportIndexAction.java:66)
at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:70)
at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:58)

除了这一个,日志中没有其他例外可见。接缝像是锁定在ES中的东西,当它达到致命数量的200个卡住的“东西”时,它将停止工作。

弹性搜索版本:2.1.1

0 个答案:

没有答案