【工作必备知识】Linux磁盘I/O故障排查分析定位 iostat 介绍

【工作必备知识】Linux磁盘I/O故障排查分析定位 iostat 介绍

大家好,我是秋意零。

前言:今天,介绍Linux磁盘I/O故障排查时,必备命令iostat。该命令是监视系统I/O设备使用负载,它可以实时监视IO设备,从而帮助我们进行分析定位问题。

iostat 命令介绍

iostat 命令:监视系统I/O设备使用负载

语法:iostat [选项] [时间间隔 interval] [次数 count]

常用参数:

  • -c:显示CPU使用情况
  • -y:跳过不显示第一次报告的数据
  • -d:显示磁盘使用情况
  • -k:以KB为单位显示磁盘读写数据量
  • -m:以MB为单位显示磁盘读写数据量
  • -N:显示磁盘阵列(LVM)信息
  • -n:显示NFS使用情况
  • -p [磁盘]:显示指定磁盘或所有磁盘和分区的统计信息
  • -t:显示终端和CPU的信息
  • -x:显示详细信息,包括额外的设备和CPU统计
  • -V:显示版本信息

命令解析

1)iostat 默认输出

第一行:Linux 5.10.134-16.1.al8.x86_64 (blog) 06/10/2024 _x86_64_ (2 CPU)

参数解释
Linux 5.10.134-16.1.al8.x86_64 (blog)操作系统内核版本、主机名(blog)
06/10/2024统计日期(2024年6月10日)
x86_64系统是64位
(2 CPU)2个CPU核心

第二行,CPU的平均使用率(avg-cpu):avg-cpu: %user %nice %system %iowait %steal %idle

参数解释
%user用户态CPU时间占比,表示用户进程消耗的CPU时间百分比,< 60%
%nice以低优先级(nice)运行的用户进程占用的CPU时间百分比
%system内核态CPU时间占比,即操作系统内核自身消耗的CPU时间百分比,sy+us < 80%
%iowait(重要)I/O等待,表示CPU在空闲时因等待I/O操作完成所花费的时间百分比,< 30%
%steal在虚拟化环境中,被hypervisor强制其他VM占用的CPU时间百分比
%idleCPU空闲时间百分比

一般来说 %idle 持续游走在 20%以下,瓶颈出现在CPU的性能层面,%iowait 高而 %idle 在 70%以上,瓶颈出现在 I/O 设备层面

第三行,磁盘设备的I/O统计信息(Device):Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn

参数解释
Device设备名dm 是 disk mapper 的缩写 可以在 /dev/mapper下查对应谁。参数-N 可以将 dm 转换成相应的 LVM名
tps每秒传输次数(Transactions Per Second),表示每秒磁盘完成的I/O操作数量
kB_read/s每秒从磁盘读取的数据量(以KB为单位),参数-m可以以MB为单位
kB_wrtn/s每秒向磁盘写入的数据量(以KB为单位)
kB_read总共从磁盘读取的数据量(以KB为单位)
kB_wrtn总共向磁盘写入的数据量(以KB为单位)

2)iostat 详细参数输出:iostat -x -d -y 1 3

参数解释:

  • r/s: 每秒读取操作次数
  • w/s: 每秒写入操作次数
  • rkB/s: 每秒从设备读取的数据量
  • wkB/s: 每秒向设备写入的数据量
  • rrqm/s: 每秒读请求合并次数,即读操作中有多少请求被合并执行
  • wrqm/s: 每秒写请求合并次数,同理,此处也没有写请求合并,值为0.00
  • %rrqm: 读请求合并的百分比,既然没有读请求合并,所以是0.00%
  • %wrqm: 写请求合并的百分比
  • r_await: 平均每次读操作的等待时间,包括等待时间和实际服务时间
  • w_await: 平均每次写操作的等待时间
  • aqu-sz: 平均I/O队列长度,也就是平均有多少个I/O请求在等待处理
  • rareq-sz: 平均读请求大小
  • wareq-sz: 平均写请求大小
  • svctm: 平均服务时间,即I/O操作实际处理时间
  • %util: 设备利用率

