【ES实战】ES集群机器磁盘IO过高告警分析

ES集群机器磁盘IO过高告警分析

文章目录

  • ES集群机器磁盘IO过高告警分析
    • 现象
    • 分析思路与手段
      • 获取告警机器的磁盘高IO时的文件
      • 通过IO文件确认索引
      • 分析思路
    • 优化
      • 第一步:每个data实例用不同的磁盘
      • 第二步:业务调整数据写入的集中程度
      • 第三步:扩容

反爬标记
2024年5月31日
原文首发:https://blog.csdn.net/weixin_43820556/article/details/139358424

现象

集群的某台机器出现磁盘IO告警。磁盘IO使用率长时间处于60%以上。

分析思路与手段

获取告警机器的磁盘高IO时的文件

查看某个进程打开了哪些文件,命令:ls -l /proc/进程号/fd/

procfs是一种文件系统,通常会挂载在/proc上。ls /proc 可以看到很多以进程ID命名的文件夹,每个进程运行时的信息都记录在相应的文件夹下,而内核运行时信息直接记录在/proc下,大多是只读文件,如meminfo,cpuinfo,cmdline等,非数字命名的文件夹,是内核各子系统相关部分,如

  • drivers 驱动信息(只读)
  • fs 文件系统特别信息(只读)
  • ide IDE接口信息(只读)
  • irq IRQ信息(只读)
  • net 网络子系统信息(只读)
  • scsi SCSI系统信息(只读)
  • sysvipc IPC子系统信息(只读)
  • tty tty子系统信息(只读)
  • sys 系统内核可调参数 (可调)

通过访问这些文件和文件夹,我们可以实时查询到当前系统的运行信息,甚至是某一进程的运行时信息。

lrwx------ 1 es es 64 May 31 10:22 1605 -> /data02/es-csifras2/nodes/0/indices/UkSfmgG7QdW8EPPHvtYqSg/3/translog/translog-120.tloglrwx------ 1 es es 64 May 31 10:39 755 -> /data02/es-csifras2/nodes/0/indices/WMewOUANTBuA-73pcCp6Cw/16/translog/translog-220.tloglrwx------ 1 es es 64 May 31 10:39 748 -> /data02/es-csifras2/nodes/0/indices/Jrz75tNiTwORzqYTwqO4NQ/4/translog/translog-151.tloglrwx------ 1 es es 64 May 31 10:39 747 -> /data02/es-csifras2/nodes/0/indices/HySK9kG3T2C-lVZ6fVVh0A/3/translog/translog-17.tloglrwx------ 1 es es 64 May 31 10:39 1670 -> /data02/es-csifras2/nodes/0/indices/1YyrYIYHSKmziclNUsI9kw/9/translog/translog-142.tloglrwx------ 1 es es 64 May 31 10:39 1847 -> /data02/es-csifras2/nodes/0/indices/nkJsv_bTQVqtgQhyH5zw5g/5/translog/translog-49.tlogl-wx------ 1 es es 64 May 31 11:03 2145 -> /data02/es-csifras2/nodes/0/indices/nkJsv_bTQVqtgQhyH5zw5g/5/index/_rh9q.fdtlrwx------ 1 es es 64 May 31 11:33 1615 -> /data02/es-csifras2/nodes/0/indices/Rlk8B28tRDupMfAcU6XRdA/5/translog/translog-39.tlogl-wx------ 1 es es 64 May 31 12:44 1917 -> /data02/es-csifras2/nodes/0/indices/dfwY8zOsS9CAynyx3K5gkg/17/index/_krzz.fdxlrwx------ 1 es es 64 May 31 12:46 1127 -> /data02/es-csifras2/nodes/0/indices/VawhPPxBRH2aN_V7WRn6jQ/0/translog/translog-2537.tlog
l-wx------ 1 es es 64 May 31 10:39 677 -> /data02/es-csifras/nodes/0/indices/vifaaVG4QLWpcqh2iOjtXg/8/index/write.lockl-wx------ 1 es es 64 May 31 10:39 664 -> /data02/es-csifras/nodes/0/indices/dfwY8zOsS9CAynyx3K5gkg/1/index/write.locklrwx------ 1 es es 64 May 31 10:39 651 -> /data02/es-csifras/nodes/0/indices/mvDt36FTTveVVIZzo8u8iA/10/translog/translog-129.tlogl-wx------ 1 es es 64 May 31 10:39 635 -> /data02/es-csifras/nodes/0/indices/0kcg3d0hQVeazy9pxQpEYg/0/index/write.lockl-wx------ 1 es es 64 May 31 10:39 599 -> /data02/es-csifras/nodes/0/indices/j0f6ENhbT-26n5lgwuiXZg/10/index/write.locklrwx------ 1 es es 64 May 31 10:39 575 -> /data02/es-csifras/nodes/0/indices/InJZHhdiT2mRkHljuwewTw/13/translog/translog-128.tlogl-wx------ 1 es es 64 May 31 10:39 557 -> /data02/es-csifras/nodes/0/indices/Oc7SkzkSTHyTC9ge75PRaw/0/index/write.lockl-wx------ 1 es es 64 May 31 10:39 707 -> /data02/es-csifras/nodes/0/indices/KamjP2kPS-mOxyZF8MutNg/4/index/write.locklrwx------ 1 es es 64 May 31 10:39 1049 -> /data02/es-csifras/nodes/0/indices/kOT7Y0F6Qgm3DVctqUtWTQ/12/translog/translog-17.tloglrwx------ 1 es es 64 May 31 10:42 1567 -> /data02/es-csifras/nodes/0/indices/1YyrYIYHSKmziclNUsI9kw/4/translog/translog-142.tlogl-wx------ 1 es es 64 May 31 12:48 638 -> /data02/es-csifras/nodes/0/indices/UkSfmgG7QdW8EPPHvtYqSg/8/index/_klcg.fdx

