數年前我開始玩 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
有興趣的可以繼續看測試截圖…
6 月 3 2024
Raspberry Pi 5 的 PCIe ( Gen2 vs Gen3 )
我之前測完 Raspberry Pi 5 的 PCIe 之後,便丟了些東西讓它跑,順便觀察其在室溫的運作狀況。
搭配 Argon NEO 5 M.2 NVME PCIE Case for Raspberry Pi 5 的運作狀況: CPU 均溫約攝氏 60 度 (風扇轉速約 3500 RPM,挺安靜)、Intel 760p SSD 約攝氏 30 度。
但我發現其 PCIe 規格是可以用 Gen3 運作的,便又好奇測試看看。
預設的模式是 Gen2 (LnkCap 是其匯流排能力,LnkSta 是目前運作的匯流排模式):


用 fio 測試循序讀取,iops 約 97.9k,傳輸約 383MB/s。
改用 PCIe Gen3:



用 fio 測試循序讀取,iops 約 141k,傳輸約 551MB/s。
與 Gen2 相比,大約是 50% 的性能提昇;但隨機讀寫的效能提昇幅度不大,Gen3 的 iops 約 54.5k,傳輸約 213MB/s。
我曾讓它改用 PCIe Gen3,但擺著不到一天,它就失聯了…
最後乖乖改回來…
By Joe Horn • Computer Hardware 0 • Tags: benchmarking, fio, PCIe, PCIe Gen2, PCIe Gen3, Raspberry Pi, Raspberry Pi 5