linux 磁盘监控

在 Linux 中,可以通过多种方式查询硬盘的读写性能或实时读写情况。以下是几种常见的工具和命令:
see https://chatgpt.com/c/67825239-1c84-800b-9b7d-1cf05a46c1c1

1. 实时监控硬盘读写 (使用 iostat)

安装 sysstat 工具包后,使用 iostat 查看硬盘读写情况:

iostat -dx 1

解释:

  • -d: 显示设备统计。
  • -x: 显示扩展统计信息(如队列长度)。
  • 1: 每秒刷新一次。

需要先安装:

sudo apt install sysstat  # Debian/Ubuntu
sudo yum install sysstat  # RHEL/CentOS

2. 查看实时 I/O 读写 (使用 iotop)

iotop 可显示实时的进程硬盘 I/O 消耗:

sudo iotop

需要安装:

sudo apt install iotop  # Debian/Ubuntu
sudo yum install iotop  # RHEL/CentOS

3. 监控具体磁盘活动 (使用 dstat)

dstat 是一个通用监控工具,可以监控磁盘读写:

dstat -d

需要安装:

sudo apt install dstat  # Debian/Ubuntu
sudo yum install dstat  # RHEL/CentOS

4. 性能测试 (使用 ddfio)

使用 dd 测试读写速度:

写测试:

dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct

读测试:

dd if=/tmp/testfile of=/dev/null bs=1G count=1 iflag=direct

解释:

  • bs: 每次读写块的大小。
  • count: 执行多少次读写。
  • oflag=direct: 直接写入设备,避免缓存。

使用 fio 进行专业测试:

安装 fio

sudo apt install fio  # Debian/Ubuntu
sudo yum install fio  # RHEL/CentOS

运行测试:

fio --name=write_test --filename=/tmp/testfile --size=1G --time_based --runtime=30 --rw=write --bs=4k --ioengine=libaio --direct=1

参数解释:

  • --name: 测试名称。
  • --filename: 测试文件路径。
  • --size: 测试文件大小。
  • --runtime: 测试运行时间(秒)。
  • --rw: 读写模式。
  • --bs: 块大小(4k)。
  • --direct=1: 直接 I/O,避免缓存。

5. 使用 cat 读取 /proc/diskstats

查看系统内核记录的磁盘 I/O 统计:

cat /proc/diskstats

每行的字段:

  1. 主设备号和次设备号。
  2. 设备名。
  3. 读取完成次数。
  4. 合并读请求次数。
  5. 读取的扇区数。
  6. 读花费的时间(毫秒)。
  7. 写完成次数。
  8. 合并写请求次数。
  9. 写入的扇区数。
  10. 写花费的时间(毫秒)。

6. 图形化工具

  • gnome-disks: 可视化工具(适用于 GUI 环境)。
  • KDiskMark: 磁盘性能测试工具(类似 Windows 的 CrystalDiskMark)。

安装 gnome-disks

sudo apt install gnome-disk-utility

7. 总结

  • 如果需要实时监控:推荐 iostatiotop
  • 如果需要性能测试:推荐 fiodd
  • 如果需要快速统计:直接读取 /proc/diskstats 或使用 dstat

根据需求选择适合的工具即可。

posted @ 2025-01-12 14:55  whmmm  阅读(491)  评论(0)    收藏  举报
//增加一段JS脚本,为目录生成使用