使用hdparm测试硬盘的读速度

hdparm 是一个非常经典的 Linux 硬盘性能测试工具,但它有一个非常关键的特性你需要先了解:
hdparm 主要用于测试硬盘的【读取速度】,它并不直接测试写入速度。
虽然 hdparm 可以用来调整硬盘参数(包括开启写入缓存),但为了测试准确的“写入速度”,通常建议配合 dd 命令来完成。
以下是使用 hdparm 测试读取速度,以及配合 dd 测试写入速度的完整步骤:

1. 安装 hdparm

大多数 Linux 发行版默认已安装,如果没有,可以通过包管理器安装:
  • Ubuntu/Debian: sudo apt install hdparm

  • CentOS/RHEL: sudo yum install hdparm

2. 确认测试设备

在测试前,请务必确认你要测试的硬盘设备名称(例如 /dev/sda 或 /dev/vda),千万不要选错设备,以免误操作导致数据丢失
你可以使用 lsblk 命令来查看设备列表。

3. 使用 hdparm 测试读取速度

这是 hdparm 的核心功能,它会输出两项数据:
命令:
bash
1sudo hdparm -Tt /dev/sda
(请将 /dev/sda 替换为你实际的硬盘设备路径)
结果解读:
  • Timing cached reads (缓存读取速度):

    • 这是从 Linux 的内存缓冲区(RAM)读取数据的速度。

    • 意义: 反映的是 CPU、内存和总线带宽的性能,不代表硬盘本身的物理性能。数值通常非常高(几千 MB/s)。

  • Timing buffered disk reads (磁盘读取速度):

    • 这是直接从硬盘盘片/颗粒读取数据的速度(不经过文件系统缓存)。

    • 意义: 这才是硬盘真实的物理读取性能

    • 参考标准: 机械硬盘通常在 100-200 MB/s,普通 SSD 在 500 MB/s 左右,NVMe SSD 则更高。

4. 使用 dd 测试写入速度

因为 hdparm 不负责测写,我们需要使用 Linux 自带的 dd 命令来测试写入性能。
命令:
bash
1dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct
参数详解:
  • if=/dev/zero: 输入源是零设备(产生全0数据流)。

  • of=./testfile: 输出到当前目录下的 testfile 文件。

  • bs=1G: 块大小为 1GB。

  • count=1: 写入 1 个块(即 1GB 数据)。

  • oflag=direct关键参数。它告诉系统直接写入硬盘,绕过系统缓存。如果不加这个参数,测出来的可能是内存写入速度(非常快但不真实)。

结果解读:
命令执行完毕后,终端会显示类似 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.5 s, 429 MB/s 的信息。最后的 429 MB/s 即为你的硬盘写入速度。

⚠️ 重要提示

  1. 数据安全: 使用 hdparm 时,只使用 -t 或 -T 参数是安全的(只读)。严禁随意使用 hdparm 的其他参数(如 --write-sector 或 --trim),这些高级参数极其危险,可能导致数据瞬间丢失。

  2. 测试环境: 为了获得准确结果,请在系统负载较低时进行测试,避免其他程序占用磁盘 I/O。

  3. 更专业的工具: 如果你需要测试随机读写(4K性能)或更复杂的 IOPS 指标,hdparm 和 dd 就不够用了,建议使用 fio 工具。


1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » 使用hdparm测试硬盘的读速度

作者: 小编


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!