Elasticsearch实战-磁盘IO被打满

2023-11-14

背景

事情是这样的。一天下午4点42分左右。业务反馈我开发的服务在测试环境出现问题,返回资源数据是0。查日志发现是ES访问超时。相当于数据库挂了。持续了20多分钟自己恢复。
咨询了ES团队,最终得到下面的答复:

当前集群现状:
1)当前集群数据IO最高的索引为XXX,数据量很小(100mb) 
2)但是读写都很大(读>1000QPS,写>1000QPS) ,使用的是线下环境的机器
3)索引分了10个片,4个副本问题
分析:
1)线下环境的机器之前了解到测试环境硬盘性能本来就很差,这个需要业务SRE一块来确定
2)查询的时候,会一次性查询10个片,这样可能会查10台机器的数据,很容易出现木桶效应,造成集群的性能下降
3)写入的时候,虽然是做了10个分片,看起来能加大写能力,但是机器数少,导致结果是每台机器分布了5个分片,等效于只做了2个分片,完全没有扩大写的能力
建议:
1)升级硬件,换成SSD
2)分片改成2个,这样读能力比以前肯定有提升,写能力等价
3)数据量很小,建议直接换成Redis
我自己做了调查。测试环境ES有十台VM(非本地ESB磁盘)作为服务器。其中一台IO被打满。其他机器负载、IO都很低。对于这个问题,ES团队给出的答复是:
ES的服务负载均衡、发现机制是自己写的,一般不会出现问题,
Client仅仅对官方的客户端做了简单的封装,
当然最好是可以对官方的客户端进行改造,
但是我们现在的人力明显不行,只能继续沿用老的客户端使用;
我们预计在10月份左右会出一个自研的客户端,
会尽量避免出现一台机器导致部分查询出现问题,
但是也避免不了,
ES内部的服务发现机制,我们改变不了,除非改ES

调查

1.需要换成本地磁盘,测试环境也是我们的正式环境。是否能直接替换成物理机?多少台合适?怎么可以平滑替换?

没有必要换成物理机。因为ES内存最多能用32G。内存多出来的是浪费用不上,有物理机也是隔成VM来用。

原来10台VM是足够的,只需要同等数量替换。

有机器替换功能。替换时原理是先申请机器部署。然后点击机器替换。会一台台的将分片赶到新机器上。一台下完自动下线老机器。

2.我们测试环境有10台服务器,10个分片,4个副本,写/读QPS大概是7:6。究竟几个分片几个索引更合理?

因为每个分片和副本是同步写。写比例大,副本多会对性能有很大影响。分片替换需要重建索引,很难平滑。所以只将副本数减少为一个分片1个。

3.程序方面有没有可以优化的?

在ES上层增加tair缓存。在进行数据更新操作时是单个数据读取。采用tair有更好的事务性,并减少了对ES的压力。ES只处理复杂查询请求。

