Raspberry Pi 5はSSDで早くなるのか?(PCIe Gen2 vs Gen3も比較)
はじめに
Raspberry Pi 5からPCIe 2.0 ×1レーンが搭載され、M.2 HATをつけることでSSDが取り付けられることで有名です(発売から2年立ってるので今更すぎるの話ですが。。
過去にいくつかSSD搭載する記事を見たものの、あまりちゃんと比較したものを見た覚えがない+どうせなら自分でもやってみよう、ということでやってみました。
今回使用する機器
性能比較に使用した機器はこちらです。
パーツ | 製品名 | 備考 |
---|---|---|
本体 | Raspberry Pi 5 | 8GBモデル |
電源 | Raspberry Pi 27W USB-C電源 | 公式電源 |
microSDカード① | SanDisk Ultra 32GB | 家にあったSDカード(性能:低) |
microSDカード② | SanDisk Extreme 128GB | 家にあったSDカード(性能:高) |
NVMe M.2 SSD | SP P34A60 NVMe SSD 256GB | 安かったから購入 |
SSD HAT | X1001 | ラズパイケース付属のM.2 Hat使用(下記リンク) |
↓ 比較される記録メディア達
↓ 購入したケース&M.2Hatです
職場にしかラズパイ5がなかったので、プライベート用に買いました。
そのため、microSDカード以外は新品です。
組むのに30分~1時間かかったけど、すごい気に行ってる
近くで見たらかっこいい。メインのデスクPCと並べるとミニチュアみたいでかわいい。
microSDカードの性能規格の違い
家にあったmicroSDカードですが、表面を見ると色々マークが書かれてます。
これらは読み書き速度の保証を示すクラスを示してて、どのマークの規格でも数字が大きければとりあえず性能が高いです(「microSD 規格」とかで調べてもらえればヒットします)
今回のSDカードで違う部分は以下4点
- A1、A2
- アルファベットの「U」みたいな文字の中の数字
- Ultra 32GBだけ10のマークがある
- Extreme ProだけV30のマークがある
軽く調べた内容を下記にまとめてみます。
アプリケーションパフォーマンスクラス(A1, A2)
A1とA2のことです。スマホアプリやOSの快適さを示すランダムアクセスの最低保証値を示しています。
- A1: ランダム読込回数 1500 IOPS / ランダム書込回数 500 IOPS
- A2: ランダム読込回数 4000 IOPS / ランダム書込回数 2000 IOPS
スピードクラス (Class 2, 4, 6, 10)
最低保証書込速度を示しています。
- Class 2: 最低 2MB/s を保証
- Class 4: 最低 4MB/s を保証
- Class 6: 最低 6MB/s を保証
- Class 10: 最低 10MB/s を保証 (U1、V10と同等)
UHSスピードクラスの違い(U1, U3)
アルファベットの「U」みたいな文字の中の数字の違いのことです。最低保証書込速度を示しています。
- UHSスピードクラス1(U1) ⇒ 最低 10MB/s を保証 (Class10、V10と同等)
- UHSスピードクラス3(U3) ⇒ 最低 30MB/s を保証
ビデオスピードクラス (V10, V30, V60, V90)
最低保証書込速度を示しています。
- ビデオスピードクラス10 (V10) ⇒ 最低 10MB/s を保証 (Class10、U1と同等)
- ビデオスピードクラス30 (V30) ⇒ 最低 30MB/s を保証 (U3と同等)
- ビデオスピードクラス60 (V60) ⇒ 最低 60MB/s を保証
- ビデオスピードクラス90 (V90) ⇒ 最低 90MB/s を保証
正直今まであまり気にしてなかったですが、ほとんど同じような規格ですね。
microSDの歴史は分かりませんが、もう少しわかりやすくするか、統一するかしてほしい。。
計測方法
ラズパイには公式でディスク読書速度の計測ツール「Raspberry Pi Diagnostics」があります。
Raspberry Pi OSにデフォルトでインストールされているので、今回はこちらを使って比較していきたいと思います。
-
Raspberry Pi OS(Trixie)をクリーンインストールし、ユーザー名や各種設定を行います。
-
apt update && apt upgradeを実行(一応)
-
「スタート」->「アクセサリー」->「Raspberry Pi Diagnostics」をクリック
-
「SD Card Speed Test」が選択されてる状態で「Run Tests」
-
測定中…
-
終わるとRESULTにPASS or FAILが表示されます(私はPASSしか表示されませんでした)
PASSかFAILかの違いは測定結果が基準値を満たすかどうかみたいです。
- 「Show Log」ボタンが発生するので、クリックすると詳細がテキストファイルで出力されます
連続読込/書込、ランダム読込/書込の計4項目が測定されてます。
診断結果も書いてありますね。
- もう一度測定する場合は、「Reset」ボタンを押すと再度「Run Tests」が押せるようになります
比較結果
3種のストレージに対して、上記測定方法をそれぞれ5回ずつ行った結果を比較していきたいと思います。
ちなみにそれぞれのメーカー公称値についても一応触れておきます。
項目 | SD ULT | SD EXT | SSD |
---|---|---|---|
最大読込速度 | 120 MB/s | 200 MB/s | 2,200 MB/s |
最大書込速度 | 10 MB/s以上¹ | 90 MB/s | 1,600 MB/s |
¹ SanDisk Ultraは具体的な最大書込速度は明記がなかった(Class 10/U1規格のみ)
単純計算だとSSDの読込速度は10~20倍、書込速度は17~160倍microSDより出る計算になるが、果たして、、?
SSDの圧勝👊
全てにおいて圧倒的な差を見せつけ、SSDが見事1位になりました~(知ってた)
比較表
↓見づらいのでSSDを除いたmicroSDカードだけの比較
連続書込速度だけ大きな差があるが、それ以外はあまりない
計5回分の平均値
項目 | SD ULT | SD EXT | SSD | SSD性能向上 |
---|---|---|---|---|
Sequential Write | 19,893 KB/sec | 67,167 KB/sec | 429,214 KB/sec | 約6.4~21.6倍 |
Sequential Read | 92,142 KB/sec | 89,286 KB/sec | 438,367 KB/sec | 約4.8~4.9倍 |
Random Write | 2,611 IOPS | 2,277 IOPS | 107,365 IOPS | 約41.1~47.1倍 |
Random Read | 2,533 IOPS | 2,199 IOPS | 107,084 IOPS | 約42.3~48.7倍 |
っていう結果でした。公称値からの比較通りと言っても悪くないくらい差はありますね。
ただ、連続読込速度(3種全て)、連続書込速度(SSD)については公称値よりも実測値が低い結果になりました。
メーカー公称値よりも実測値が小さくなった理由
調べてみたところ、RaspberryPi5本体のハードウェア的な制約による上限だということが分かりました。
microSD
Raspberry Pi 5側のインターフェース(UHS-I規格)が最大104MB/sの転送速度であるSDR104というモードをサポートしているからみたいです。
つまり、実測値として約90MB/s出ていた今回の結果はむしろ理論値に近く、microSDカード自体の性能は問題ないと言えます。
SSD
Raspberry Pi 5のPCIeがGen2で最大500MB/sの転送速度しか出ないからです。
SSDに関しても、実測値は約430MB/s出ていたので理論値に近い結果だったと言えます。
Gen2というのは知ってましたが、速度は気にしたことなかったので完全に抜けてました🤷♂️
【追加検証】ところでよ、お前まだ進化できたよな?
色々調べてる間にPCIe Gen3にオーバークロックする形で動かせることを思い出したので、Gen2とGen3でも比較してみたいと思います。
ちなみにGen2は約500MB/s、Gen3は約985MB/sと約2倍の差があります。Raspberry Pi 5の公式も非推奨的な扱いな機能ですが、どこまで性能差が出るでしょうか。
PCIe Gen3の有効化
-
/boot/firmware/config.txtの一番下に下記の一行を追加します([all]の中でいいです)
dtparam=pciex1_gen=3
-
再起動します
-
設定が反映されているか確認
sudo lspci
「Non-Volatile ...」みたいな表示があれば、SSDが認識されている。この行の左側の数字列をコピペ
以下を実行して、Speed 8GT/sとなってればOK。5GT/sならGen2のまま。sudo lspci -vv -s {コピペした数字列} | grep -i "LnkSta"
Gen2とGen3の比較
比較表
計5回分の平均値
項目 | SSD (PCIe Gen2) | SSD (PCIe Gen3) | Gen3性能向上 |
---|---|---|---|
Sequential Write | 429,214 KB/sec | 836,495 KB/sec | 約1.95倍 |
Sequential Read | 438,367 KB/sec | 870,910 KB/sec | 約1.99倍 |
Random Write | 107,366 IOPS | 132,129 IOPS | 約1.23倍 |
Random Read | 107,084 IOPS | 192,752 IOPS | 約1.80倍 |
シーケンシャル性能は理論値通りの約2倍の値が出ました。
ランダム書込だけ伸びが悪いですが、読込に関しても約1.8倍と理論値に近い値になりました。
純粋に読み書き性能が倍になるので、ラズパイをサブPCやNASなどの用途で使う場合はGen3にしてみてもいいかなと思いました。
ただ、発熱量が増える可能性もあるので要注意です。公式も非推奨にしてるので、あまりないかもしれませんがクリティカルなシステム下で使うのは控えるべきでしょう。
おわり
「SSD vs microSD」、「SSD(PCIe Gen2) vs SSD(PCie Gen3)」の比較をしてみました。
もっと詳細にベンチマークをしたいときは「fio」というツールを使うといいみたいです。
ただ、カスタマイズ性が高いが故に学習コストも大きそうで今回はやめときました🐣
みなさんの環境とは使用するmicroSDやSSDとは環境が変わるかもしれませんが、本記事が何かしらの参考になれたら幸いです🤝
Discussion