磁盤驅動器的速度是以一個單位時間內讀寫數據量的多少來衡量的。DD 命令是一個簡單的命令行工具,它可用對磁盤進行任意數據塊的讀取和寫入,同時可以度量讀取寫入的速度。
在這篇文章中,我們將會使用 DD 命令來測試 USB 和 SSD 磁盤的讀取和寫入速度。
數據傳輸速度不但取決於驅動盤本身,而且還與連接的接口有關。比如, USB 2.0 端口的最大傳輸速度是 35 兆字節/秒,所以如果您把一個支持高速傳輸的 USB 3.0 驅動盤插入 USB 2.0 端口的話,它實際的傳輸速度將是 2.0 端口的下限。
這對於 SSD 也是一樣的。 SSD 連接的 SATA 端口有不同的類型。平均是 375 兆字節/秒的 SATA 2.0 端口理論上最大傳輸速度是 3 Gbit/秒,而 SATA 3.0 是這個速度的兩倍。
掛載上驅動盤,從終端進入此盤目錄下。然後使用 DD 命令,首先寫入固定大小塊的一個文件,接著讀取這個文件。
DD 命令通用語法格式如下:
當寫入到驅動盤的時候,我們簡單的從無窮無用字節的源 /dev/zero 讀取,當從驅動盤讀取的時候,我們讀取的是剛才的文件,並把輸出結果發送到無用的 /dev/null。在整個操作過程中, DD 命令會跟蹤數據傳輸的速度並且報告出結果。
我們使用的是一塊“三星 Evo 120G” 的固態硬盤。它性價比很高,很適合剛開始用固態硬盤的用戶,也是我的第一塊固態硬盤,並且也是市場上效果最好的固態硬盤之一。
這次實驗中,我們把硬盤接在 SATA 2.0 端口上。
首先讓我們寫入固態硬盤
的大小實際上是相當大的。你可以嘗試用更小的尺寸如 64K 甚至是 4K 的。
現在讀回這個文件。但是,得首先清除內存的緩存,以確保這個文件確實是從驅動盤讀取的。
運行下面的命令來清除內存緩存
現在讀取此文件
在 Arch Linux 的維基頁上有一整頁的關於不同的廠商,如英特爾、三星、Sandisk 等提供的各類固態硬盤 讀/寫速度的信息。點擊如下的 url 可以查看相關信息。
https://wiki.archlinux.org/index.php/SSD_Benchmarking
此次實驗我們會測量普通的 USB/隨身筆的讀寫速度。驅動盤都是接入標准的 USB 2.0 端口的。首先用的是一個 4GB 大小的 sony USB 驅動盤,隨後用的是一個 16GB 大小的 strontium 驅動盤。
首先把驅動盤插入端口,並掛載上,使其可讀。然後從命令行下面進入掛載的文件目錄下。
這個實驗中,用 DD 命令向驅動盤寫入一個有 10000 塊,每塊 8K 字節的文件。
因此,寫入速度約為7.5兆字節/秒。這是一個很低的數字。
把相同的文件讀取回來,測試速度。首先運行如下命令清除內存緩存。
現在就可以使用 DD 命令來讀取文件了。
讀取速度出來大約是25兆字節/秒,這大致跟廉價 USB 驅動盤的標准相匹配吧。
USB2.0 理論上最大信號傳輸速率為480兆比特/秒,最小為60兆字節/秒。然而,由於各種限制實際傳輸速率大約280兆比特/秒和35兆字節/秒之間。除了這個,實際的速度還取決於驅動盤本身的質量好壞以及其他的因素。
上面實驗中, USB 驅動盤插入USB 2.0 端口,讀取的速度達到了 24.7兆字節/秒,這是很不錯的讀速度。但寫入速度就不敢恭維了。
下面讓我們用 16GB 的 Strontium 驅動盤來做相同的實驗。雖然 Strontium 的 USB 驅動盤很穩定,但它也是一款很便宜的品牌。
它的讀取速度就要比 Sony 的低了。
關於 Silver Moon
Php 開發者, 博主 和 Linux 愛好者. 通過 [email protected] 或者 Google+ 可聯系到他。