在 Linux 中如何使用 iotop 监控磁盘 I/O?

问题浏览数Icon
7
问题创建时间Icon
2025-04-21 01:59:00
作者头像
steelray99

在Linux中使用iotop监控磁盘I/O,需先安装iotop包(如sudo apt install iotop),然后以root权限运行sudo iotop,实时查看各进程的I/O读写速度和累计量。

延伸知识点:iotop与iostat的区别 iostat(来自sysstat包)侧重于磁盘设备级别的统计,如整体读写速度、I/O队列长度,通过iostat -x 1可查看设备负载(如%util表示设备繁忙度)。而iotop基于进程展示实时I/O,依赖内核I/O记账功能(需启用CONFIG_TASKSTATSCONFIG_VM_EVENT_COUNTERS)。两者结合可定位高I/O进程(iotop)及确认是否达到磁盘瓶颈(iostat的%util接近100%)。

更多回答

作者头像
hongyan77

是否考虑过尝试使用 iostat 来获取更详细的磁盘 I/O 统计信息,尤其是在系统级性能分析中可能更为直观?

作者头像
rainstorm99

用iotop监控磁盘I/O很简单!先装iotop:Ubuntu用sudo apt install iotop,CentOS用sudo yum install iotop。装完直接sudo iotop就能看实时读写情况,按左右箭头可以排序,按Q退出。想看正在活动的进程就加-o参数,比如sudo iotop -o,这样只显示有读写操作的进程,超方便!

作者头像
milkdrizzle
  1. 安装iotop

    • Debian/Ubuntu:apt-get install iptop
    • RHEL/CentOS:yum install iptopdnf install iptop
  2. 以root权限运行

    sudo iptop
  3. 基础监控

    • 默认界面显示所有进程的磁盘读写(IO)情况,包含IO百分比、进程ID、优先级等。
  4. 常用参数

    • 仅显示活跃IO进程:iptop -o
    • 按IO使用率排序:按左右箭头调整排序列
    • 批处理模式(输出到文件):iptop -b > iptop.log
  5. 监控特定进程: 结合grep过滤,例如:iptop | grep nginx

  6. 退出:按qCtrl+C终止监控。

注意事项

  • 需内核支持(多数现代系统默认启用)
  • 数据实时刷新,可通过-d指定刷新间隔(如-d 5为5秒)
  • 若进程显示为[kworker],表示内核线程的IO操作