Elasticsearch 写入优化探索:是什么影响了refresh 耗时?

1、问题背景:

数据写入后,refresh耗时过长,能达到1s-5s。

想通过测试,探索确认影响refresh的因素,比如:写入操作是新增还是更新,deleted文档占比是否有影响,是否有其他索引配置,等等。

9e8af36759727b8dee3dd0cb250b971b.jpeg

2、测试过程全记录

旧索引:24主分片,1副本,经过长期forcemerge,最大segmeng 33gb,镜像后deleted占比 8%左右。

noforcemerge 索引:24主分片,1副本,reindex后最大segmeng 5gb,deleted占比0%。

nosoftedelete 索引:关闭softdelete策略,24主分片,0副本,reindex后最大segmeng 5gb,deleted占比0%。


旧索引更新旧索引新增旧索引forcemerge后新增(带少量更新)noforcemerge索引更新旧索引低更新noforcemerge索引低更新nosoftedelete索引更新
时间段2023-10-12 21:30:00至2023-10-13 15:00:002023-10-13 15:55:00至2023-10-13 16:10:002023-10-13 20:40:00至2023-10-13 22:00:002023-10-16 10:40:00至2023-10-17 11:00:002023-10-17 16:20:00至2023-10-17 17:15:002023-10-17 17:20:00至2023-10-17 18:30:002023-10-19 11:00:00至今
写入速度2k/s2k/s2k/s2k/s2k/s2k/s2k/s
deleted占比增长最大 32%,最小 8%22%左右0%-2%0%-9%1.5%-2%7%-6%0%-8%
refresh耗时最大12s,最低3s200ms-400ms300ms-800ms1s-3s50ms-250ms500ms-1.5s200ms-300ms
refresh_external耗时最大12s,最低3s200ms-400ms300ms-800ms1s-3s50ms-250ms500ms-1.5s基本无
cpu使用50%-100%50%-100%50%-100%50%-100%30%-60%30%-60%10%-40%(查询条件优化)

3、查询测试

旧索引查询noforcemerge索引查询
时间段10-17 15:06:00 - 10-17 15:42:00
查询qps100/s
查询耗时平均45ms左右
cpu使用10%-30%

4、观测到的现象

c7aebcaa0f17bc1da168ed59f204d2d2.png cd642e33e98a9a21b32c2b14e537e63f.png

1.  纯更新操作会导致明显的 refresh 高耗时。

2.  降低索引中 deleted文档的占比也能降低refresh的高耗时。

3.  noforcemerge 索引的更新测试中,通过es热线程的抓取,refresh 的出现降低了(但依旧是100%),merge线程出现增多了不少。

4. soft delete 关闭的索引,refresh 耗时明显下降了,并且与 deleted 文档占比明显无关联。

5、测试初步结论

5.1 结论1. large segment 策略对索引日常使用无明显变化。

large segment 策略的修改对索引日常的查询和写入没有额外的资源占用。

同时也达到了预期自动清理deleted文档的效果。

5.2 结论2. refresh 影响因素。

  • 1.soft delete:soft delete模式是否开始直接影响refresh的耗时。关闭soft delete可降低refresh耗时,但不推荐。

  • 2.写入操作类型:开启 soft delete后,数据更新操作会明显增加 refresh耗时,而单纯的新增数据则没有太多的refresh耗时。

  • 3.deleted 占比:deleted 文档占比越高,refresh耗时越大。

19add7524a34a83c65c1008eb5fa2ca8.png

6、扩展:关于soft delete

6.1 soft delete 用途

用于分片间数据同步和恢复,属于 ES 分布式基础实现。

具体内容详见:

https://www.elastic.co/guide/en/elasticsearch/reference/7.10/index-modules-history-retention.html

soft delete详解:默认为开启,只能在索引创建时设定,不可通过开关索引操作修改。官方后期准备把这个参数去掉,这也是不建议修改soft_delete参数的一个原因。

6.2 soft delete对 refresh 的影响

