採購伺服器、驗收雲主機、排查 I/O 瓶頸時,量測硬碟實際讀寫效能是基本功。本文介紹兩大經典工具 hdparm (快速評估) 與 dd (實測吞吐量),附參數詳解與實測截圖。
| 參數 | 功能 |
|---|---|
-T | 測試緩存讀取速度 (CPU/記憶體/主機板匯流排效能) |
-t | 測試裝置直接讀取速度 (硬碟實際吞吐量) |
-i | 顯示硬碟硬體規格資訊 (開機時由裝置提供) |
-I | 直接讀取裝置完整規格 (含 S.M.A.R.T.、NCQ 等) |
-g | 顯示磁軌/磁頭/扇區幾何參數 |
-a | 獲取/設定預讀取扇區數 |
-A | 啟用/停用硬碟內建緩存 |
# 測試 /dev/sda 緩存與直接讀取速度
hdparm -Tt /dev/sda
# 輸出範例
/dev/sda:
Timing cached reads: 24940 MB in 2.00 seconds = 12470.00 MB/sec
Timing buffered disk reads: 532 MB in 3.01 seconds = 176.74 MB/sec

解讀:cached reads 反映記憶體/CPU 效能;buffered disk reads 才是硬碟真實循序讀取能力。SSD 通常 > 400 MB/s,機械硬碟 100~200 MB/s。
time dd if=/dev/zero of=/mnt/testfile bs=1M count=1024 conv=fdatasync
# if=/dev/zero 不產生 I/O,of 寫入檔案系統,conv=fdatasync 強制同步到磁碟
time dd if=/mnt/testfile of=/dev/null bs=1M
# of=/dev/null 丟棄資料,不產生寫入 I/O
bs:區塊大小 (建議 1M~4M,模擬實際應用 I/O 大小)count:區塊數量,總量 = bs × count (建議 ≥ 1GB 減少誤差)conv=fdatasync / oflag=direct:確保繞過頁面緩存,測得真實磁碟速度

fio (Flexible I/O Tester):支援隨機/循序、讀/寫/混合、多執行緒、IOPS/延遲分布完整報表,業界標準基準工具。iostat -xmt 1:持續觀察裝置利用率、await、svctm、%util 等關鍵指標。