首先使用iostat -x 2检查磁盘I/O负载和设备饱和情况,再通过sudo iotop -o定位高I/O进程,结合两者分析并找出导致磁盘压力的具体进程。

如果您需要实时监控 Linux 系统的磁盘 I/O 性能,发现哪些进程正在大量读写磁盘,可以使用 iostat 与 iotop 命令进行分析。这两个工具能够提供详细的设备负载和进程级 I/O 活动信息。
本文运行环境:Dell PowerEdge R750,Ubuntu 22.04
iostat 是 sysstat 工具包中的一个命令,用于报告 CPU 使用率和磁盘 I/O 统计信息。它可以帮助您了解系统整体的 I/O 负载情况,包括每个磁盘设备的读写速率、I/O 队列长度和等待时间。
1、确保已安装 sysstat 软件包。在 Ubuntu/Debian 系统中执行:sudo apt install sysstat。
2、运行基本命令查看所有设备的 I/O 统计:iostat -x 2,其中 -x 表示显示扩展统计信息,2 表示每 2 秒刷新一次数据。
3、若只想监控特定设备(如 sda),可使用:iostat -x /dev/sda 2。
4、查看 CPU 使用情况的同时显示设备统计,运行:iostat -c -d 2,-c 显示 CPU,-d 显示设备。
5、将输出保存到文件以便后续分析:iostat -x 2 10 > iostat_output.txt,表示采集 10 次后停止并写入文件。
iotop 是一个类似 top 的实时 I/O 监控工具,专门用于显示每个进程或线程的磁盘读写速率。它适用于快速识别造成高 I/O 负载的具体进程。
1、确认系统已安装 iotop。在基于 Debian 的系统中执行:sudo apt install iotop。
2、以 root 权限运行 iotop,因为普通用户无法获取所有进程的 I/O 数据:sudo iotop。
3、启动后按 o 键可仅显示正在进行 I/O 操作的进程,减少干扰信息。
4、按 P 切换为按磁盘写入速率排序,帮助定位写密集型进程。
5、按 T 启用树状模式,显示进程及其子线程的 I/O 活动关系。
当系统出现响应缓慢或磁盘负载过高时,可以通过 iostat 定位设备层面的问题,再通过 iotop 找出具体的罪魁进程。这种组合方式能实现从宏观到微观的完整诊断路径。
1、首先运行 iostat -x 2 观察是否存在 %util 接近 100% 的设备,这表示该设备处于饱和状态。
2、检查 await 和 svctm 值是否显著高于正常水平,若数值持续偏高说明存在 I/O 延迟问题。
3、切换至另一个终端窗口,执行 sudo iotop -o 查看当前活跃的 I/O 进程。
4、记录下读写速率最高的进程 PID,并使用 ps -p PID -o comm,cmd,%mem,%cpu 获取其详细信息。
5、根据进程名称判断是否为正常服务或潜在异常任务,必要时使用 kill 命令终止非关键高负载进程。
以上就是LINUX的iostat与iotop命令详解_实时监控LINUX磁盘I/O性能的工具的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号