使用 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 的技巧和提示。敬請關注!
廣告