需综合使用iostat、iotop和pidstat三工具协同分析:iostat -xdm 1查设备级io负载与延迟,%util>80%或r_await/w_await>10ms表明磁盘瓶颈;iotop -o -d 1定位高io进程;pidstat -d 1识别持续高写入进程及jbd2等内核线程异常。

当麒麟系统出现卡顿、响应迟缓且CPU使用率不高时,磁盘IO占用过高往往是真正瓶颈,必须快速定位到具体是哪个进程在持续刷盘。
确认磁盘是否存在IO瓶颈
打开终端,先执行 iostat -xdm 1。若提示命令未找到,运行 sudo yum install -y sysstat 安装工具。
执行 sudo systemctl enable sysstat && sudo systemctl start sysstat ——这一步【必须执行】,否则 iostat 可能无法显示完整扩展指标或历史趋势。
观察输出中 %util 列:若某设备(如 sda)持续高于 80%,同时 r_await 或 w_await 超过 10ms,说明磁盘已处于高负载状态,需立即进入进程级排查。
按 Ctrl+C 停止监控。
用iotop找出实时高IO进程
执行 sudo yum install -y iotop 安装(Kylin标准镜像通常未预装)。
运行 sudo iotop -o -d 1:-o 参数只显示当前有真实IO动作的进程,避免被大量空闲进程干扰;-d 1 表示每秒刷新一次。
界面默认按 IO> 列降序排列,直接聚焦顶部几行——若看到 java、mysqld、rsync 或 journalctl 进程的 IO> 值稳定超过 20MB/s,它就是当前IO主力。
按 ←→ 方向键可切换排序字段(如切换到 SWAPIN 或 TIME),按 P 键可在进程/线程粒度间切换,注意识别 jbd2/* 类内核线程是否异常活跃。
用pidstat做精准IO归因
方法一:查看各进程每秒读写量
执行 pidstat -d 1,该命令每秒输出一次所有进程的 KB_rd/s 与 KB_wr/s 数值。
重点关注连续 3 次采样中 KB_wr/s > 50000(即 50MB/s)的 PID,这类进程极大概率是日志轮转、数据库备份或同步任务。
方法二:关联进程名与IO行为
执行 pidstat -d 1 3 | grep -E "(java|mysql|rsync|python)",快速过滤出常见高IO嫌疑进程的实时吞吐数据。
若发现 jbd2/sda-8 等内核线程 KB_wr/s 异常偏高,说明 ext4 日志提交频繁,应检查对应挂载点下是否存在大量小文件同步写操作。