%util 表示该设备有I/0非空闲的时间比率,不考虑I/0有多少。由于硬盘设备有并行处理多个I/0请求的能力,所以%util即使达到100%也不意味着设备饱和了。

r_await、w_await 多大算有问题?

一般情况下:

  • 对于机械硬盘(HDD),如果r_awaitw_await持续高于10-20毫秒,可能表明存在I/O延迟问题(机械硬盘 await=寻道延迟+旋转延迟+传输延迟rpm 10000为8.38ms)
  • 对于固态硬盘(SSD),由于其更快的读写速度,理想的r_awaitw_await应该更低,通常认为超过1-5毫秒可能需要关注

End

参考:

Linux I/O问题排查 哪个设备的问题 iostat命令详解_哔哩哔哩_bilibili

运维工程师系列-掌握iostat命令给你月薪加1000_哔哩哔哩_bilibili

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python数据分析II

目录 1.HS-排序返回前n行 2.HS-相关性 3.缺失值处理 4.时间 5.时间索引 6.分组聚合 7.离散分箱 8.Concat关联(索引关联) 9.Merge关联(字段关联) 10.join合并(左字段,右索引) 11.行列转置及透视表 12.数据可视化-面向过程 13.数据可视化-面向对象 14.快速生成柱状…

10秒钟docker 安装Acunetix

1、拉取镜像&#xff1a; 2、查看镜像&#xff1a; [rootdns-server ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/hiepnv/acunetix latest f8415551b8f4 2 months ago 1.98GB 3、运行镜像&#xff1a; …

msfconsole利用Windows server2008cve-2019-0708漏洞入侵

一、环境搭建 Windows系列cve-2019-0708漏洞存在于Windows系统的Remote Desktop Services&#xff08;远程桌面服务&#xff09;&#xff08;端口3389&#xff09;中&#xff0c;未经身份验证的攻击者可以通过发送特殊构造的数据包触发漏洞&#xff0c;可能导致远程无需用户验…

已解决Error || IndexError: index 3 is out of bounds for axis 0 with size 3

已解决Error || IndexError: index 3 is out of bounds for axis 0 with size 3 原创作者&#xff1a; 猫头虎 作者微信号&#xff1a; Libin9iOak 作者公众号&#xff1a; 猫头虎技术团队 更新日期&#xff1a; 2024年6月6日 博主猫头虎的技术世界 &#x1f31f; 欢迎来…

Android安全开发之 Provider 组件安全

Android系统中的Content Provider组件是一种用于在不同应用之间共享数据的机制。它提供了一种安全、可控的方式&#xff0c;允许应用访问其他应用的数据。然而&#xff0c;如果Provider组件的安全措施没有得到妥善实现&#xff0c;则可能会导致严重的安全漏洞&#xff0c;例如数…

电阻常见失效模式

电阻常见失效模式&#xff1a; 电阻器由于结构较为简单&#xff0c;工艺成熟&#xff0c;通常失效率相对较低。器失效主要表现为以下几种&#xff1a; 阻值漂移&#xff1a;老化后通常发生&#xff1b;&#xff08;通过老化试验进行筛选&#xff0c;规避该问题&#xff09; …

万能表单与AI的完美融合,打造个性化AI小程序

在人工智能技术日益成熟的今天&#xff0c;如何将AI智能与用户界面无缝结合&#xff0c;已成为软件开发领域的新挑战。MyCms 以其创新的“万能表单结合AI”功能&#xff0c;为开发者提供了一个全新的解决方案&#xff0c;让个性化AI小程序的开发变得前所未有的简单和高效。 一、…

OBS 录屏软件:录制圆形头像画中画,设置卡通人像(保姆级教程,有步骤图,建议收藏)

Mac分享吧 文章目录 一、OBS录屏软件 圆形头像画中画效果注意&#xff1a;圆形画中画仅需要在软件中设置一次&#xff0c;每次录制&#xff0c;使用带有圆形头像画中画的场景 录制视频即可。该场景不可删除&#xff01;&#xff01;&#xff01;若删除&#xff0c;则需要重新设…

