ES读写性能优化

(十一)elasticsearch集群及读写调优 elasticsearch调优 1:系统调优 1:内存调优 ES 安装后默认设置的堆内存是 1GB。如果内存相对很大,如 64G 及以上,那么我建议 ES 内存可以设置为 31G-32G(es分配总内存不超过总内存的一半)。如果内存很大可以通过多实例模式提高利用率,比如我们256G通常会部署3个实例 设置 ES 集群内存的时候,还有一点就是确保堆内存最小值(Xms)与最大值(Xmx)的大小是相同的,防止程序在运行时改变堆内存大小,这是一个很耗系统资源的过程。 还有一点就是避免swap交换内存,可以在配置文件 阅读详情

写性能优化

优化方案:
  • 客户端: 多线程写,批量写
  • ES:在高质量数据建模前提下,主要在refresh,translog和flush之间做文章
写性能优化 - refresh
  • 增大refresh_interval,降低实时性,增大一次refresh处理的文档树,默认是1s,设置为-1直接禁止自动refresh
  • 增大index buffer size ,参数 indices.memory.index_buffer_size(静态参数,在elasticsearch.yml),默认10%
写性能优化 - translog
  • index.translog.durability设置为async(异步模式),index.translog.sync_interval设置需要的大虾片,比如120s,那么translog会120s写一次磁盘
  • index.translog.flush_threshold_size默认512mb,translog超过该大小会触发flush
写性能优化 - 其他
  • 副本设置为0,写完再增加
  • 合理设计shard数,并保证shard均匀分配在所有的node上,充分利用node资源
    · index.routing.allocation.total_shards_per_node限定每个索引在每个node上可分配的总主副分片数
    · 5个node,某索引10个分片,1个副本,如何设置
    ~ (10 + 10)/5=4
    ~ 实际要设置5个,防止node下线时,分片迁移失败

读性能优化

读性能优化 - 数据建模
  • 高质量的数据建模
  • 将需要通过script脚本动态计算的值提前算好作为字段存到文档中
  • 尽量使得数据模型贴近业务模型
读性能优化 - 索引配置调优
  • 根据数据规模设置合理的主分片数,可通过测试得到适合的分片数
  • 设置合理的副本数
读性能优化 - 查询语句调优
  • 尽量使用Filter上下文,减少算分的场景,由于Filter有缓存机制,可以极大提升查询性能
  • 尽量不要使用Script进行字段计算或算分排序
  • 结合profile/explain API分析慢查询进行分析
ElasticSearch读写性能调优 深层次理解,虽然是每隔一秒就会将内存中的segment数据刷新到segment file中,但实际上这里并没有直接到磁盘文件,而是先写入到OS Cache中。以refresh_interval为间隔时间,将保存在ES 内存缓存区中的数据 刷新到 os的文件系统缓存中,定期清空es的buffer,生成segment。注意:ES 的默认设置,已经综合考虑了数据可靠性,搜索的实时性,写入速度,一般不要盲目修改。将segment刷新到os cache中,并开放了查询权限,以提升搜索的实时性。 阅读详情

相关推荐

Elasticsearch 读写性能优化

通用且成本高的方案 - hot warm架构 在资源充足的情况下,使用高性能服务器(CPU充足和SSD磁盘)作为hot节点,数据首先写入hot节点,将基本不再有写入和读取的索引放在warm节点(CPU和磁盘性能较低) 节点角色独立 拆分专属角色 master 仅作为matser节点,管理集群元数据,不负责请求转发和数据存储 client 仅负责接受客户端请求,并分发至数据节点并汇总数据 d...

dragonlicat的博客 913

解决在使用 Elasticsearch(ES)多线程批量操作时导致并发一致性的问题!!

现在就用一个在开发中的实际例子来说一下ES中多线程的情况下如何避免不一致性的问题。这里我使用了批量更新数据的一个例子;前端发送任务后,将ES中所有符合条件的数据的某一个字段全部更新一遍。由于数据量太大,所以准备使用多线程的方式去执行。例如前端发送了两个任务,这就代表我需要去更新两次。但是如果使用多线程就会导致最后一次更新完的数据可能将第一次更新的部分数据覆盖。在多线程情况下,更新 Elasticsearch 数据库可能会导致并发一致性问题。

qq_48607414的博客 3275

es中的高效文件读取方式

es读取磁盘数据的时候

lixia0417mul2的博客 857

