Linux和Unix使用DD命令测试磁盘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 =块大小)指示您要DD使用的块的大小(这里我已使用1 GB作为块)
计数= 1(计数=块数)指示要在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

运行以下命令以使用cache-测试数据

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的技巧。继续阅读!