pidstat -d 1 可实时监控各进程磁盘IO,每秒刷新,适用于服务器环境定位高IO进程;需先安装sysstat包,关键字段包括PID、Command、rd_sec/s、wr_sec/s等,支持按PID、进程名筛选及排序分析。

直接用 pidstat -d 1 就能实时看到每个进程的磁盘读写情况,每秒刷新一次。它不依赖图形界面,适合服务器环境快速定位“谁在狂刷硬盘”。
确认工具已安装并可用
pidstat 属于 sysstat 包,多数发行版默认不自带:
- Ubuntu/Debian 系统执行:
sudo apt install sysstat - CentOS/RHEL 系统执行:
sudo yum install sysstat或sudo dnf install sysstat - 安装后运行
pidstat --version验证是否就绪
基础监控命令与字段含义
最常用命令是:
pidstat -d 1
输出中关键列说明:
- PID:进程 ID
-
Command:进程名(可能被截断,加
-l显示完整路径) - rd_sec/s:每秒读取扇区数(512 字节/扇区),换算成 KB 是 ÷2;MB 是 ÷2048
- wr_sec/s:每秒写入扇区数,换算逻辑同上
- rkB/s / wkB/s:部分新版 sysstat 直接显示 KB 单位,更直观
按需筛选和聚焦目标进程
不需要看全部进程时,可精准追踪:
- 只监控指定 PID:
pidstat -d -p 1234 1 - 只看某类进程(如 Java 应用):
pidstat -d 1 | grep java - 高 IO 排序(终端内实时排序):
pidstat -d 1 | sort -k4 -nr(按 wr_sec/s 降序) - 加
-l显示完整命令路径,避免只看到 “java” 而不知是哪个服务
结合其他指标做综合判断
单看 IO 数值不够,要联动分析:
- 加
-r同时看内存:pidstat -d -r 1,观察是否因缺页频繁触发磁盘读 - 加
-u同时看 CPU:pidstat -d -u 1,区分是 CPU 密集型还是 IO 密集型卡顿 - 若发现某进程 rd_sec/s 持续很高,但实际业务无大量读操作,可能是日志轮转、备份脚本或异常缓存写入


