转载于:https://www.cnblogs.com/xiexj/p/11627885.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch实战-磁盘IO被打满 的相关文章

  • 线性代数在数据挖掘中的应用

    1 背景介绍 线性代数是数学的一个分支 主要研究的是线性方程组和向量的相关概念和方法 在数据挖掘领域 线性代数的应用非常广泛 包括数据处理 特征提取 模型训练等方面 本文将从以下几个方面进行阐述 背景介绍 核心概念与联系 核心算法原理和具体
  • 6 - 数据备份与恢复|innobackupex

    数据备份与恢复 innobackupex 数据备份与恢复 数据备份相关概念 物理备份与恢复 逻辑备份 推荐 使用binlog日志文件实现对数据的时时备份 使用日志 恢复数据
  • 如何利用CHAT做简单的总结体会?

    问CHAT 在测试过程中使用appium python自动化的优点和体会 CHAT回复 使用 Appium 配合 Python 进行自动化测试主要有以下几点优点 1 跨平台性 Appium 支持 iOS 和 Android 平台的应用自动化
  • 软件测试/测试开发/全日制/测试管理丨Redis内存数据库

    Redis是一种开源 内存中的数据结构存储系统 它提供了高性能 灵活性和丰富的数据结构 以下是Redis内存数据库的基本介绍 键值存储 Redis基于键值对的存储模型 其中每个键都与一个特定的值相关联 这种简单的数据模型使其易于使用和理解
  • 图解python | 字符串及操作

    1 Python元组 Python的元组与列表类似 不同之处在于元组的元素不能修改 元组使用小括号 列表使用方括号 元组创建很简单 只需要在括号中添加元素 并使用逗号隔开即可 tup1 ByteDance ShowMeAI 1997 202
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 大数据毕业设计:python微博舆情分析系统+可视化+情感分析+爬虫+机器学习(源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 利用CHAT上传文件的操作

    问CHAT autox js ui 上传框 CHAT回复 上传文件的操作如果是在应用界面中的话 由于Android对于文件权限的限制 你可能不能直接模拟点击选择文件 一般来说有两种常见的解决方案 一种是使用intent来模拟发送一个文件路径
  • 深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

    Python MongoDB 排序 对结果进行排序 使用 sort 方法对结果进行升序或降序排序 sort 方法接受一个参数用于 字段名 一个参数用于 方向 升序是默认方向 示例 按名称按字母顺序对结果进行排序 import pymongo
  • 【计算机毕业设计】二手图书交易系统

    随着世界经济信息化 全球化的到来和互联网的飞速发展 推动了各行业的改革 若想达到安全 快捷的目的 就需要拥有信息化的组织和管理模式 建立一套合理 动态的 交互友好的 高效的二手图书交易系统 当前的信息管理存在工作效率低 工作繁杂等问题 基于
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query
  • Oracle EBS AP发票导入 API Rejection List 第二部分

    Oracle EBS AP发票导入 API Rejection List 第二部分 The report lists the reason the invoice could not be imported and prints a bri
  • 数据库 | 面试官:一次到底插入多少条数据合适啊?.....面试连环炮

    数据库 面试官 一次到底插入多少条数据合适啊 面试连环炮 数据库插入操作的基础知识 插入数据是数据库操作中的基础 但是 我们程序员将面临随之而来的问题 如何快速有效地插入数据 并保持数据库 性能 当你向数据库中插入数据时 这些数据直接存储到
  • Redis分布式锁--java实现

    文章目录 Redis分布式锁 方案 SETNX EXPIRE 基本原理 比较好的实现 会产生四个问题 几种解决原子性的方案
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • 使用企业订货软件的担忧与考虑|网上APP订货系统

    使用企业订货软件的担忧与考虑 网上APP订货系统 网上订货系统担心出现的问题 1 如果在订货系统中定错 多 货物了该怎么办 其实这也是很多人在网购或者是现实中经常会犯的一个错误 但是网上订货平台为大家提供了很多的解决方案 其中对于订单的修改
  • 【产品兼容认证】WhaleStudio 成功兼容TiDB数据库软件

    平凯星辰和白鲸开源宣布成功完成产品兼容认证 北京 2023年12月27日 平凯星辰 北京 科技有限公司 以下简称平凯星辰 旗下的 TiDB 产品与白鲸开源的 WhaleStudio 已成功完成产品兼容性认证 这一重要合作旨在为全球客户提供更
  • 每日变更的最佳实践

    在优维公司内部 我们采用发布单的方式进行每天的应用变更管理 这里给各位介绍优维的最佳实践 变更是需要多角色合作的 而且他是整体研发流程的一部分 在优维内部 我们坚持每日变更 打通开发环节到最终发布上线的全过程 在保证质量的前提下 尽可能提升
  • SAP ERP系统是什么?SAP好用吗?

    A公司是一家传统制造企业 公司曾先后使用过数个管理软件系统 但各部门使用的软件都是单独功能 导致企业日常管理中数据流与信息流相对独立 形成了 信息孤岛 随着公司近年业务规模的快速发展以及客户数量的迅速增加 企业原有的信息系统在销售预测及生产

随机推荐

  • UE5 C++插件开发指南目录

    这一篇原本的标题是 如何将插件上架到UE虚幻商城 但是Up主聆枫LingFeng已经分享了相关议题 而且非常详细 UE 虚幻商城上架指南 所以这一篇就改写目录了 其实由谁来讲并不重要 重要的是讲的内容是否是读者需要的 希望大家可以从中受益
  • SQL练习(less-5\8)延时注入

    本文为学习笔记 仅限学习交流 不得利用 从事危害国家或人民安全 荣誉和利益等活动 SQL注入 字符型 延时注入 延时型语句 sleep 参数 任意正整数 一般为秒 If a b c 它的意思就是如果条件A成立 则输出结果B 否则输出结果C
  • HTML 好看界面

    无聊逛外网的时候 突然看见一个用HTML写的界面 我觉得挺好看 对于我这个才接触这个的学生来说 挺厉害的 所以我也把他分享出来 你们可以去参考参考
  • 第50讲:Scrapy 部署不用愁,Scrapyd 的原理和使用

    上节课我们的分布式爬虫部署完成并可以成功运行了 但是有个环节非常烦琐 那就是代码部署 我们设想下面的几个场景 如果采用上传文件的方式部署代码 我们首先需要将代码压缩 然后采用 SFTP 或 FTP 的方式将文件上传到服务器 之后再连接服务器
  • linux磁盘分区以及配置文件设置

    硬盘分区有三种 主磁盘分区 83 扩展磁盘分区 5 逻辑分区 包括swap交换分区82 一个硬盘主分区至少有1个 最多4个 扩展分区可以没有 最多1个 且主分区 扩展分区总共不能超过4个 逻辑分区可以有若干个 交换分区必须存在但一般不用 补
  • hdu 6121 Build a tree

    Problem acm hdu edu cn showproblem php pid 6121 Meaning 一棵 n 个点的完全 k 叉树 结点标号从 0 到 n 1 求以每一棵子树的大小的异或和 Analysis 一层层地统计答案 找
  • LED 数码管共阴共阳的区别+静态/动态显示

    51单片机 数码管动态显示 1 共阴共阳定义 LED 共阴极指的是LED共同的接点是GND 接地 而共阳极指的是LED共同的接点是电源 LED亮灯的条件是两端有电势差 最后一段h dp小数点在高位 第一段a在低位 hgfedcba xxxx
  • 【算法学习笔记】19:拓扑排序

    1 简述 计算拓扑序列的一个方式是 用BFS来尝试访问所有的节点 但是有一个约束就是只有入度为 0 0 0的节点才能被加入到扩展队列里 每次从队列里取出一个节点 也就同时在图中将这个节点拆除 所以它的所有后继的节点都减少 1 1 1 如果已
  • STM32使用串口(空闲中断IDLE+DMA)接收ESP8266数据

    串口空闲中断 ESP8266收发数据 一 在使用ESP8266模块时遇到的一些问题 首先是对模块数据的收发 我们在发送AT指令时会收到模块发送的反馈数据 在我们没有使用实时操作系统的情况下 通过HAL库的串口收发函数是比较难以完成工作的 我
  • aaa计费请求_什么是AAA(身份验证,授权和计费)?

    aaa计费请求 AAA or Authentication Authorization and Accounting is a term used to describe 3 functions in IT Mainly AAA is us
  • 导航样式

    鼠标滑过 bottom 黄线从中间展开到两边
  • NLP: 0基础应用T5模型进行文本翻译代码实例~

    文章目录 前言 一 目标文本是什么 二 模型调用步骤 1 引入库 2 导入模型 本文使用 t5 base 3 使用分词器对目标文本进行分词 4 对刚刚生成的分词结果进行目标语言的生成工作 5 对生成的目标语言进行解码工作 就可得到目标语言的
  • 一文读懂Matter协议的前世今生和未来

    从事Zigbee行业的应该都知道今年Zigbee联盟已经改名为CSA联盟 并推出一个全新的 定位于解决IOT碎片化的统一协议 即Matter协议 Matter协议的由来 Matter协议的前身CHIP Connected Home Over
  • 从一个数组中随机取出若干个数

    随机取数 下面给出从一个数组随机取出若干数字组成新书组和从一个数组随机取出一个数字的方法 代码如下 从一个数组中随机取出若干个元素组成数组 param Array arr 原数组 param Number count 需要随机取得个数 co
  • 如何确保事务提交后才执行异步操作

    参考博客TransactionSynchronizationManager和TransactionSynchronizationAdapter 场景 业务流程背景 对于 法律法规 法规库 标签管理 列表中的某一条数据 操作完标注和解析按钮后
  • Angular离线API文档安装指南

    需要的材料 nginx 官方angularjs zip 完整包 步骤 1 先上www angular org 下载个完整的zip包 2 到nginx 网站下载 nginx 3 修改 nginx 1 6 2 conf nginx conf 文
  • 利用win10自带的工具测硬盘读写速度

    利用win10自带的硬盘测试工具测读写速度 一 win q 打开搜索框 输入 cmd 找到命令提示符 右击以管理员身份运行 二 在命令框里输入 winsat disk 是默认测试系统盘的速度 不出意外都是C盘 三 当我们要想测试其他盘的时候
  • MySQL学习笔记——MySQL数据类型(拉勾教育数据分析实战训练营学习笔记)

    MySQL学习笔记 MySQL数据类型 MySQL数据库中 每一条数据都有其数据类型 主要可以分为数值型 字符串型和日期时间型三大类 说明如下所示 数值类型 TINYINT 一个非常小的整数 占1字节 如果是有符号 范围是 128 127
  • MFC窗口销毁过程

    MFC窗口销毁过程 考虑单窗口情况 假设自己通过new创建了一个窗口对象pWnd 然后pWnd gt Create 则销毁窗口的调用次序 1 手工调用pWnd gt DestroyWindow 2 DestroyWin
  • Elasticsearch实战-磁盘IO被打满

    背景 事情是这样的 一天下午4点42分左右 业务反馈我开发的服务在测试环境出现问题 返回资源数据是0 查日志发现是ES访问超时 相当于数据库挂了 持续了20多分钟自己恢复 咨询了ES团队 最终得到下面的答复 当前集群现状 1 当前集群数据I