使用 DD 命令测试 Linux 和 Unix 磁盘 I/O 性能
您知道如何在 Linux 操作系统上检查硬盘的性能,例如检查读写速度吗?如果是这样,那么本文就是为您准备的!本文旨在为您提供 DD 命令的概述,旨在为新用户提供更好的指导,并作为探索 Linux 世界的入门之旅。
什么是 DD 命令?
DD 是一种用于 Unix 和类 Unix 操作系统的命令行实用程序,其主要目的是复制文件并在过程中转换数据格式。
如何使用 DD 命令测试硬盘?
打开您的 Linux 根终端并添加以下命令:
$ sudo dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
输出应如下所示:
tp@linux:~$ sudo dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync [sudo] password for tp: 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 11.9635 s, 89.8 MB/s tp@linux:~$
请注意,测试过程中复制了 1GB 数据,并且在整个测试过程中速度为 89.8 MB/秒。
了解 DD 命令
DD 命令的各个部分应如下所示:
if=/dev/zero (if=/dev/input.file) | 指示您要使用 DD 命令读取的输入文件。 |
of=/tmp/test1.img(of=/path/to/output.file) | 指示您要使用 DD 命令写入的输出文件。 |
bs=1G(bs=block-size) | 指示您希望 DD 使用的块大小(此处我使用 1GB 作为块大小)。 |
count=1 (count=number-of-blocks) | 指示您希望 DD 用于读取块的块数。 |
oflag=dsync (oflag=dsync) | 指示数据的同步 I/O。 |
conv=fdatasyn | 此命令告诉 DD 进行同步。 |
在 Linux 上使用 DD 命令测试读取速度
在测试之前,首先刷新缓存数据,使用以下命令:
$ echo 3 | sudo tee /proc/sys/vm/drop_caches time time dd if=/path/to/bigfile of=/dev/null bs=8k
运行以下命令以使用缓存测试数据:
tp@linux:~$ dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 11.4265 s, 94.0 MB/s
以上命令复制了 1.1GB 的数据,测试速度为 94.0 MB/s。
要禁用缓存,请使用以下命令:
$ sudo hdparm -W0 /dev/sda
输出应如下所示:
tp@linux:~$ sudo hdparm -W0 /dev/sda /dev/sda: setting drive write-caching to 0 (off) write-caching = 0 (off)
运行以下命令以在不使用缓存的情况下测试数据:
$ dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct
输出应如下所示:
tp@linux:~$ dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 11.5062 s, 93.3 MB/s
以上命令复制了 1.1GB 的数据,测试速度为 93.3 MB/s。
恭喜!现在,您知道如何使用 DD 命令测试磁盘 I/O 性能了。在我们的下一篇文章中,我们将介绍更多基于 Linux 的技巧和提示。敬请关注!
广告