通过IO文件确认索引

文件路径中存在着索引的编码,例如第一条/data02/es-csifras2/nodes/0/indices/UkSfmgG7QdW8EPPHvtYqSg/3/translog/translog-120.tlogUkSfmgG7QdW8EPPHvtYqSg,就是索引的唯一编码。

通过ES的APIGET _cat/indices?v&s=index,来得到集群的索引列表

health status index                           uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana                         S5jrM7mpTPaucEcOZoig2A   1   1          1            0      7.7kb          3.8kb
green  open   .monitoring-data-2              TmP7dYptQAqwniPcaDF27g   1   1         11       171731     11.4mb          5.7mb
green  open   .triggered_watches              jvBeA2uhRzq_DNvKN1PB5Q   1   1          0            0     50.3mb         25.1mb
green  open   .watches                        8N-2aka1Sx-NhYnEMv2sww   1   1          0            0       320b           160b
green  open   data_source-202405              UkSfmgG7QdW8EPPHvtYqSg  10   1  104486864            0    448.3gb          223gb

可以发现索引的uuid就在路径中。

分析思路

通过上面的众多索引,分析出索引都是正常读写,都是一些当月索引,判断是月末或月初,一些数据集中处理了,属于正常业务范畴。

再分析路径,发现有/data02/es-demo/data02/es-demo2, 判断集群是单机器双data实例部署。通过检查ES的elasticsearch.yaml文件中的data.path和查询集群节点情况GET _cat/nodes?v&s=ip,发现确实是单集群双data实例部署时共用了磁盘,这就导致了磁盘的IO过高的概率大大提升了。

GET _cat/nodes?v&s=ip结果:

ip            heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.1.1             67          97  21    8.99    9.31     9.54 di        -      bdes02-demo-prd
192.168.1.1             64          97  21    8.99    9.31     9.54 di        -      bdes02-demo-prd2
192.168.1.1             15          97  22    8.99    9.31     9.54 mi        -      bdes02-demo-prd-master
192.168.1.149           66          97  22   12.65   15.18    17.33 di        -      bdes64-prd1
192.168.1.149           68          97  21   11.14   14.93    17.26 di        -      bdes64-prd2
192.168.1.149           10          97  20   11.14   14.93    17.26 mi        -      bdes64-prd1-master
192.168.1.150           71          97  17    9.11    8.44     8.75 di        -      bdes65-prd2
192.168.1.150           65          97  17    9.11    8.44     8.75 di        -      bdes65-prd1
192.168.1.151           67          97   7    5.07    5.40     5.81 di        -      bdes66-prd2
192.168.1.151           68          97   7    5.07    5.40     5.81 di        -      bdes66-prd1
192.168.1.2             14          98  24    9.31    9.83     9.82 mi        *      bdes03-demo-prd-master
192.168.1.2             70          98  19    9.31    9.83     9.82 di        -      bdes03-demo-prd
192.168.1.2             65          98  23    9.31    9.83     9.82 di        -      bdes03-demo-prd2
192.168.1.3             67          98  17    7.61    8.71     8.81 di        -      bdes04-demo-prd2
192.168.1.3             69          98  16    7.61    8.71     8.81 di        -      bdes04-demo-prd

优化

第一步:每个data实例用不同的磁盘

方式一:扩容式重启节点,先扩容对应机器,迁移数据,修改源data实例配置,滚动重启各个data实例,回迁数据。卸载扩容机器。操作周期短,影响时间短。但是需要借用额外的机器。

方式二:滚动式重启节点,集群类原机器,可以在减少一台机器的情况下,容纳索引数据,进行单机器排除数据后,修改配置,重启节点。操作周期长,影响时间短长。

第二步:业务调整数据写入的集中程度

需要梳理具体业务,分散数据写入的集中程度。若难度较大,且资源允许的情况下,可以先做第三步。

第三步:扩容

在达成第一步后,若还经常发生IO告警,就需要进行扩容了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

摄影后期照片编辑工具:LrC2024 for Mac/win 中文激活版

LrC2024(Lightroom Classic 2024)是 Adobe 公司推出的一款专业级别的照片编辑和管理软件。它是 Lightroom Classic CC 的升级版,具有更多的功能和改进。 这款软件主要用于数字摄影师和摄影爱好者处理、编辑和管理他们的照片。它提供了一套强大…

android 调试UI 按钮无法点击事件问题

软件平台:Android11 硬件平台:QCS6125 问题:UI控件无法点击 首先,打开了Android自带的pointer_location报点轨迹,用电磁笔点击按钮,发现有点位,但是控件未见响应,基本排除硬件、驱动…

[英语单词] production quality

Our goal is to implement a production quality switch platform that supports standard management interfaces and opens the forwarding functions to programmatic extension and control. 说在openswitch的文档里有说这两词,含义是产品质量。是production修…

CAPL汽车编程语言实例

CAPL汽车编程语言实例 在汽车行业中,CAPL(Communication Access Programming Language)是一种广泛使用的编程语言,主要用于CAN(Controller Area Network)网络的开发和测试。CAPL语言以其强大的功能和灵活性…

【网络安全的神秘世界】在win11搭建pikachu靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载pikachu压缩包 https://github.com/zhuifengshaonianhanlu/pikachu 下载好的pikachu放在phpstudy_pro/www目录下 创建pikachu数据库 打开phpstudy软件…

【docker】docker启动bitnami/mysql

说明:-v 宿主机目录:docker容器目录,-p 同理 注意:/opt/bitnami/mysql/conf/bitnami 目录自定义conf的目录,不能使用原有的/opt/bitnami/mysql/conf 目录。 容器启动后可在宿主机的/宿主/mysql8.0/conf,添加my_custom.…

独立开发的轻量级简洁开源论坛BBS PHP源码

最新的轻量级开源论坛php源码发布啦!这是一款独立开发的论坛系统,可以帮助你快速地开发出你想要的网站。 如果你是PHP初学者,这款论坛系统非常适合你入门学习。不过,需要注意的是,由于它并没有进行商业化改造&#xf…

docker一键部署EFK系统(elasticsearch filebeat kibana metricbeat es-head)