CANFD升级踩坑实录:DBC转换时DLC大于8的信号怎么处理?

本文详细探讨了CANFD升级过程中DLC大于8的信号处理问题,提供了工程化解决方案和AutoSar BSW层配置要点。通过分析CAN与CANFD的DLC本质差异,提出信号拆分重组、DLC重映射和协议层适配三种策略,并给出验证与测试方案,帮助开发者避免数据截断和通信故障。

weixin_42521843的博客 228

机器人手眼标定快速精度验证方法

机器人手眼标定快速精度验证方法

laoli_的博客 1万+

ES读写数据的工作原理

一、es写数据过程 1、客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点) 2、coordinating node 对document进行路由(_routing机制),将请求转发给对应的node(有primary shard) 3、实际的node上的primary shard 处理请求,然后将数据同步到replica node。 4、coordinating node如果发现 primary node和所有replica node都搞定之后,就返回响应

iris_csdn的博客 2396

Vivado与VCS+Verdi联合仿真环境搭建全攻略

本文详细介绍了如何搭建Vivado与VCS+Verdi联合仿真环境,旨在解决Vivado Simulator在大型FPGA验证中速度慢、调试弱的问题。通过指导工具版本配对、环境变量设置、关键参数配置及Xilinx仿真库编译,帮助工程师高效整合Vivado的设计管理、VCS的高速仿真与Verdi的深度调试能力,从而显著提升验证效率。

weixin_29219189的博客 576

Elasticsearch7.17 五 :ES读写原理、分片设计和性能优化

单个分片 7.0开始,新创建一个索引时,默认只有一个主分片。单个分片,查询算分,聚合不准的问题都可以得以避免 单个索引,单个分片时候,集群无法实现水平扩展。即使增加新的节点,无法实现水平扩展 两个分片 集群增加一个节点后,Elasticsearch 会自动进行分片的移动,也叫 Shard Rebalancing 如何设计分片数 当分片数>节点数时,一旦集群中有新的数据节点加入,分片就可以自动进行分配,分片在重新分配时,系统不会有downtime 多分片的好处: 一个索引如果分布在不同的节点,多个节点可以并

admin522043032的博客 4221

基于STM32、HAL库、I2C接口的姿态传感器/陀螺仪之ICM-42670-P驱动 C语言程序设计

/ 设置加速度计和陀螺仪的工作模式。// 读取加速度计和陀螺仪数据。

corlin6688的博客 1180

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法

Robot_PLC_HMI_Automation 2916

Elasticsearch的读写性能优化与负面清单

写入时指定DOC ID,意味着首先需要判断ID是否重复,如果在大数据量的场景下,可能会需要从磁盘进行一次读操作,从而占用大量的磁盘IO,导致写入速度慢。随着数据量的增加,索引和搜索所需的时间也会增加,上线初期可能无法感知,随着数据量的逐渐增大到一定程度,性能可能会急剧地下降。如果你的集群处于不稳定的状态,比如有大量的分片在做均衡迁移或者恢复,都会占用大量的资源,导致写入资源被占用。高并发的查询或者大数据的查询可能会占用大量的资源,此时需要衡量你的系统侧重点了,实在不行,扩容吧。

大数据,大模型,服务器,技术、架构,方案 1423

基于ESP32的智能健康监测系统开发

本文介绍了如何基于ESP32开发智能健康监测系统,从硬件选型、系统架构到软件实现的每一个环节。通过ESP32的Wi-Fi功能、传感器模块和云平台的结合,我们实现了实时健康数据监测、远程查看、报警等功能。系统的低功耗特性使得其适用于长期健康监测,能够为用户提供更便捷的健康管理方案。随着技术的不断发展,未来智能健康监测系统将进一步发展。例如,增加更多的传感器,提升数据分析能力,甚至通过人工智能算法来预测用户的健康趋势,为用户提供个性化的健康建议。

2201_76125393的博客 1104

Elasticsearch读写性能优化与负面清单

Elasticsearch读写性能优化与负面清单。

大数据,大模型,服务器,技术、架构,方案 801

基于YOLOv11的仓库机器人导航系统设计与实现:Amazon Robotics Challenge解决方案

