Linux系統中使用 DD 命令測試 USB 和 SSD 硬碟的讀寫速度

來源:互聯網
上載者:User

Linux系統中使用 DD 命令測試 USB 和 SSD 硬碟的讀寫速度
磁碟機速度

磁碟機的速度是以一個單位時間內讀寫資料量的多少來衡量的。DD 命令是一個簡單的命令列工具,它可用對磁碟進行任意資料區塊的讀取和寫入,同時可以度量讀取寫入的速度。

在這篇文章中,我們將會使用 DD 命令來測試 USB 和 SSD 磁碟的讀取和寫入速度。

資料轉送速度不但取決於驅動盤本身,而且還與串連的介面有關。比如, USB 2.0 連接埠的最大傳輸速度是 35 MB/秒,所以如果您把一個支援高速傳輸的 USB 3.0 驅動盤插入 USB 2.0 連接埠的話,它實際的傳輸速度將是 2.0 連接埠的下限。

這對於 SSD 也是一樣的。 SSD 串連的 SATA 連接埠有不同的類型。平均是 375 MB/秒的 SATA 2.0 連接埠理論上最大傳輸速度是 3 Gbit/秒,而 SATA 3.0 是這個速度的兩倍。

測試方法

掛載上驅動盤,從終端進入此盤目錄下。然後使用 DD 命令,首先寫入固定大小塊的一個檔案,接著讀取這個檔案。

DD 命令通用文法格式如下:

  1. dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks

當寫入到驅動盤的時候,我們簡單的從無窮無用位元組的源 /dev/zero 讀取,當從驅動盤讀取的時候,我們讀取的是剛才的檔案,並把輸出結果發送到無用的 /dev/null。在整個操作過程中, DD 命令會跟蹤資料轉送的速度並且報告出結果。

固態硬碟

我們使用的是一塊“三星 Evo 120G” 的固態硬碟。它性價比很高,很適合剛開始用固態硬碟的使用者,也是我的第一塊固態硬碟,並且也是市場上效果最好的固態硬碟之一。

這次實驗中,我們把硬碟接在 SATA 2.0 連接埠上。

寫入速度 ####

首先讓我們寫入固態硬碟

  1. $ dd if=/dev/zero of=./largefile bs=1M count=1024
  2. 1024+0 records in
  3. 1024+0 records out
  4. 1073741824 bytes (1.1 GB) copied,4.82364 s,223 MB/s

的大小實際上是相當大的。你可以嘗試用更小的尺寸如 64K 甚至是 4K 的。

讀取速度

現在讀回這個檔案。但是,得首先清除記憶體的緩衝,以確保這個檔案確實是從驅動盤讀取的。

運行下面的命令來清除記憶體緩衝

  1. $ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

現在讀取此檔案

  1. $ dd if=./largefile of=/dev/null bs=4k
  2. 165118+0 records in
  3. 165118+0 records out
  4. 676323328 bytes (676 MB) copied,3.0114 s,225 MB/s

在 Arch Linux 的維基頁上有一整頁的關於不同的廠商,如英特爾、三星、Sandisk 等提供的各類固態硬碟 讀/寫速度的資訊。點擊如下的 url 可以查看相關資訊。

https://wiki.archlinux.org/index.php/SSD_Benchmarking

USB

此次實驗我們會測量普通的 USB/隨身筆的讀寫速度。驅動盤都是接入標準的 USB 2.0 連接埠的。首先用的是一個 4GB 大小的 sony USB 驅動盤,隨後用的是一個 16GB 大小的 strontium 驅動盤。

首先把驅動盤插入連接埠,並掛載上,使其可讀。然後從命令列下面進入掛載的檔案目錄下。

Sony 4GB - 寫入

這個實驗中,用 DD 命令向驅動盤寫入一個有 10000 塊,每塊 8K 位元組的檔案。

  1. # dd if=/dev/zero of=./largefile bs=8k count=10000
  2. 10000+0 records in
  3. 10000+0 records out
  4. 81920000 bytes (82 MB) copied,11.0626 s,7.4 MB/s

因此,寫入速度約為7.5MB/秒。這是一個很低的數字。

Sony 4GB - 讀取

把相同的檔案讀取回來,測試速度。首先運行如下命令清除記憶體緩衝。

  1. $ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

現在就可以使用 DD 命令來讀取檔案了。

  1. # dd if=./largefile of=/dev/null bs=8k
  2. 8000+0 records in
  3. 8000+0 records out
  4. 65536000 bytes (66 MB) copied,2.65218 s,24.7 MB/s

讀取速度出來大約是25MB/秒,這大致跟廉價 USB 驅動盤的標準相匹配吧。

USB2.0 理論上最大訊號傳輸速率為480兆位元/秒,最小為60MB/秒。然而,由於各種限制實際傳輸速率大約280兆位元/秒和35MB/秒之間。除了這個,實際的速度還取決於驅動盤本身的品質好壞以及其他的因素。

上面實驗中, USB 驅動盤插入USB 2.0 連接埠,讀取的速度達到了 24.7MB/秒,這是很不錯的讀速度。但寫入速度就不敢恭維了。

下面讓我們用 16GB 的 Strontium 驅動盤來做相同的實驗。雖然 Strontium 的 USB 驅動盤很穩定,但它也是一款很便宜的品牌。

Strontium 16gb 盤寫入速度
  1. # dd if=/dev/zero of=./largefile bs=64k count=1000
  2. 1000+0 records in
  3. 1000+0 records out
  4. 65536000 bytes (66 MB) copied,8.3834 s,7.8 MB/s
Strontium 16gb 盤讀取速度
  1. # sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
  2. # dd if=./largefile of=/dev/null bs=8k
  3. 8000+0 records in
  4. 8000+0 records out
  5. 65536000 bytes (66 MB) copied,2.90366 s,22.6 MB/s

它的讀取速度就要比 Sony 的低了。

參考資料
  • http://en.wikipedia.org/wiki/USB
  • https://wiki.archlinux.org/index.php/SSD_Benchmarking

關於 Silver Moon

Php 開發人員, 博主 和 Linux 愛好者. 通過 m00n.silv3r@gmail.com 或者 Google+ 可聯絡到他。

本文永久更新連結地址:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.