在测试过程以及社区文档中,均发现了soft_delete索引下 update 操作增加了refresh耗时的现象。

9cf449882f43580fc3af8a633dbf7cf6.png

https://mp.weixin.qq.com/s/_l8JAtqK_NOSP8b7OqSVDg

173e9ca9e721e7f1e97a912e491175b9.png

作者介绍

金多安,Elastic 认证专家,Elastic资深运维工程师,死磕Elasticsearch知识星球嘉宾,星球Top活跃技术专家,搜索客社区日报责任编辑

铭毅天下审稿并做了部分微调。

推荐阅读

  1. 全网首发!从 0 到 1 Elasticsearch 8.X 通关视频

  2. 重磅 | 死磕 Elasticsearch 8.X 方法论认知清单

  3. 如何系统的学习 Elasticsearch ?

  4. 2023,做点事

df35ee4687046372a44d7544449bd4d6.jpeg

更短时间更快习得更多干货!

和全球 近2000+ Elastic 爱好者一起精进!

c12f5a99801cff949d27ba57600f6ca9.gif

比同事抢先一步学习进阶干货!

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

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

相关文章

一、网络ensp安装

一、网络ensp安装https://blog.csdn.net/G_GUi/article/details/135176493 文章目录 一、下载4个软件安装二、工具栏常用图标 一、下载4个软件安装 前面3个软件必须要安装,不然用不了ensp https://pan.baidu.com/s/1kV7cL–BEbgANwSrZJ5t1Q?pwdqqqq 二、工具栏常…

【XML】TinyXML 详解(一):介绍

【C】郭老二博文之:C目录 1、简介 优点: TinyXML 是一个简单、小型的 C XML 解析器,可以轻松集成到项目中。 TinyXML 解析 XML 文档,并根据该文档构建可读取、修改和保存的文档对象模型 (DOM) TinyXML 是在 ZLib 许可下发布的&a…

AI一键注释代码、阅读整个项目、转换编程语言。已开源!

获取github源码地址和国内url、key方式:在文章底部 大家好今天给大家介绍一款开源项目,这个项目是由渡码维护的,这个项目支持自己的大模型和使用openai两种方式,本文章介绍使用openai的方式! 使用过程中发现两个问题…

Java 第16章 坦克大战1-2 思路整理

文章目录 1 绘制坦克坦克画板Panel画框Frame 2 让坦克动起来画板Panel 3 本章作业 1 绘制坦克 坦克 不同坦克有共同属性,可以先提取共同特征(坐标位置)作为父类,然后其他坦克类继承它。 画板Panel 有坦克在画板上显示&#xf…

四. 基于环视Camera的BEV感知算法-PETR

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比5. PETRv2总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第四章——基…

[MySQL binlog实战] 增量同步与数据搜索~从入门到精通

学习基础知识,并落实到实际场景(增量同步数据搜索) 对基础知识不感兴趣的,可以直接跳到应用场景 文章目录 binlog是什么简介产生方式文件格式statementrowmixed 怎么办开启 binlog查看 binlog其他查看相关命令运维查看 binlog设置…

mysql8.x版本_select语句源码跟踪

总结 源码基于8.0.34版本分析,函数执行流程含义大致如下: do_command 方法从连接中读取命令并执行,调用 dispatch_command 对命令进行分发。dispatch_command 调用 mysql_parse 对命令进行解析,如果遇到一条语句用 ; 分隔多条命…

猫头虎带您探索Go语言的魅力:GoLang程序员必备的第三方库大盘点 ‍ ‍

猫头虎带您探索Go语言的魅力:GoLang程序员必备的第三方库大盘点 ‍ 🚀🐱‍💻 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏&#x…

Netty Review - 深入探讨Netty的心跳检测机制:原理、实战、IdleStateHandler源码分析

文章目录 概述心跳检测Code模拟心跳超时正常情况 IdleStateHandler源码分析channelReadchannelActiveinitialize 概述 心跳检测 Netty 的心跳检测机制是一种用于保持网络连接活跃的机制,它通过定期发送和接收特定的消息(心跳包)来确保客户端…