本文将详细介绍一个基于YOLOv11目标检测算法的仓库机器人导航系统,该系统能够准确识别托盘(pallet)和箱子(box),为机器人提供精确的导航信息。而基于深度学习的视觉导航系统能够实时识别环境中的关键物体,如托盘和箱子,从而实现更智能的路径规划和货物搬运。YOLOv11作为YOLO系列的最新演进版本,在检测精度和速度上都有显著提升,非常适合仓储环境中的实时物体检测任务。YOLOv11在保持实时性的同时,提高了对小物体和密集物体的检测能力,这对仓储环境中的托盘和箱子检测尤为重要。

YOLO 303

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[转]基于Elasticsearch分布式搜索引擎的架构原理

[转]基于Elasticsearch分布式搜索引擎的架构原理 http://www.mobabel.net/%E8%BD%AC%E5%9F%BA%E4%BA%8Eelasticsearch%E5%88%86%E5%B8%83%E5%BC%8F%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E7%9A%84%E6%9E%B6%E6%9E%84%E5%8E%9F%E7%90...

yb223731的博客 1014

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Es搜索引擎相关知识点

es相关知识点

qq_44970261的博客 702

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ElasticSearch7.X和ElasticSearch8.X学习记录

当我们使用sql进行查询时,假如总共有3天数据,但是我们的查询语句只需要返回2条数据,则剩下的这条数据就会进入cursor中,在后续查询中,可以直接使用cursor进行查询,只可以取用一次,多次使用时,结果是返回空,游标是消耗性能的,可以使用close进行关闭。为防止数据节点宕机或者挂掉,影响服务的使用,可以在创建inde的时候指定副本数目,如果设置为1时,则相当于在集群中,会有两份相同数据存在,当原始数据丢失时,可以通过副本进行数据恢复或者响应。如何在不变性的前提下,实现倒排索引的更新?

weixin_44671233的博客 8949

Elasticsearch性能调优之磁盘读写性能优化

优化磁盘空间的占用,减少磁盘空间的占用,更多的数据可以进入filesystem cache 比如说你原来,磁盘空间占用一共是1T,内存只有512G,现在优化了磁盘空间占用之后,减少了数据量,可能数据量就只有512G了,那么就可以全部进入内存 1、禁用不需要的功能 聚合,搜索,评分,近似匹配 聚合:doc values 搜索:倒排索引,index 评分:norms 近似匹配:index_op...

lm324114的专栏 2456

ElasticSearch性能优化手段汇总

Elasticsearch各维度的优化手段汇总,包括集群,节点,索引,检索和写入等多个维度

点滴之积 1529

java 读写es_Elasticsearch基础与读写原理

ES应用场景:海量数据检索,数据分析ES分布式架构原理:es存储的基本单位是索引index,index就相当与mysql中的一张表,index中可以有一个或多个type,当存放多个type时尽量使每个type中的各部分字段是一样的,一般来说一个index中只存放一个type。mapping是type的结构定义,document是type中的具体的记录,field表示document中的具体的某一个...

weixin_34891592的博客 1158

Java Web分布式篇之Elasticsearch原理简介

ES分布式架构原理 架构图 (图文摘自石杉码农-免费视频课程) 原理 基本介绍 es中存储数据的基本单位是索引,比如说你现在要在es中存储一些订单数据,你就应该在es中创建一个索引,order_idx,所有的订单数据就都写到这个索引里面去,一个索引差不多就是相当于是mysql里的一张表。index -> type -> mapping -> document -> fie...

聚沙成塔 1284

ElasticSearch多线程写入实战(一)多线程同步异步写入ES,模拟hadoop文件拆分处理,join与CountDownLatch的区别,多线程读写小练习

数据预处理 1、网站爬取数据,写为csv 2、添加表头 sed -i ‘1i\时报错: sed: -i may not be used with stdin mac中应该写为:【mac自带的sed命令,是基于bsd的,所以与Linux-like下常用的gnu不一样】 sed -i "" '1i\ insert value here '

王某的博客 8159

【ElasticSearch从入门到放弃系列 九】Elasticsearch原理机制探索

基础内容回顾 写索引原理 存储原理 分段存储 延迟写策略 段合并 性能优化

MaoLin Tian's Blog 1106

ElasticSearch

首先什么是ES? Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。 为什么使用ES? elasticsearch不是什么全新的技术,它是将全文检索、数据分析以及分布式技术合并在了一起,其中全文检索指的是Apache lucene,数据分析指的是商用的数据分析软件,分布式技术主要指的就是分布式数

zphdgqs的博客 488
上一篇: ES为什么被称为实时性搜索
下一篇: 秒杀系统总结与思考(一) 架构原则
Kindle_code
博客等级 码龄12年 21粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值