Elasticsearch7.8.0版本优化——写入速度优化

news/2024/11/24 0:23:29/

目录

    • 一、 写入速度优化的概述
    • 二、如何写入速度优化
      • 2.1、 批量数据提交
      • 2.2、 优化存储设备
      • 2.31、 合理使用合并
      • 2.4、 减少 Refresh
      • 2.5、 加大 Flush
      • 2.6、 减少副本的数量

一、 写入速度优化的概述

  • ES 的默认配置,是综合了数据可靠性、写入速度、搜索实时性等因素。实使用时,我们需要根据公司要求,进行偏向性的优化。

  • 针对于搜索性能要求不高,但是对写入要求较高的场景,我们需要尽可能的选择恰当写
    优化策略。综合来说,可以考虑以下几个方面来提升写索引的性能:

    1、加大 Translog Flush ,目的是降低 Iops、Writeblock。

    2、增加 Index Refresh 间隔,目的是减少 Segment Merge 的次数。

    3、调整 Bulk 线程池和队列。

    4、优化节点间的任务分布。

    5、优化 Lucene 层的索引建立,目的是降低 CPU 及 IO。

二、如何写入速度优化

2.1、 批量数据提交

  • ES 提供了 Bulk API 支持批量操作,当我们有大量的写任务时,可以使用 Bulk 来进行批量写入。
  • 通用的策略如下:Bulk 默认设置批量提交的数据量不能超过 100M。数据条数一般是根据文档的大小和服务器性能而定的,但是单次批处理的数据大小应从 5MB~15MB 逐渐增加,当性能没有提升时,把这个数据量作为最大值。

2.2、 优化存储设备

  • ES 是一种密集使用磁盘的应用,在段合并的时候会频繁操作磁盘,所以对磁盘要求较高,当磁盘速度提升之后,集群的整体性能会大幅度提高。

2.31、 合理使用合并

  • Lucene 以段的形式存储数据。当有新的数据写入索引时,Lucene 就会自动创建一个新的段。
  • 随着数据量的变化,段的数量会越来越多,消耗的多文件句柄数及 CPU 就越多,查询效率就会下降。
  • 由于 Lucene 段合并的计算量庞大,会消耗大量的 I/O,所以 ES 默认采用较保守的策略,让后台定期进行段合并

2.4、 减少 Refresh

  • Lucene 在新增数据时,采用了延迟写入的策略,默认情况下索引的 refresh_interval 为1 秒。
  • Lucene 将待写入的数据先写到内存中,超过 1 秒(默认)时就会触发一次 Refresh,然后 Refresh 会把内存中的的数据刷新到操作系统的文件缓存系统中。
  • 如果我们对搜索的实效性要求不高,可以将 Refresh 周期延长,例如 30 秒。这样还可以有效地减少段刷新次数,但这同时意味着需要消耗更多的 Heap 内存。

2.5、 加大 Flush

  • Flush 的主要目的是把文件缓存系统中的段持久化到硬盘,当 Translog 的数据量达到512MB 或者 30 分钟时,会触发一次 Flush。
  • index.translog.flush_threshold_size 参数的默认值是 512MB,我们进行修改。
  • 增加参数值意味着文件缓存系统中可能需要存储更多的数据,所以我们需要为操作系统
    的文件缓存系统留下足够的空间。

2.6、 减少副本的数量

  • ES 为了保证集群的可用性,提供了 Replicas(副本)支持,然而每个副本也会执行分析、索引及可能的合并过程,所以 Replicas 的数量会严重影响写索引的效率。
  • 当写索引时,需要把写入的数据都同步到副本节点,副本节点越多,写索引的效率就越慢。
  • 如 果 我 们 需 要 大 批 量 进 行 写 入 操 作 , 可 以 先 禁 止 Replica 复 制 , 设 置index.number_of_replicas: 0 关闭副本。在写入完成后,Replica 修改回正常的状态。

http://www.ppmy.cn/news/28796.html

相关文章

四信塔式起重机监控系统应用方案

方案背景 塔式起重机是当前工业建设进行起重运输作业的重要设备,其设备性能、参数、技术指标的可靠性都关系起重机设备的危险,塔式起重机安全事故关系国计民生、危害面广,给国家财产和生命安全带来严重损失。 目前众多塔式起重机司机虽然有上…

【高数】不定积分之有理函数的积分

文章目录前言有理函数积分的通用解法有理函数的特殊解法前言 这个专栏开始更新高等数学的解题方法,本专栏没有特别强调概念,主要是让大家熟悉考研中的一些题型以及如何求解 关键步骤用蓝色高亮提示 总结方法用红色高亮提示 注意事项用绿色高亮提示 希望…

EPICS synApps介绍

一、synApps是什么? 1) 一个用于同步束线用户的EPICS模块集合。 2) EPICS模块 alive, autosave, busy, calc, camac, caputRecorder, dac128V, delaygen, dxp, ip, ip330, ipUnidig, love, mca, measComp, modbus, motor, optics, quadEM,…

Java 类

Java类是Java编程语言中的基本概念之一,用于描述对象的属性和方法。本文将详细介绍Java类的作用、定义和使用,以及在实际工作中的应用。 什么是Java类? Java类是一种用于描述对象的模板或蓝图。它定义了一个对象的属性和方法,以…

数据结构与算法(二十)快速排序、堆排序(四)

数据结构与算法(三)软件设计(十九)https://blog.csdn.net/ke1ying/article/details/129252205 排序 分为 稳定排序 和 不稳定排序 内排序 和 外排序 内排序指在内存里,外排序指在外部存储空间排序 1、排序的方法分类。 插入排序&#xff…

Linux基础命令-ln创建链接文件

文章目录 ln 命令介绍 命令格式 基本参数 参考实例 1) 创建文件的硬链接 2)创建文件的软链接 3)创建链接文件时,相同目标文件创建备份文件 命令总结 ln 命令介绍 先看下帮助文档中的含义 NAME ln - make links …

html的常见标签使用

目录 1.vscode基础操作 2.html基础 语法 3.HTML文件的基本结构标签 4.注释标签 5.标题标签 6.段落标签:p 7.格式化标签 8.图片标签:img 绝对路径 相对路径 网络路径 alt属性 title属性 width/height属性 9.超链接标签:a 10.表格标签 11.列表标签 有序列表 无…

元宇宙营业厅,数字技术融合,赋能实体经济

在我国数字经济与虚拟服务市场规模扩大下,元宇宙营业厅强势来袭,从多场景、多内容,深耕高效协同的特色功能,基于多元化、灵活的交互体验,更大程度上解决线上业务办理抽象繁琐,线下业务办理的时空受限、业务…