ES集群节点掉线故障排查

2023-11-19

理解%IOWAIT

# man mpstat

Linux:
%iowait
Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.

HP-UX:
%wio
idle with some process waiting for I/O (only block I/O, raw I/O, or VM pageins/swapins indicated).


# man top
us, user    : time running un-niced user processes
sy, system  : time running kernel processes
ni, nice    : time running niced user processes
id, idle    : time spent in the kernel idle handler
wa, IO-wait : time waiting for I/O completion
hi : time spent servicing hardware interrupts
si : time spent servicing software interrupts
st : time stolen from this vm by the hypervisor

%IOWAIT的正确认识

  • 表示在系统有未完成的磁盘I/O请求期间,一个或多个CPU空闲的时间百分比。
  • 空闲,有一些进程在等待I/O(仅块I/O,原始I/O,或指示的VM pageins/swapins。
  • 对%IOWAIT的误解有两个:一是误以为%IOWAIT表示CPU不能工作的时间;二是误以为%IOWAIT表示有I/O瓶颈。
  • 第一种误解太低级了,%iowait 的首要条件就是CPU空闲,既然空闲当然就可以接受运行任务,只是因为没有可运行的进程,CPU才进入空闲状态的。那为什么没有可运行的进程呢?因为进程都处于休眠状态、在等待某个特定事件:比如等待定时器、或者来自网络的数据、或者键盘输入、或者等待I/O操作完成,等等。
  • 第二种误解更常见,为什么人们会认为 %iowait 偏高是有I/O瓶颈的迹象呢?他们的理由是:“%iowait  的第一个条件是CPU空闲,意即所有的进程都在休眠,第二个条件是仍有未完成的I/O请求,意味着进程休眠的原因是等待I/O,而%iowait升高则表明因等待I/O而休眠的进程数量更多了、或者进程因等待I/O而休眠的时间更长了。” 听上去似乎很有道理,但是不对:
  • 首先%iowait升高并不能证明等待I/O的进程数量增多了,也不能证明等待I/O的总时间增加了。为什么呢?看看下面两张图就明白了。第一张图演示的是,在I/O完全一样的情况下,CPU忙闲状态的变化就能够影响 %iowait 的大小。下图我们看到,在CPU繁忙期间发生的I/O,无论有多少,%iowait 的值都是不受影响的(因为%iowait的第一个前提条件就是CPU必须空闲);当CPU繁忙程度下降时,有一部分I/O落入了CPU空闲的时间段内,这就导致了 %iowait 升高。可见,I/O并没有变化,%iowait 却升高了,原因仅仅是CPU的空闲时间增加了。请记住,系统中有成百上千的进程数,任何一个进程都可以引起CPU和I/O的变化,因为 %iowait、%idle、%user、%system等这些指标都是全局性的,并不是特指某个进程。

     

  • 再往下看第二张图,它描述了另一种情形:假设CPU的繁忙状况保持不变的条件下,即使 %iowait 升高也不能说明I/O负载加重了。
    如果2个I/O请求依次提交、使得整个时段内始终有I/O在进行,那么 %iowait 是100%;
    如果3个I/O请求同时提交,因为系统有能力同时处理多个I/O,所以3个并发的I/O从开始到结束的时间与一个I/O一样,%iowait 的结果只有50%。
    2个I/O使 %iowait 达到了100%,3个I/O的 %iowait 却只有50%,显然 %iowait 的高低与I/O的多少没有必然关系,而是与I/O的并发度相关。所以,仅凭 %iowait 的上升不能得出I/O负载增加 的结论。

     

  • 这就是为什么说 %iowait 所含的信息量非常少的原因,它是一个非常模糊的指标,如果看到 %iowait 升高,还需检查I/O量有没有明显增加,avserv/avwait/avque等指标有没有明显增大,应用有没有感觉变慢,如果都没有,就没什么好担心的。

ES节点掉线原因分析

  • 高I/O、高CPU甚至CPU被打满,引发节点间通信无法被服务器响应

参考资料:

http://linuxperf.com/?p=33

https://www.cnblogs.com/549294286/p/6561900.html

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

ES集群节点掉线故障排查 的相关文章

  • C、C++、C#、python、java编程—数据类型的使用(二)

    四 Python 4 1字符串 1 字符串使用 var1 Hello World var2 Python Runoob print var1 0 var1 0 print var2 1 5 var2 1 5 以上实例执行结果 var1 0
  • 文本同文件一并提交的后端接口处理(一个实体类)

    出现的问题 org springframework web HttpMediaTypeNotSupportedException Content type multipart form data boundary WebKitFormBou
  • jupyter基本使用方法

    jupyter基本使用方法 菜单栏 File Edit View Insert Cell Kernel Help 工具条 单元 快捷键 菜单栏 File Edit View Insert Cell Kernel Help 工具条 单元 在M
  • 图书管理系统数据字典_2. 结构化——数据字典

    返回目录 Chilan Yuk 软件工程分析设计图库目录 zhuanlan zhihu com 一 基本知识 用于定义数据流和数据存储的结构 并给出构成所给的数据流和数据存储的各数据项的基本数据类型 数据字典中应该包括关于数据的如下信息 一
  • BUCK电路分析(二)

    BUCK电路分析 二 PSIM仿真同步BUCK电路 在上片文章中 初步的分析了BUCK电路的工作原理 本章使用PSIM软件仿真BUCK电路 观察分析BUCK电路器件关键波形 图1是同步BUCK电路图 开关频率设置为200K 固定占空比 在仿
  • Game101现代计算机图形学作业1

    Game101现代计算机图形学作业1 一 作业描述 二 解决方法 一 模型变换 二 投影变换 绕任意轴旋转 三 总结 四 参考和引用 一 作业描述 给定三维下三个点 v 0 2 0 0
  • esp32固件下载时有关串口通信的问题

    最近我做了个简易的esp32开发板 用arduino写了点程序 却怎么也传不上去 用arduino上传的时候总是显示 A fatal error occurred Failed to connect to ESP32 No serial d
  • 启用Powershell脚本(因为在此系统上禁止运行脚本)

    以管理员身份运行一个Powershell窗口 get executionpolicy Restricted set executionpolicy remotesigned Y get executionpolicy RemoteSigne
  • c++基于gSoap开发编译异常

    在程序中存在多个gSoap客户端代理类的话 比如我项目中用到的两个NMMAILGgzwSerSoapProxy h和ZJFaxMangerHttpBindingProxy h 其中第一个NMMAILGgzwSerSoapProxy h类是后
  • 解决 pip install requirements.txt 失败问题

    将命令改为 pip install r requirements txt
  • vscode中jupyter控制是否完整输出,是否折叠。

    打开一个笔记本 右上角设置 自定义笔记本布局 设置output scrolling 设置后 重启vscode生效
  • jwt的token自动续约_JWT的TOKEN续期功能

    JWT里有一个关键的东东 就是续期TOKEN 即TOKEN快过期时 刷新一个新的TOKEN给客户端 办法如下 1 后端生成TOKEN import com starmark core shiro model SecurityUser imp
  • 抖音视频怎么制作

    1 抖音拍摄制作 抖音短视频作为一款视频拍摄 分享软件 自身也带有一些功能可以实现抖音视频制作 做出的抖音视频也很好玩 步骤 1 首先安装好抖音并打开软件 点击软件正下方的 2 可以点击 视频 自动拍摄一段视频 或者点击 上传 将已经拍摄好
  • 如何在命令行中显示五彩斑斓的“黑”

    1 前言 大部分 coder 已经习惯了命令行枯燥的黑底白字 而且任何编程语言入门的第一行代码都是教我们如何在标准输出 大部分情况就是命令行终端或控制台 打印一行 非黑即白 的 hello world 以至于很多不懂编程的 大佬 都觉得程序
  • 2012_11月总结分享

    11月份下旬 我在技术上主要看了看spring的IoC容器实现相关的内容 但是这次来不及写了 这是一个很长的故事 就分享了一下11月份遇到的值得记录的东西吧 中间也穿插2篇文章分享 无缝对接 总结如下 1 代码规范问题 2 Tair批量读取
  • shell调用函数

    echo ACCEPT DATE F RETURN DATE ACCEPT DATE gt gt FILENAME
  • 【Android】 Version Catalog统一版本管理之Groovy篇

    Gradle7 0 0以上依赖库统一版本号管理 Gradle7 0推出了一个新的特性 使用Catalog统一依赖版本 它支持以下特性 1 对所有module可见 可统一管理所有module的依赖 2 支持声明依赖bundles 即总是一起使
  • 【OpenCV】车辆识别 C++ OpenCV 原理介绍 + 案例实现

    目录 前言 一 图像处理 二值化处理 膨胀 腐蚀 开运算 闭运算 二 案例实现 Step1 灰度处理 Step2 对视频进行帧差处理 Step3 二值化处理 Step4 腐蚀处理 Step5 膨胀处理 Step6 标记 框选目标 完整代码
  • Project file already exist. ImageManageSys.vcxproj already exists.Select ‘OK‘ to regenerate the file

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 二 错误原因 三 解决办法 前言 我已经安装了Qt visual studio tools插件 当我用visual studio 2019 导入Qt工程中的ImageManageSys p
  • 密码复习——AES

    AES 分组加密 明文的固定长度128位 密钥长度可以是128 192 256位 按明文与密钥长度都是128位来解释AES的加密过程 在AES中 明文是以字节的形式排列 一个字节8bit位 排列如下 AES的整体加密流程 其中最后一轮第十轮

随机推荐

  • centos网络配置

    centos安装后无法上网 方法 修改网络配置 打开一个配置文件 vi etc sysconfig network scripts ifcfg ens33 配置文件的内容 TYPE Ethernet PROXY METHOD none BR
  • RHCSA试题+答案

    把root密码设置为要求的 grub启动菜单选e编辑 找见默认kernel linux16 在行末添加rd break b引导 虚拟机需要删到ro ro保留 虚拟机中小键盘不能用的可能性比较大 特别是用passwd指定root密码的时候不易
  • c语言t0中断方式编程,PIC C语言编程_PICC中断函数的实现

    PICC可以实现C语言的中断服务程序 中断服务程序有一个特殊的定义方法 voidinterruptISR void 其中的函数名 ISR 可以改成任意合法的字母或数字组合 但其入口参数和返回参数类型必须是 void 型 亦即没有入口参数和返
  • 实现HTTPS系列第一弹之【http,https,www,web等概念简介】

    博文说明 前言 本文将通过个人口吻介绍http https www web等相关知识 在目前时间点 2017年5月7号 下 所掌握的技术水平有限 可能会存在不少知识理解不够深入或全面 望大家指出问题共同交流 在后续工作及学习中如发现本文内容
  • SpringBoot原理详解

    SpringBoot是什么 Spring Boot是由Pivotal团队提供的全新框架 其设计目的是用来简化新Spring应用的初始搭建以及开发过程 该框架使用了特定的方式来进行配置 从而使开发人员不再需要定义样板化的配置 用我的话来理解
  • 数据标准化/归一化normalization

    数据标准化 归一化normalization 皮皮blog CSDN博客 http blog csdn net pipisorry article details 52247379 http blog csdn net pipisorry
  • uniapp中git忽略node_modules,unpackage文件

    首先在当前项目的命令行新建 gitignore文件 touch gitignore 再在编辑器中打开该文件 并在该文件中加入需要忽略的文件名 node modules project unpackage DS Store 提示 如果以前提交
  • 统计字符串中汉字的个数

    统计给定文本文件中汉字的个数 input 输入文件首先包含一个整数n 表示测试实例的个数 然后是n段文本 Output 对于每一段文本 输出其中的汉字的个数 每个测试实例的输出占一行 Hint 从汉字机内码的特点考虑 汉字机内码可以理解为a
  • JAVA笔记

    目录 目录 auth getAccessToken获取接口调用凭证 官方文档 官方描述 实际运用 wxacode get生成小程序二维码 官方文档 官方描述 请求地址 实际运用 urlscheme generate生成小程序scheme 用
  • Unity 资源加载卸载过程

    什么时候才是UnusedAssets 看一个例子 Object obj Resources Load MyPrefab GameObject instance Instantiate obj as GameObject Destroy in
  • 力扣300题

    现在开始刷力扣题 这里记录不会的题 https leetcode cn 665 非递减数列 第三遍没写出来 总结思想 利用贪心算法 当i gt i 1时 要不缩小i的值到i 1 要不放大i 1的值到i 并且保证尽量不放大i 1的值 总结 这
  • 【web安全】——floor报错注入

    作者名 Demo不是emo 主页面链接 主页传送门 创作初心 一切为了她 座右铭 不要让时代的悲哀成为你的悲哀 专研方向 web安全 后渗透技术 每日emo 树是生活 埋的是我 看花就好 别看我的落魄 今天给大家讲解的是SQL注入中的flo
  • 记录WSL2配置

    Windows10上安装了WSL2 并通过手动安装了Ubuntu18 04版本 运用Cmder作为终端 quake风格 外观和使用方面都很舒适 shell使用了ohmyzsh 较于默认的shell 功能更加强大且观感更好 编写代码时 利用V
  • 判断一个大于2的正整数n是否为素数的方法有多种,给出两种算法,说明其中一种算法更好的理由

    判断一个大于2的正整数n是否为素数的方法有多种 给出两种算法 说明其中一种算法更好的理由 问题解答 include
  • Qt 帮助项目

    Qt帮助项目收集生成压缩帮助文件所需的所有数据 除了诸如目录 索引关键字和帮助文档之类的实际帮助数据外 它还包含一些其他信息 例如用于标识帮助文件的名称空间 一个帮助项目代表一个文档集 Qt帮助项目文件格式 文件格式是基于XML的 为了更好
  • using UnityEditor引用注意事项

    本文转载自http blog csdn net czlilove article details 19979725 在运行时脚本中使用UnityEditor命名空间 假如该脚本被挂在场景中的物体上 那么 可以这样做 在Unity编辑器中运行
  • 汇编语言(王爽第三版)实验十五

    实验十五 题目与个人思路 安装一个新的int 9中断例程 功能 在DOS下 按下 A 键后 除非不再松开 如果松开 就显示满屏幕的 A 其他的键照常处理 我刚刚开始以为还要判断按下 A 键的扫描码 后来发现不用 只要判断松开 A 键的扫描码
  • 程序员必须掌握哪些算法?

    一个程序员一生中可能会邂逅各种各样的算法 但总有那么几种 是作为一个程序员一定会遇见且大概率需要掌握的算法 今天就来聊聊这些十分重要的 必抓 算法吧 文章目录 一 程序员必须掌握哪些算法 二 常见算法介绍 三 程序员要看哪些算法书籍 四 算
  • 解决Invalid handler for event “click“:问题

    解决Invalid handler for event click 问题 上一篇文章介绍了如何搭建一个基于vue和ElementUi 的项目 当我在项目中添加 一个button按钮 并未这个按钮添加一个 click事件
  • ES集群节点掉线故障排查

    理解 IOWAIT man mpstat Linux iowait Percentage of time that the CPU or CPUs were idle during which the system had an outst