Elasticsearch-高CPU优化

ES 高CPU会导致:

  • 吞吐量下降
  • 查询响应时间增加
  • 慢查询数增加

谁占用了CPU

  • us:user time,表示 CPU 执行用户进程的时间。(各种逻辑运算,函数,排序,复杂相关性计算,密集数据插入等等)
  • sy:system time,表示 CPU 在内核运行的时间。
  • wa:waiting time,表示 CPU 在等待 IO 操作完成所花费的时间。
  • hi&si:hard IRQ time,表示系统处理硬中断所花费的时间,soft IRQ time,表示系统处理软中断所花费的时间。
  • id:idle time,表示系统处于空闲期,等待进程运行。

sy,hi&si 是操作系统层面的cpu消耗,不是我们重点优化对象。id是空闲cpu,不需要关注。下面重点聊一下uswa。

如何减少CPU消耗

减少等待

提升IO处理能力

  • 加磁盘提升IO并发能力
  • 升级SSD
  • 合理分片提升并发能力,每个分片都是一个 Lucene 索引实例。集群总分片数建议控制在5w以内,单个索引的规模控制在 1TB 以内,单个分片大小控制在30 ~ 50GB。分片的数量通常建议小于或等于ES 的数据节点数量,最大不超过总节点数的2倍。确保对于节点上已配置的每个 GB的内存,将分片数量保持在 20 以下,如果某个节点拥有 30GB 的堆内存,那其最多可有 600 个分片。 参考:我在 Elasticsearch 集群内应该设置多少个分片? | Elastic Blog

减少IO量

  • 只返回需要的字段:只返回需要的字段,减少IO量。
  • 缓存:尽量使用filter代替must,filter满足一定条件会走Node Query Cache。Elasticsearch-内存结构_es查看当前运行内存-CSDN博客
  • 升级内存:升级内存可以提升缓存的数据量。建议设置内存:节点要存储的数据比例,搜索类比例:1:16,日志类比例:1:48-1:96。
  • 减少索引量:不需要查询的字段index设置成false,减少倒排索引大小。
  • 设置routing key:避免全分区查询。
  • 只存需要查询的字段:_source是压缩单字段存储,只存需要的字段以减少OS缓存量。
  • 减少查询量:规避prefix,wildcard等查询,匹配词比较多。
  • 减少单位时间写入量:大量密集写入改成渐进的写入策略。

减少计算

  • doc_values:开启doc_values提升聚合和排序性能(走_source需要解压缩)。
  • store:单字段查询场景可以设置字段store:true(走_source需要解压缩)。
  • 减少GC:调整内存参数,减少young gc 和 full gc次数。
  • 减少耗CPU查询:script_score,function_score, regexp等等查询。

分析高CPU

查看请求量

查看查询/写请求量,分析是否cpu高和查询量升高或者写入量升高导致的。

如图所示,查询请求量的波动与集群最大CPU使用率是基本吻合的。基本可以确定是增加的查询导致,发现了问题所在,进一步确认则需要开启集群的慢日志收集,可以参考官方文档:集群日志说明。从慢日志中,我们可以得到更多信息。比如引起慢查询的索引、查询参数以及内容。

查看hot_threads

Elasticsearch使用线程池管理CPU资源,用于并发操作。高CPU使用率通常意味着一个或多个线程池运行不足。如果某个节点的CPU使用率很高,可以使用该节点的热线程API(hot_threads)来检查节点上运行的资源密集型线程。

// 获取集群中各节点的cpu信息
GET _cat/nodes?v=true&s=cpu:desc

// 查看热线程
GET _nodes/my-node,my-other-node/hot_threads

// 查看正在运行中的任务,返回结果字段running_time_in_nanos表示sql运行时长单位纳秒
GET _tasks?actions=*search&detailed

// 取消任务
POST _tasks/my-task-id/_cancel

参考:High CPU usage | Elasticsearch Guide [8.14] | Elastic

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/729181.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python多语言欧拉法和预测校正器实现

📜流体力学电磁学运动学动力学化学和电路中欧拉法 📜流体力学电磁学运动学动力学化学和电路中欧拉法示例:Python重力弹弓流体晃动微分方程模型和交直流电阻电容电路 ✒️多语言实现欧拉法和修正欧拉法 在数学和计算科学中,欧拉…

HNU OS实验五

本内容针对湖南大学特色os实验前言 — os2024 lab 文档

无约束动态矩阵控制(DMC)

0、前言 动态矩阵控制(Dynamic Matrix Control,DMC)是一种典型的模型预测控制方法,其不需要被控对象的数学模型,只需要获取被控对象的阶跃响应序列即可实现控制效果,但其需要被控对象是渐近稳定的。 1、稳…

Unity做一个剪辑声音的工具 在编辑器模式实时剪辑声音

Unity音频剪辑工具的实现 在游戏开发中,音频是一个至关重要的元素。音频剪辑工具能够帮助开发者高效地编辑和管理音频文件。本文将解析一个基于Unity编辑器的音频剪辑工具的实现方法 效果 工具功能 该音频剪辑工具允许用户在Unity编辑器中加载音频片段&#xff0…

【django问题集】django.db.utils.OperationalError: (1040, ‘Too many connections‘)

