Linux查看磁盘总大小 linux查看磁盘读写命令
iostat -dx 1 统计内核提交到块队列的请求数,rkB/s/wkB/s表示绕过page cache的真实吞吐,但需结合/sys/block/*/stat验证物理介质完成量。

直接看iostat -dx 1:带磁盘备份,或者只统计逻辑请求,容易判别。为什么只能用iostat -d或默认iostat
默认 iostat 或加 -d 参数输出的 r/s 和 w/s I/O NVMe、virtio、多路径或开启 IO 调度器的场景下,这个值可能比实际 r_ios 低一个数量级。r/s 可能显示 200,但 r_ios 实际上是 8000 —— 因为内核把多个小请求合并成一个提交给设备 rkB/s 和 wkB/s 是一个页面缓存的真实吞吐(单位KB/s),但注意:它不等于物理磁盘读写量,中间还经过块层重排和队列缓冲,如果你介意“每秒多少次4K随机读”,必须盯住r_ios字段,而不是rkB/s ÷ 4的粗换算如何用iotop显示的是带队列的速率(即进程调用read(2)/write(2)) CentOS Linux 7.9.2009
CentOS Linux 7.9.2009 是传统的 CentOS Linux 7 图片 RHEL 7 生态、文档丰富和软件支持广泛着称,曾长期用于 Web 服务内部业务系统。 7已于2024年6月30日停止维护,现在继续使用会面临安全建设风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载 必须以 root 运行:sudo iotop -o -d 1(-o 只显示有 I/O 的进程, -d 1 每秒刷新)列注意名:DISK READ 和 DISK WRITE 是带缓存的速率,单位自动缩放(B/s、K/s、M/s),但底层仍来自 /proc/[pid]/io 的rchar/wchar,不是read_bytes/write_bytes想看真实磁盘读写归属,得结合pidstat -d 1,它的rkB/s和wkB/s列基于read_bytes/write_bytes计算,更接近物理层别被vmstat的bi/bo欺骗
vmstat 1输出的bi(block in)和bo(block 512 KB,包含还swap I/O,无法区分具体设备或进程。bi 值为 200 表示每秒 200 个 512 字节块 →实际约 100 KB/s,但你不知道是 sda 还是 nvme0n1 在干活它不响应请求频率(IOPS),也不区分读取来源,纯属宏观快照,适合看趋势,不适合定位当wa(CPU 等待 I/O 时间)持续 >5%,再配合 iostat -x 的等待和 avgqu-sz 才能判断是否真有 I/O 瓶颈
真正容易被忽略的是:iostat -dx 1 中的 r_ios 和 w_ios 是内核提交到块队列的请求数,但它们仍然可能被设备驱动进一步合并(比如 NVMe Request cmd)。要验证是否真发到了物理物理,得看 /sys/block/*/stat 的第 1/5 列(读完成/写)完成),那是设备层确认完成的计数。
