在银河麒麟系统中,应使用sudo iotop -o -d 1精准筛选实时写盘进程,-o过滤静默进程,重点关注IO>列非零且DISK WRITE持续超5MB/s者;再用pidstat -d 1识别KB_wr/s超20MB/s的用户进程与jbd2等内核线程;最后用lsof -p PID | grep -E '(/dev/sd|/dev/nvme)'验证是否直连物理磁盘。

在银河麒麟系统中快速识别当前正在对硬盘执行写入操作的程序,避免被后台静默进程干扰判断,必须使用能实时捕获内核IO事件的专用工具,不能依赖普通进程列表或CPU/内存排序。
用 iotop 精准筛选活跃写盘进程
这一步直接读取内核 IO 跟踪接口,只显示此刻真实发生磁盘写入的程序,比 top 或 ps 更聚焦于写盘行为本身。
先确认 iotop 是否已安装:运行 which iotop,若无输出则执行 sudo yum install -y iotop。
【必须使用 sudo 权限运行,否则无法捕获系统级进程和内核线程的写盘数据】
输入 sudo iotop -o -d 1 启动监控,-o 参数强制隐藏所有 IO 速率为 0 的进程,-d 1 表示每秒刷新一次。
界面默认按 IO 带宽降序排列,重点关注 “IO>” 列数值——只要该列不为 0,就代表该进程正在读或写硬盘;若数值持续高于 5MB/s 且以写入为主(右侧 W 字样明显),基本可判定为当前写盘主力。
用 pidstat 分离读写并定位高写入用户进程
当 iotop 显示多个进程 IO 值接近时,需进一步区分哪些是用户进程、哪些是内核线程,防止误判 jbd2 等关键服务。
第一步:执行 pidstat -d 1,该命令每秒输出一次各进程的 KB_rd/s(每秒读取千字节)与 KB_wr/s(每秒写入千字节)。
第二步:观察输出中 KB_wr/s 列,若某 PID 连续两次采样均超过 20000(即 20MB/s),立即记录其 COMMAND 字段名称。
第三步:若发现 COMMAND 列为 jbd2/sda1-8 类条目且 KB_wr/s 偏高,说明 ext4 日志提交频繁,此时应检查 /dev/sda1 挂载点下是否存在大量小文件同步写操作,而非直接终止该线程。
用 lsof 验证进程是否直连物理磁盘写入
适用于已知可疑进程 PID,需确认它是否真的在操作物理磁盘而非仅写入缓存文件或普通日志。
执行 lsof -p 12345 | grep -E '(/dev/sd|/dev/nvme)',将 12345 替换为实际 PID。
若输出中出现 /dev/sdb2 或 /dev/nvme0n1p1 等设备路径,即可确认该进程正直接写入对应硬盘分区。
注意:普通日志写入进程通常不会直接打开 /dev 设备,此方法主要用于排查备份工具、数据库直连存储或 dd 类工具。

