EFK日志系统搭建 EFK日志系统介绍功能需求搭建elasticsearch集群规划前提部署核对证书及权限 EFK日志系统介绍 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于…

【ARM-Linux篇】u-boot编译

一、u-boot简介 uboot是一种通用的引导加载程序,它可以用于多种嵌入式系统,支持多种操作系统,如Linux, Android,NetBSD等。uboot的主要作用是将操作系统内核从存储设备(如Flash, SD卡等)加载到内存中,并执…

点云从入门到精通技术详解100篇-基于超体素类型的三维点云区域生长分割(续)

目录 2.6.4 凹凸性约束 3基于超体素类型的三维点云区域生长分割算法 3.1 算法描述

一个令人惊艳的开源技术盛宴,来了!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 在 GitHub 上,每天都会诞生各种实用的开源项目,这些项目在不同行业与领域得到充分应用,推动技术发展,让普通人也能够真切感受到科技魅力。 而…

使用 EBS 和构建数据库服务器并使用应用程序与数据库交互

实验 4:使用 EBS 实验概览 本实验着重介绍 Amazon Elastic Block Store (Amazon EBS),这是一种适用于 Amazon EC2 实例的重要底层存储机制。在本实验中,您将学习如何创建 Amazon EBS 卷、将其附加到实例、向卷应用文件系统,然后进…

基于vue3 elment+ 的文件及表单参数上传,响应接受

这里有几个关键是 第一个是 上传用Content-Type: multipart/form-data方式向后台请求数据 application/json不行。这里需要单独设置一下覆盖一下通用的请求api方法 //一般通用application/json 请求api方式的写法 export const getbuttonlist () > { return request.get(…

ES 生命周期管理

一 .概念 ILM定义了四个生命周期阶段:Hot:正在积极地更新和查询索引。Warm:不再更新索引,但仍在查询。cold:不再更新索引,很少查询。信息仍然需要可搜索,但是如果这些查询速度较慢也可以。Dele…

TOPIAM数字身份管控平台前端技术实践

一、引言 随着企业信息化程度的不断加深,内部办公系统、业务系统及三方SaaS系统的集成与整合成为企业面临的重要挑战之一。特别是如何有效管理员工账号、权限、身份认证以及应用访问,成为保障企业信息安全、提升用户体验的关键。TOPIAM数字身份管控平台…

VSCode Prettier - Code formatter 代码格式化

格式化代码是一个挑战,但现代开发工具可以自动保持团队代码库的一致性。 在本文中,您将设置 Prettier 以自动格式化 Visual Studio Code(也称为 VS Code)中的代码。 1. 安装插件 2. 定义代码风格 在项目根目录下创建一个pretti…

JAVA:异步任务处理类CompletableFuture让性能提升一倍

一、前言 CompletableFuture 是 Java 8 引入的一个功能强大的类,用于异步编程。它表示一个可能尚未完成的计算的结果,你可以对其添加回调函数来在计算完成时执行某些操作。在 Spring Boot 应用中,CompletableFuture 可以用于提高应用的响应性…

【NPS】微软NPS配置802.1x,验证域账号,动态分配VLAN(有线网络篇)

上两篇中介绍了如何配置NPS和在WLC上如何配置802.1X来实现验证域账号和动态分配VLAN,802.1x协议作为一种成熟的身份验证框架,不仅适用于无线网络,同样也适用于有线网络环境。这里我们将介绍如何在有线网络中部署802.1x认证,以验证…

Android Coil的简单介绍及使用

前言: 本文是借鉴网上大佬的Coil相关技术文章及结合自己项目中的实际使用情况,对Coil作一个简单介绍。 简介: Coil是一个Android的图片加载框架库,是通过Kotlin协程的方式加载图片的,相对于Glide、Picasso、Fresco等…

SpringBoot启动时使用外置yml文件

第一步&#xff1a;打包时排除yml文件 <build><resources><resource><!-- 排除的文件的路径 --><directory>src/main/resources</directory><excludes><!-- 排除的文件的名称 --><exclude>application-dev.yml</e…