數年前我開始玩 Raspberry Pi ,第一款入手的是 Raspberry Pi 2 model B;原先的想法是在家弄個微型 Linux server,運氣好的話還能裝 desktop 版,接上電視當 Thin client。
但這個版本 CPU 速度不快,記憶體不大,MicroSD 的 file I/O 也不算快,我裝起來玩沒幾個月就撤下來了…
之後我在看到 Orange Pi 的 benchmarking 文章,感覺內建的 EMMC 速度不錯,就買了一台 Orange Pi Plus 2 來玩。
也是玩沒幾個月,發現 Orange Pi 的生態系不太完整,而且 Orange Pi Plus 2 的 CPU 發熱量頗高,非得搞個風扇才能讓它保持清醒(風扇還要定時更換),便又把它撤下來了…
Raspberry Pi 4 大概是在 2019 年六月面世,而且 Benchmarking the Raspberry Pi 4 這文有一部份對我挺有吸引力…
我想在家弄的 Linux server 已經被我扔進 NAS 的 VM,直到 8GB 記憶體的版本面世,我才又入手。
把它裝起來玩之後,發現 MicroSD 的 file I/O 依舊無法跟 NAS 裡面的 VM guest 相比,便又擱著…
直到最近看到一堆 Raspberry Pi 4 的 USB boot 文,才又有動力把它抓出來測 file I/O ,順便留個紀錄。
在測試前,有件事讓我搞很久…
我用 USB 外接硬碟可以作 USB boot,但用 Intel SSD 760p 配 Asus ROG STRIX ARION、伽利略 M2NVU31(晶片是 JMS583)一直失敗…
我在 Facebook 的台灣樹苺派社群提問,便有人回覆提醒我該注意供電與轉接器的主控晶片。
於是我把裝置接上一個可額外供電的 USB 3.0 hub,NVMe SSD 搭配 JMS583 主控 就成功達成 USB boot 了…
隨後又在網路上找了個 RTL9210 主控的轉接器,發現 RTL9210 毋需額外供電,直接接上就可以作 USB boot。
測試的配置圖(開機時僅接上 NVMe SSD):
Raspberry Pi 4 的一些基本資訊,開機後裝上 & 掛載受測的 storage devices:
fio 的參數都一樣:
-iodepth=128 -ioengine=libaio -bs=4k \ --runtime=300 --size=500M \ --direct=1 --rw=randrw
前面的廢話夠多了,先列 fio 的隨機存取測試結果;由快到慢分別是:
- Intel SSD 760p 搭配 NVMe-to-USB3 轉接器(左三,Raspberry Pi 4 開機時僅接上這個作 USB boot):iops 約 11k,傳輸約 42MB/s
- Fujitsu F500 SATA SSD 搭配 SATA-to-USB3 線(左一):iops 約 10k,傳輸約 40MB/s
- SanDisk Extreme Pro MicroSD card(在 Raspberry Pi 4 肚子裡):iops 約 390,傳輸約 1560KB/s
- SanDisk Ultra Go 隨身碟(插在 USB 3.0 hub,tiffany 藍那傢伙):iops 約 170,傳輸約 680KB/s
- Toshiba Canvio Basics 2.5″ USB3 外接硬碟(左二,應該是 SMR HDD):iops 約 63,傳輸約 250KB/s
有興趣的可以繼續看測試截圖…
Intel SSD 760p 搭配 NVMe-to-USB3 轉接器:
Fujitsu F500 SATA SSD 搭配 SATA-to-USB3 線:
SanDisk Extreme Pro MicroSD card:
Toshiba Canvio Basics 2.5″ USB3 外接硬碟:
對照組…
NAS VM guest(RAID 1 w/2 SATA HDDs,用 Intel 660p 作 cache)