Elasticsearch实例cpu使用率高及查找频繁执行的任务问题排查思路

举报
xxlla 发表于 2022/05/17 15:22:36 2022/05/17
【摘要】 一. 问题背景与现象1.某局点Elasticsearch集群,单个ES数据实例cpu使用率持续很高,导致客户入库业务持续阻塞如下图,单实例cpu使用率达到了5106%二.原因分析1.看是哪类任务导致实例cpu使用率高(写入还是查询)curl -XGET --tlsv1.2 --negotiate -k -u : "https://127.0.0.1:24100/_cat/tasks?"|gr...

一. 问题背景与现象

1.某局点Elasticsearch集群,单个ES数据实例cpu使用率持续很高,导致客户入库业务持续阻塞

如下图,单实例cpu使用率达到了5106%

二.原因分析

1. 使用如下ES命令看是哪类任务导致实例cpu使用率高(写入还是查询)

     curl -XGET --tlsv1.2 --negotiate -k -u : "https://ip:port/_cat/tasks?detailed&v"|grep EsNode1@ip
    需把EsNode1@ip换成对应cpu高的实例名称

2. 根据查询结果,第一列全部是data/write/bulk任务(bulk表示写入任务),说明为写入业务造成此实例cpu使用率高。最后一列中会显示具体的索引名称及分片编号,index[index_name][16]中,index_name表示索引名称,16表示分片编号。因此可以判断是index_name索引的写入任务量过大导致实例cpu使用率过高

1.jpg

3. 除了写入造成cpu高的情况,若第一列都打印data/read/search,说明是查询业务造成此实例cpu使用率高,最后一列会显示具体索引名称及查询语句,根据相应信息找到对应业务进行整改即可

以下为一条数据的打印为例:

2.jpg

第一列打印indices:data/read/search表明是查询业务,,indices[]中打印了索引名称,红框内source[]中会打印完整的search查询语句。根据以上信息即可找到相应的业务及查询语句,进一步判断是否是业务不合理或查询并发过高导致的此问题

三.解决办法

1. 将相应造成cpu使用率高的业务先停止

针对写入业务需整改此索引的业务,将一批bulk写入数据大小控制在15mb以内,写入并发量过大的情况下需同时减小写入并发

针对查询业务需分析器对应的查询语句,看是否存在查询语句不合理的情况,如大size聚合查询,大量的wildcard查询,进行相应整改,查询并发量过大的情况下需同时减小查询并发

2. 为加快恢复,可先重启cpu使用率高的ES实例

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。