奇安信停服,国内还有什么可用的高防么?

这里写自定义目录标题 背景DDOS怎么办&#xff1f;方案推荐总结 背景 继前段时间百度云加速通知免费服务&#xff0c;6月底奇安信也将停止服务&#xff0c;到时候国内将几乎不存在免费好用的高防CDN了&#xff1b;类似的事情还有阿里云和腾讯云的一年期免费SSl证书也都停止供应…

day31贪心算法part01| 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

**455.分发饼干 ** 视频讲解 | 力扣链接刚开始想到的&#xff0c;但是这样太暴力了&#xff0c;太笨了 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 胃口g 饼干尺寸sint result 0;sort(s.begin(), s.end());…

苍穹外卖笔记-08-套餐管理-增加,删除,修改,查询和起售停售套餐

套餐管理 1 任务2 新增套餐2.1 需求分析和设计接口设计setmeal和setmeal_dish表设计 2.2 代码开发2.2.1 根据分类id查询菜品DishControllerDishServiceDishServiceImplDishMapperDishMapper.xml 2.2.2 新增套餐接口SetmealControllerSetmealServiceSetmealServiceImplSetmealMa…

通过 Webhook 将消息推送至钉钉、飞书、企业微信

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 当我们在 VPS 与 NAS 上部署了大量的应用&#xff0c;如何优雅的接收推送消息就成了一个大问题&#xff0c;在“上古时代”最常用的莫过于 SMTP 直接发送邮件进行通知&#xff0c;但当推送的消息过多且频繁…

《编程小白变大神:DjangoBlog带你飞越代码海洋》

还在为你的博客加载速度慢而烦恼&#xff1f;DjangoBlog性能优化大揭秘&#xff0c;让你的网站速度飞跃提升&#xff01;本文将带你深入了解缓存策略、数据库优化、静态文件处理等关键技术&#xff0c;更有Gunicorn和Nginx的黄金搭档&#xff0c;让你的博客部署如虎添翼。无论你…

认识Spring中的BeanFactoryPostProcessor

先看下AI的介绍 在Spring 5.3.x中&#xff0c;BeanFactoryPostProcessor是一个重要的接口&#xff0c;用于在Spring IoC容器实例化任何bean之前&#xff0c;读取bean的定义&#xff08;配置元数据&#xff09;&#xff0c;并可能对其进行修改。以下是关于BeanFactoryPostProce…

Linux shell编程学习笔记58:cat /proc/mem 获取系统内存信息

0 前言 在开展系统安全检查的过程中&#xff0c;除了收集cpu信息&#xff0c;我们还需要收集内存信息。在Linux中&#xff0c;获取内存信息的命令很多&#xff0c;这里我们着重研究 cat /proc/mem命令。 1 cat /proc/mem命令 /proc/meminfo 文件提供了有关系统内存的使用情况…

每日复盘-20240607

今日关注&#xff1a; 这几天市场环境不好&#xff0c;一直空仓。 六日涨幅最大: ------1--------605258--------- 协和电子 五日涨幅最大: ------1--------605258--------- 协和电子 四日涨幅最大: ------1--------605258--------- 协和电子 三日涨幅最大: ------1--------0…

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题 2024/6/5 13:53 rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh --help rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lun…

24.6.9( 概率dp)

星期一&#xff1a; abc356 D atc传送门 思路&#xff1a;按位与操作&#xff0c;M的非零位对答案一定没有贡献&#xff0c;对M为1的位&#xff0c;考虑有多少k此位也为1 按位枚举&#xff0c;m此位为0跳…

require.context()函数介绍

业务需求&#xff1a; 前端Vue项目怎样读取src/assets目录下所有jpg文件 require.context()方法来读取src/assets目录下的所有.jpg文件 <template><div><img v-for"image in images" :src"image" :key"image" /></div> …