elasticsearch high cpu usage

12,185

Are you 100% sure there are only a few requests going on when this is occurring?

The log indicates there are so many queries getting run that it is rejecting new ones and I would expect bigdesk to show this flood of queries.

There must be some sort of batch/automated process flooding your system with queries. Been there done that a few times.

You should check the index slow log and potentially tweak the timings so you're logging out most queries (for a short period of time). See here for more details: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-slowlog.html

Share:
12,185
Admin
Author by

Admin

Updated on June 28, 2022

Comments

  • Admin
    Admin almost 2 years

    I have 5 clustered nodes and each nodes have 1 replica. total document size is 216 M and 853,000 docs. I was suffering from very high CPU usage. about 60%~80% every hours and every early morning about am 05:00 ~ am 09:00 there is elasticsearch only on this server

    I thought there are something wrong with es process. but there is a few server request at cpu peak time. and there is no cron job even.

    every hours and every early morning about am 05:00 ~ am 09:00 I don't know what's going on elasticsearch at this time!! somebody help me, tell me what happened in there. please..

    $ ./elasticsearch -v 
    Version: 1.1.1, Build: f1585f0/2014-04-16T14:27:12Z, JVM: 1.7.0_55 
    
    $ java -version 
    java version "1.7.0_55" 
    Java(TM) SE Runtime Environment (build 1.7.0_55-b13) 
    Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) 
    

    and I installed plugins on elasticsearch: HQ, bigdesk, head, kopf, sense

    es log at cpu peak time:

    [2014-07-03 08:01:00,045][DEBUG][action.search.type       ] [node1] [search][4], node[GJjzCrLvQQ-ZRRoqL13MrQ], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@451f9e7c] lastShard [true] 
    org.elasticsearch.common.util.concurrent.EsRejectedExecutionException: rejected execution (queue capacity 300) on org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$4@68ab486b 
        at org.elasticsearch.common.util.concurrent.EsAbortPolicy.rejectedExecution(EsAbortPolicy.java:62) 
        at java.util.concurrent.ThreadPoolExecutor.reject(Unknown Source) 
        at java.util.concurrent.ThreadPoolExecutor.execute(Unknown Source) 
        at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:293) 
        at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:300) 
        at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.start(TransportSearchTypeAction.java:190) 
        at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction.doExecute(TransportSearchQueryThenFetchAction.java:59) 
        at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction.doExecute(TransportSearchQueryThenFetchAction.java:49) 
        at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:63) 
        at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:108) 
        at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:43) 
        at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:63) 
        at org.elasticsearch.client.node.NodeClient.execute(NodeClient.java:92) 
        at org.elasticsearch.client.support.AbstractClient.search(AbstractClient.java:212) 
        at org.elasticsearch.rest.action.search.RestSearchAction.handleRequest(RestSearchAction.java:98) 
        at org.elasticsearch.rest.RestController.executeHandler(RestController.java:159) 
        at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:142) 
        at org.elasticsearch.http.HttpServer.internalDispatchRequest(HttpServer.java:121) 
        at org.elasticsearch.http.HttpServer$Dispatcher.dispatchRequest(HttpServer.java:83) 
        at org.elasticsearch.http.netty.NettyHttpServerTransport.dispatchRequest(NettyHttpServerTransport.java:291) 
        at org.elasticsearch.http.netty.HttpRequestHandler.messageReceived(HttpRequestHandler.java:43) 
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
        at org.elasticsearch.common.netty.handler.codec.http.HttpChunkAggregator.messageReceived(HttpChunkAggregator.java:145) 
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:296) 
        at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459) 
        at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536) 
        at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) 
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
        at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:74) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) 
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268) 
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:255) 
        at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) 
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) 
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) 
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 
        at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 
        at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
        at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
        at java.lang.Thread.run(Unknown Source)