Linux磁盘IO查看方法速查

使用iostat命令实时监控磁盘I/O性能,或通过iotop查看进程级读写详情,vmstat提供系统级I/O统计,而sar -d可生成历史报告,dstat工具提供彩色动态视图,/proc/diskstats文件记录原始数据。

在Linux系统中,监控磁盘I/O(输入/输出)性能是诊断系统瓶颈、优化存储效率的关键操作,以下详细介绍多种专业方法,结合命令行工具和系统文件,帮助您全面掌握磁盘I/O状态。

Linux磁盘IO查看方法速查


核心命令行工具

iostat(最常用)

  • 功能:实时监控磁盘读写速率、IOPS、等待时间等。
  • 安装:包含在sysstat包中(Ubuntu/Debian: sudo apt install sysstat;CentOS/RHEL: sudo yum install sysstat)。
  • 基础用法
    iostat -dx 2 5  # 每2秒刷新1次,共显示5次,-d显示磁盘报告,-x显示扩展统计
  • 输出关键指标
    • r/sw/s:每秒读写请求数(IOPS)。
    • rkB/swkB/s:每秒读写数据量(KB)。
    • await:I/O平均等待时间(ms)。
    • %util:磁盘利用率(≥80%表示可能过载)。

iotop(类似任务管理器)

  • 功能:按进程实时排序显示I/O使用情况。
  • 安装sudo apt install iotop(Debian系)或 sudo yum install iotop(RHEL系)。
  • 用法
    sudo iotop -oP  # -o仅显示活跃I/O进程,-P关闭线程显示
  • 输出列
    • DISK READDISK WRITE:进程读写速率。
    • SWAPINIO>:I/O等待时间占比。

vmstat(系统资源概览)

  • 功能:综合报告CPU、内存、磁盘I/O状态。
  • 用法
    vmstat 1 5  # 每1秒刷新,共5次
  • 磁盘相关列
    • bi(Block In):每秒读取块数。
    • bo(Block Out):每秒写入块数。

dstat(多功能监控)

  • 功能:整合vmstatiostatnetstat数据。
  • 安装sudo apt install dstatsudo yum install dstat
  • 用法
    dstat -tdD sda  # -t加时间戳,-D指定磁盘(如sda)
  • 优势:实时显示磁盘读写速率(read/writ列)及CPU、网络数据。

系统文件直接解析

/proc/diskstats(原始数据源)

  • 路径cat /proc/diskstats
  • 字段解释(以sda为例):
    8    0 sda   IOPS读 合并读 扇区读 读耗时  IOPS写 合并写 扇区写 写耗时  I/O队列长度 总耗时
  • 计算实时读写速率
    cat /proc/diskstats | grep sda | awk '{print "读速率(KB/s): "$6*512/1024, "写速率(KB/s): "$10*512/1024}'

/sys/block/sda/stat(可读性更高)

  • 路径cat /sys/block/sda/stat
  • 字段顺序:与/proc/diskstats一致,但以空格分隔。

高级工具与技巧

sar(历史数据分析)

  • 功能:查看历史磁盘I/O记录(需先启动sadc服务)。
  • 用法
    sar -d -p 1 3  # 每1秒采样,共3次

结合watch动态刷新

  • 示例:实时监控sdb的I/O:
    watch -n 1 'iostat -dx sdb | tail -n +4'

图形化工具(可选)

  • 推荐工具nmon(终端图形)、gnome-disk-utility(GUI)。
  • 安装sudo apt install nmon 或使用系统自带磁盘管理器。

实际场景示例

诊断高I/O进程

sudo iotop -oP | head -10  # 显示前10个I/O最高的进程

检查磁盘瓶颈

iostat -dx 1 | grep -A 1 "%util"  # 持续观察%util和await
  • :若%util持续>80%且await显著增加,表明磁盘过载。

总结建议

  • 快速检查:使用iostat -dx 1iotop
  • 历史分析:用sar配合sysstat日志。
  • 进程级排查iotop定位具体进程。
  • 底层数据:直接解析/proc/diskstats

引用说明

Linux磁盘IO查看方法速查

通过以上工具组合,您可精准识别磁盘I/O瓶颈,确保系统高效运行,建议定期监控关键指标,尤其在部署高负载应用前进行基线测试。

Linux磁盘IO查看方法速查

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/29166.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月18日 05:40
下一篇 2025年6月18日 05:47

相关推荐

  • 双Linux系统安装教程?

    安装双Linux系统需先规划磁盘分区,预留未分配空间,安装第一个系统时手动分区(如根目录/和交换空间),安装第二个系统时选择剩余空间创建新分区,最后用GRUB引导管理器选择启动的系统即可。

    2025年6月12日
    000
  • Linux怎么执行SQL

    在Linux中执行SQL语句主要通过命令行工具实现: ,1. **MySQL/MariaDB**:使用mysql -u 用户名 -p -e “SQL语句” ,2. **PostgreSQL**:通过psql -U 用户名 -c “SQL语句” ,3. **SQLite**:直接运行sqlite3 数据库文件 “SQL语句” ,也可将SQL写入文件,用˂ 文件重定向执行,或进入交互命令行操作。

    2025年6月14日
    000
  • Linux如何快速执行程序

    在Linux中可通过终端执行程序(使用./程序名命令,需权限时加sudo)或图形界面双击运行,可执行文件通常不带扩展名。

    2025年6月3日
    500
  • 电视Linux系统如何安装软件

    在电视Linux系统(如智能电视或机顶盒)上安装软件,主要有以下方法:,1. **使用内置应用商店:** 最推荐的方式,直接搜索安装经过适配的软件。,2. **通过命令行安装:** 若有终端访问权限,可使用apt、dnf、pacman等包管理器安装软件(需适配源)。,3. **安装本地软件包:** 下载适配的.deb、.rpm或AppImage文件进行安装。,4. **编译安装(复杂):** 获取源代码并手动编译安装,但兼容性风险较高。,**注意:** 系统权限限制、文件系统只读、驱动兼容性及硬件性能是常见障碍,操作需谨慎。

    2025年6月6日
    100
  • Linux如何快速批量修改文件名操作

    Linux批量修改文件名可使用rename命令进行正则替换,或用mmv命令匹配模式更名,基础场景也可写for循环搭配mv命令逐文件处理,按需选择工具即可高效完成批量操作。

    2025年6月13日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN