如何查看linux读写速度
如何查看linux读写速度详细介绍
在 Linux 系统中,查看磁盘读写速度可以通过多种工具实现,以下是常用的方法及工具介绍:
一、使用 dd 命令(简单测试)
dd 命令可用于手动测试磁盘的顺序读写速度(绕过系统缓存需配合参数)。
测试顺序写速度
bash
/dev/zero /test-write.dat 1G direct fdatasync
- 输出解读:
real时间(实际耗时)用于计算速度。- 速度计算公式:
(文件大小)/(耗时),例如:1GB / 5s = 200MB/s。
测试顺序读速度
bash
/test-write.dat /dev/null 1G direct
二、使用 hdparm 命令(适用于传统硬盘)
hdparm 主要用于检测硬盘基本信息和性能(对 SSD 支持有限)。
安装工具
bash
hdparm
yum hdparm
测试缓存读取速度
bash
hdparm /dev/sda
测试非缓存读取速度(直接从磁盘读取)
bash
hdparm /dev/sda
三、使用 iostat 命令(实时监控)
iostat 属于 sysstat 工具集,用于监控磁盘 I/O 统计信息(包括读写速度、负载等)。
安装工具
bash
sysstat
yum sysstat
基础用法
bash
iostat
- 关键参数解读:
Device:磁盘设备名(如sda、nvme0n1p2)。rrqm/s/wrqm/s:每秒合并的读写请求数(通常接近 0)。r/s/w/s:每秒完成的读写请求数(IOPS)。rMB/s/wMB/s:每秒读写数据量(MB/s)。%util:磁盘使用率(接近 100% 表示磁盘繁忙)。
四、使用 fio 命令(专业基准测试)
fio 是功能强大的 I/O 基准测试工具,支持自定义测试模式(如顺序读写、随机读写、不同块大小等)。
安装工具
bash
fio
yum fio
常用测试示例
- 顺序写入测试(1GB 文件,块大小 4KB)
bashfio /test-fio.datwrite psync 4k 1GB
sequential-write-test
- 随机读取测试(模拟数据库场景,4KB 块)
bashfio /test-fio.datrandread psync 4k 1GB
random-read-test
- 混合读写测试(70% 读 + 30% 写)
bashfio /test-fio.datrand混合 psync 4k 1GB
mix-test
- 关键输出解读:
bw:带宽(MB/s 或 KB/s)。iops:每秒输入 / 输出操作数。latency:平均延迟(单位:us/ms)。
五、注意事项
- 测试文件位置:
- 避免在系统盘(如
/或/home)测试,建议使用专用测试文件或空分区。 - 使用
oflag=direct或direct=1绕过系统缓存,获取真实磁盘速度。
- 避免在系统盘(如
- 硬件差异:
- SSD 的速度通常远高于机械硬盘(HDD),NVMe 硬盘速度高于 SATA 接口 SSD。
- 测试结果受磁盘剩余空间、分区格式(如 ext4、NTFS)等因素影响。
- 性能基准:
- 机械硬盘(HDD)顺序读写速度通常为 50-200 MB/s。
- SATA SSD 顺序读写速度可达 500-600 MB/s。
- NVMe SSD(PCIe 3.0)可达 2000-3500 MB/s,PCIe 4.0 则更高。
总结
- 快速测试:用
dd或hdparm简单评估顺序读写速度。 - 实时监控:用
iostat观察磁盘实时负载和吞吐量。 - 专业基准:用
fio自定义测试场景(如随机读写、混合负载)。
根据具体需求选择工具,如需分析性能瓶颈,建议结合 iostat、iotop 等工具综合判断。