Java复习二—CH3-Exception 、CH4-I/O

CH3 Java Exception (异常) 3.1 Exception(异常)和 Error(错误) 异常能被程序本身可以处理,错误是无法处理 大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM 出现的问题 异常发生的原因有很…

电子科大软件系统架构设计——软件建模详细设计

文章目录 软件建模详细设计概述软件建模详细设计目标软件建模详细设计原则开闭原则里氏 (Liskov) 替换原则依赖倒置原则接口分离原则单一职责原则最少知识原则(迪米特法则)高内聚原则松耦合原则可重用原则 软件建模详细设计内容 UML 软件静态结构视图建模…

现代控制理论-李雅普诺夫

现代控制理论-李雅普诺夫 单输入单输出系统(BIBO)的系统函数如下: 则,该系统的能控标准型(能空性)为: 能观性: 李雅普诺夫下的稳定性: 李雅普诺夫下的渐进稳定性&a…

Ubuntu20.04纯命令配置PCL(点云库)

Ubuntu20.04纯命令配置PCL(点云库) 最近在学习点云库(PCL)的使用,第一步就是在自己的电脑安装配置PCL。 首先,对于ubuntu 16.04以上版本,可以直接使用命令进行安装,新建好一个文件夹…

小程序radio单选框回显

话不多说&#xff0c;效果图如下&#xff1a; 具体代码如下&#xff1a; <radio-group name"radio" bindchange"getSex"><label><radio value"1" checked"{{xingbie1}}" />男</label><label><radio…

Python序列之元组

系列文章目录 Python序列之列表 Python序列之元组 系列文章目录前言一、元组是什么&#xff1f;二、元组操作1.元组的创建&#xff08;1&#xff09;通过()创建。小括号可以省略。&#xff08;2&#xff09;通过tuple()函数创建。&#xff08;3&#xff09;通过生成器推导式创…

HBase 集群搭建

文章目录 安装前准备兼容性官方网址 集群搭建搭建 Hadoop 集群搭建 Zookeeper 集群解压缩安装配置文件高可用配置分发 HBase 文件 服务的启停启动顺序停止顺序 验证进程查看 Web 端页面 安装前准备 兼容性 1&#xff09;与 Zookeeper 的兼容性问题&#xff0c;越新越好&#…

ubuntu docker 进入容器内使用ping 指令,提示bash: ping: command not found问题

解决方法 #更新软件列表 apt update #安装 ping 工具iputils-ping apt install -y iputils-ping #最后使用ping一下容器ping 172.18.0.3欢迎关注我的公众号“点滴分享技术猿”&#xff0c;原创技术文章第一时间推送。

WT2605C音频蓝牙语音芯片:单芯片实现蓝牙+MP3+BLE+电话本多功能应用

在当今的电子产品领域&#xff0c;多功能、高集成度成为了一种趋势。各种产品都需要具备多种功能&#xff0c;以满足用户多样化的需求。针对这一市场趋势&#xff0c;唯创知音推出了一款集成了蓝牙、MP3播放、BLE和电话本功能的音频蓝牙语音芯片——WT2605C&#xff0c;实现了单…

超维空间S2无人机使用说明书——21、VINS视觉定位仿真

引言&#xff1a;为了实现室内无人机的定位功能&#xff0c;S系列无人机配置了VINS-FUSION定位环境&#xff0c;主要包含了仿真跑数据集和实际操作部分。为了提前熟悉使用原理&#xff0c;可以先使用仿真环境跑数据集进行学习和理解 硬件&#xff1a;1080P显示器、Jetson orin…

博弈论:理解决策背后的复杂动态

1.基本概念 博弈论是一门研究具有冲突和合作元素决策制定的数学理论。它不仅适用于经济学&#xff0c;还广泛应用于政治学、心理学、生物学等领域。博弈论的核心在于分析参与者&#xff08;称为“玩家”&#xff09;在特定情境下的策略选择&#xff0c;以及这些选择如何影响最…
最新文章