当前位置: 首页 > news >正文

【磁盘】每天掌握一个Linux命令 - iostat

目录

  • 【磁盘】每天掌握一个Linux命令 - iostat
    • 工具概述
    • 安装方式
    • 核心功能
    • 基础用法
    • 进阶操作
    • 实战案例
      • 面试题场景
      • 生产场景
    • 注意事项

【磁盘】每天掌握一个Linux命令 - iostat

工具概述

iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使用情况的工具。它通过收集并分析磁盘设备的读写请求、传输速率、使用率等指标,帮助运维人员定位磁盘性能瓶颈,评估系统I/O负载,是排查磁盘I/O相关问题的重要利器。

安装方式

大多数主流Linux发行版(如CentOS、Ubuntu、Debian)默认已预装iostat。若未安装,可通过包管理器安装:

  • CentOS/RHELyum install sysstat
  • Ubuntu/Debianapt-get install sysstat

核心功能

功能模块具体作用
磁盘性能监控统计磁盘设备的读写次数、传输速率、响应时间等
CPU使用分析展示CPU在用户态、内核态、空闲等不同状态的时间占比
性能瓶颈定位通过分析磁盘和CPU指标,帮助定位I/O性能瓶颈
历史数据记录配合sysstat服务,可周期性采集数据并保存,用于性能趋势分析

基础用法

  1. 查看所有磁盘设备的I/O统计信息
iostat
  1. 指定时间间隔和次数输出统计信息
# 每隔2秒输出一次,共输出3次
iostat 2 3
  1. 仅显示磁盘设备统计信息
iostat -d
  1. 显示详细的磁盘设备统计信息
iostat -D
  1. 显示CPU使用率统计信息
iostat -c
  1. 以人类可读的格式显示统计信息
iostat -h

进阶操作

  1. 使用-x参数获取扩展统计信息
iostat -x 2

返回结果示例(部分字段解释):

  • rrqm/s:每秒进行merge的读操作数目
  • wrqm/s:每秒进行merge的写操作数目
  • r/s:每秒完成的读I/O设备次数
  • w/s:每秒完成的写I/O设备次数
  • rMB/s:每秒读数据量(MB)
  • wMB/s:每秒写数据量(MB)
  • avgrq-sz:平均每次设备I/O操作的数据大小(扇区)
  • await:平均每次设备I/O操作的等待时间(毫秒)
  • svctm:平均每次设备I/O操作的服务时间(毫秒)
  • %util:一秒中有百分之多少的时间用于I/O操作
  1. 使用-p参数指定显示特定磁盘分区信息
# 显示sda磁盘分区信息
iostat -p sda

实战案例

面试题场景

面试官提问:“系统出现磁盘I/O性能瓶颈,如何用iostat定位问题?”
回答:首先使用iostat -x查看磁盘设备的详细统计信息,重点关注%util接近100%且await值较大的磁盘,这表明该磁盘存在严重的I/O等待;同时结合r/sw/s判断是读密集型还是写密集型问题,进一步定位具体进程。

生产场景

在数据库服务器中,发现响应速度变慢。使用iostat -x 2持续监控磁盘,发现%util高达95%,await达到50ms,说明磁盘I/O负载过重。再通过iostat -p查看具体分区,确定是存放数据库文件的分区出现瓶颈,可通过增加磁盘阵列或优化数据库读写操作来解决问题。

注意事项

  1. iostat的数据采集依赖sysstat服务,需确保服务正常运行。
  2. 单次采样数据可能存在偏差,建议通过多次采样或设置较长的时间间隔获取准确数据。
  3. 不同Linux版本的iostat命令参数和输出格式可能略有差异,使用时需注意。
http://www.xdnf.cn/news/949789.html

相关文章:

  • WEB3全栈开发——面试专业技能点P7前端与链上集成
  • Django 5 学习笔记总纲
  • 13.9 LLaMA 3+多模态提示工程:革命性语言学习Agent架构全解析
  • react-pdf(pdfjs-dist)如何兼容老浏览器(chrome 49)
  • 大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
  • 篇章二 论坛系统——系统设计
  • C/C++ 面试复习笔记(5)
  • nuclio的配置文件yaml和docker compose的yaml的区别
  • 依赖注入(Dependency Injection)
  • 关于YOLOV5—Mosaic数据增强
  • 电源滤波器:不起眼却如何保障电子设备电源?
  • 1091 Acute Stroke (30)
  • 2025年全国I卷数学压轴题解答
  • 大模型链路调试平台之LangSmith实战指南
  • Web 架构之 API 安全防护:防刷、防爬、防泄漏
  • SpringBoot整合SSM
  • React中子传父组件通信操作指南
  • 使用VBA嵌套字典快速转换BOM表格
  • 鸢尾花分类(KNN)
  • 【AI News | 20250609】每日AI进展
  • 测试微信模版消息推送
  • 开源:FTP同步工具
  • 【粤语克隆】粤语声音,一秒克隆:如何用AI为岭南文化按下快进键
  • composer init
  • LeetCode - 647. 回文子串
  • 具身智能之人形机器人核心零部件介绍
  • 教程:PyCharm 中搭建多级隔离的 Poetry 环境(从 Anaconda 到项目专属.venv)
  • 重启Eureka集群中的节点,对已经注册的服务有什么影响
  • 深入理解JavaScript设计模式之单例模式
  • AirPosture | 通过 AirPods 矫正坐姿