一、报错内容 django.db.utils.OperationalError: (1040, Too many connections) 主要体现:就是请求不了后台,登录都登录不了。 二、代码优化 原生django配置的mysql连接是没有连接池的功能,会导致mysql连接创建过多导致连接数超过了mysql服…

解决安全规模问题:MinIO 企业对象存储密钥管理服务器

在强大可靠的存储解决方案领域,MinIO 作为持久层脱颖而出,为组织提供安全、持久和可扩展的存储选项。MinIO 通常负责处理关键任务数据,在确保高可用性方面发挥着至关重要的作用,有时甚至在全球范围内。存储数据的性质,…

内核模块的各种概念及示例

基本概念 (1)模块本身不被编译入内核映像,从而控制了内核镜像的大小。模块一旦insmod,它就和内核中的其他部分完全一样 (2)内核中已加载模块的信息也存在于/sys/module目录下;内核中将包含/sys/module/test_mod目录 (3)modprobe在加载某模…

单图创造虚拟世界只需10秒!斯坦福MIT联合发布WonderWorld:高质量交互生成

文章链接:https://arxiv.org/pdf/2406.09394 项目地址: https://WonderWorld-2024.github.io/ 本文介绍了一种新颖的框架—— WonderWorld,它可以进行交互式三维场景外推,使用户能够基于单张输入图像和用户指定的文本探索和塑造虚拟环境。尽…

Vue3插件安装

一、volar插件安装 volar:Vue文件的语法提示和高亮提醒。volar已经更名为Vue - Official,其安装步骤如下。 (1)打开vscode,点击扩展面板,在搜索窗口中输入volar,选择Vue - Official进行安装。 (2&#xff0…

ES 8.14 向量搜索优化

参考:https://blog.csdn.net/UbuntuTouch/article/details/139502650 检索器(standard、kNN 和 RRF) 检索器(retrievers)是搜索 API 中的一种新抽象概念,用于描述如何检索一组顶级文档。检索器被设计为可以…

安卓系统安装linux搭建随手服务器termux平替软件介绍

引言 旧手机丢可惜,可以用ZeroTermux(一款代替termux)的超级终端,来模拟Linux(甚至你可以模拟Win,只要性能够用) ps:此软件只是termux的增强版,相当于增加右边菜单&…

vue2 + Lodop 制作可视化设计页面 实现打印设计功能(一)

前言: 此功能的来源来自于当时需要制作一个便于客户操作的打印设计功能,然后就有了这个项目。这个帖子主要是用于分享与谈论,相互学习。 目标: 能在vue页面中拖拽组件支持批量操作拖动通过拖拽组件列表里的组件到page进行添加实…

物联网技术-第5章-物联网数据处理

目录 1.物联网数据特征 2.物联网数据处理 (1)数据清洗 (2)数据存储 (3)数据融合 (4)数据挖掘 3.大数据基本概念 4.云计算基本概念 (1)背景 &#xf…

leetcode 动态规划 (基础版) 下降路径最小和

题目: 题解: 这题和三角型路径和相似,但这题无法在像哪一题一样通过换一个方向逃避下标特判。所以这道题就写一个下标特判的方案。特殊的下标是每一行的第一个元素和最后一个元素,它们由头上的一个元素和左上和右上中的其中一个…

HTML(17)——圆角和盒子阴影

盒子模型——圆角 作用:设置元素的外边框为圆角 属性名:border-radius 属性值:数字px/百分比 也可以每个角设置不同的效果,从左上角顺时针开始赋值,没有取值的角与对角取值相同。 正圆 给正方形盒子设置圆角属性…

极验行为式验证码适配Harmony 鸿蒙SDK下载

现阶段,越来越多的开发者正在积极加入鸿蒙生态系统。随着更多开发者的参与,早在去年9月,极验就成为首批拥有鸿蒙NEXT内测版本和手机系统测试机会的验证码供应商。 为了提高各开发者及企业客户集成鸿蒙版本行为验4.0的效率,方便大家…

土壤墒情监测系统的工作原理

TH-TS600土壤墒情监测系统是一种能够实时、连续监测土壤湿度和水分状况的设备系统。以下是关于土壤墒情监测系统的详细介绍: 土壤墒情监测系统通常由以下几个部分组成:用于实时监测土壤湿度、温度等关键参数。传感器可以根据需要布置在不同的深度和位置…

OceanMind海睿思参与编写的《数据智能白皮书(2024年)》正式发布!

近日,由中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)牵头和组织,中新赛克海睿思作为TC601-WG16人工智能数据工作组合作伙伴参与编写的《数据智能白皮书(2024年)》正式发布。 中新赛克的卢云川、…

多波束测线问题

多波束测线问题 问题的背景是海洋测深技术,特别是涉及单波束测深和多波束测深系统。这些系统利用声波传播原理来测量水体深度。 单波束测深系统通过向海底发射声波信号并记录其返回时间来测量水深。该系统的特点是每次只有一个波束打到海底,因此数据分布…

秋招突击——6/17——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}

文章目录 引言复习新作删除链表倒数第N个节点题目描述个人实现参考实现 总结 引言 主管面,面的很凄惨,不过无所谓了,我已经尽力了。上午都在整理的面经,没有复习算法,而且这两天要弄一下论文,二十号就要提…