使用dd测试硬盘的写速度

使用dd测试硬盘的写速度

使用 dd 命令测试硬盘写入速度是 Linux 系统中最常用、最便捷的方法之一。为了确保测试结果准确反映硬盘的真实物理写入性能(而不是内存缓存的速度),关键在于使用正确的参数来绕过系统缓存。
以下是具体的操作步骤和命令详解:

1. 核心测试命令

请在终端中执行以下命令(建议将测试文件放在你想要测试的硬盘分区目录下):
bash
1dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct
命令参数详解:
  • if=/dev/zero输入文件。这是一个特殊的设备文件,会源源不断地输出“0”字符,用来模拟数据写入。

  • of=./testfile输出文件。即测试文件,它会被创建在当前目录下。

  • bs=1G块大小。每次读写的数据块大小为 1GB。

  • count=1数量。只写入 1 个块,即总共写入 1GB 的数据。

  • oflag=direct关键参数。这表示使用直接 I/O 模式。它会绕过操作系统的内存缓存(Page Cache),直接将数据写入磁盘。如果不加这个参数,测试的往往是内存写入速度(通常高达数 GB/s),无法反映硬盘真实性能。

2. 如何看懂测试结果

命令执行完毕后,终端会输出类似以下的信息:
text
11+0 records in21+0 records out31073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.1456 s, 501 MB/s
你需要关注的是最后一行
  • 1073741824 bytes:表示成功写入了约 1GB 的数据。

  • 2.1456 s:表示写入这些数据花费的时间。

  • 501 MB/s这就是你的硬盘写入速度

3. 进阶:更严谨的测试方式

如果你需要更精确的数据,或者上面的命令报错(某些老旧系统不支持 oflag),可以参考以下变体:

方法 A:使用 conv=fdatasync(推荐用于确保数据落盘)

这个参数会在写入结束后强制将数据同步到磁盘,确保数据真的写进去了,而不仅仅是停留在硬盘自带的易失性缓存中。
bash
1dd if=/dev/zero of=./testfile bs=1G count=1 conv=fdatasync

方法 B:结合 time 命令

使用 time 命令可以获得更详细的系统资源消耗统计(如用户态时间、内核态时间)。
bash
1time dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct

4. 注意事项与清理

  1. 清理测试文件:测试完成后,别忘了删除生成的测试文件以释放空间:

    bash
    1rm -f ./testfile
  2. 权限问题:如果你在当前目录没有写入权限,或者想测试系统根目录所在的硬盘,可能需要在命令前加上 sudo

  3. 测试位置dd 命令测试的是文件系统的写入速度。如果你想测试某个具体挂载的数据盘(例如 /data),请确保在执行命令前切换目录(cd /data),否则你测试的可能是系统盘的速度。

  4. 块大小的影响:一般来说,块大小(bs)越大,测出的顺序写入速度越快。通常使用 1G 或 64k 进行比较标准的测试。

总结

最推荐的“万金油”命令是:dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct它简单、直接,且能屏蔽内存缓存带来的速度虚高假象。






Linux磁盘性能检查,dd、fio、iostat、iotop
想给Linux系统里的磁盘来一次全面的“体检”吗?其实,我们平时常用的命令行工具里,就藏着不少性能检查的利器。
🏃 快速“短跑”测试:dd
这个命令就像一个秒表,专门用来测量磁盘的读写速度,非常适合测试磁盘的“短跑”能力。
举个例子,想测试一下磁盘的写入速度,可以试试这个命令:
dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct
这个命令的各个部分都很有讲究:
- `if=/dev/zero`:指定数据源,这里是“零数据生成器”,意味着写入的数据全是0。
- `of=./testfile`:指定输出文件,数据会被写入当前目录下的 `testfile` 文件。
- `bs=1G`:每次写入1GB的数据块。
- `count=1`:只执行一次写入操作。
- `oflag=direct`:这个参数很关键,它表示要绕过缓存,直接写入磁盘。
执行后,你会看到类似这样的输出:
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.12345 s, 209 MB/s
这个输出告诉我们,磁盘的写入速度是 **209 MB/s**,是不是很快?
📊 复杂性能测试:fio
如果你需要更复杂的测试,那么 `fio` 是你的好帮手。
🕰️ 实时监控:iostat 和 iotop
如果你想知道磁盘IO的性能是实时变化的,那么 `iostat` 和 `iotop` 是你的最佳选择。




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

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

作者: 小编


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

一切源于价值!

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

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!