tencent cloud

Elasticsearch Service

新手指引
动态与公告
产品动态
产品公告
安全公告
产品简介
产品概述
Elasticsearch 版本支持说明
产品功能
高级特性(X-Pack)
产品优势
应用场景
能力与限制说明
相关概念
购买指南
计费概述
产品定价
ES Serverless 服务定价
欠费说明
ES 内核增强
内核版本发布记录
定向路由优化
压缩算法优化
FST Off Heap 内存优化
快速入门
集群规格和容量配置评估
创建集群
访问集群
ES Serverless 服务指南
服务概述
基本概念
5分钟快速体验
快速使用
访问控制
数据写入
数据查询
索引管理
告警管理
ES API 参考
相关问题
数据应用指南
数据应用概述
数据管理
ES 集群指南
集群管理
访问控制
集群多可用区部署
集群扩缩容
集群配置
插件配置
监控与告警
日志查询
数据备份
升级
实践教程
数据迁移和同步
应用场景构建
索引设置
SQL 支持
企业微信机器人接收 Watcher 告警
API 文档
History
Introduction
API Category
Instance APIs
Making API Requests
Data Types
Error Codes
常见问题
产品相关问题
ES 集群
词汇表
新版介绍
Elasticsearch Service 2020.07新版
Elasticsearch Service 2020.2新版
Elasticsearch Service 2019.12新版
文档Elasticsearch Service常见问题ES 集群集群异常问题集群整体 CPU 使用率过高问题如何解决?

集群整体 CPU 使用率过高问题如何解决?

PDF
聚焦模式
字号
最后更新时间: 2021-08-11 11:17:23

问题现象

集群所有节点 CPU 都很高,但读写都不是很高。具体表现可以从 kibana 端 Stack Monitoring 监控页面看到:

另外也可以从 ES 控制台 UI 的节点监控页面看到各节点的 CPU 使用率情况:

出现这种情况,由于表面上看集群读写都不高,导致很难快速从监控上找到根因。所以需要细心观察,从细节中找答案,下面我们介绍几种可能出现的场景以及排查思路。
说明:
对于个别节点 CPU 使用率远高于其他节点,这种情况较为常见,多数是因为集群使用不当导致的负载不均,可参考 出现集群负载不均的问题如何解决

问题定位和解决方案

查询请求较大导致 CPU 飙高

这种情况比较常见,可以从监控上找到线索。通过监控可以发现,查询请求量的波动与集群最大 CPU 使用率是基本吻合的。

进一步确认问题需要开启集群的慢日志收集,具体可参考 查询集群日志。从慢日志中,可以得到更多信息,例如引起慢查询的索引、查询参数以及内容。

解决方案

尽量避免大段文本搜索,优化查询。
通过慢日志确认查询慢的索引,对于一些数据量不大的索引,设置少量分片多副本,例如1分片多副本,以此来提高查询性能。

写入请求导致 CPU 飙高

通过监控来观察到 CPU 飙高与写入相关,然后开启集群的慢日志收集,确认写入慢的请求,进行优化。也可以通过获取hot_threads信息来确认什么线程在消耗 CPU:
curl http://9.15.49.78:9200/_nodes/hot_threads

例如,这里发现的是有大量 ingest pipeline 操作,而 ingest 操作是十分消耗资源的。


解决方案

如遇到上面这种问题,则需要业务方根据实际情况来优化。排查该类问题的关键点,在于善用集群的监控指标来快速判断问题的方向,再配合集群日志来定位问题的根因,才能快速地解决问题。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