在Linux中查看磁盘的实时读写速度很简单,可以使用“iostat”就可以做到,不过其默认输出的是“分段式”
以下几种方法均可以做到“同一行不断刷新”的观感。
1.直接让 iostat “原地刷新”
(最简,依赖终端控制字符)
# -y 去掉第一次的平均值,-d 只看设备,-k 用 KB/s,1 表示每秒刷新
iostat -d -ky 1此时你会看到 光标停在同一屏,数值每秒更新,不会滚屏。
按 Ctrl-C 退出。
2.用 watch 做成“伪 UI”
(适合没有 -y 的老版本)
# -n 1 也是 1 秒刷新;-d 高亮变动字段
watch -n 1 -d 'iostat -d -k 1 1'watch 会帮你清屏并重绘,看起来也是“原地刷新”。
缺点是多了一次子进程调用,开销可忽略。
3.只盯某一块盘,更简洁
假设你只关心 sda:
iostat -d -ky -p sda 14.想要更炫酷的实时柱状图 / 折线图
iostat 做不到,但另外两个工具可以无缝接力:
# 1. 安装(Debian/Ubuntu 举例)
sudo apt install dstat nethogs
# 2. 彩色滚动输出
dstat -d --disk-util
# 3. 类 htop 的磁盘视图
sudo iotop -o # 只看有 I/O 的进程小结
- 你已经装了
iostat,最简单就是iostat -d -ky 1就能达到“原地刷新”效果。 - 如果版本太老不支持
-y,就套一层watch。 - 需要更漂亮的实时图,再考虑
dstat/iotop/nmon。