中野島ロボット

小さなロボットの自作記事を書いています。

週間中ロボ115 RaspberryPi Model4B のmicroSDカードについて

はじめに
ラズベリーパイとは小さなワンボードコンピュータですが、Model 4Bになってすごい演算パワーになっています。PCが無くてもこれ一つでロボットの設計から3Dプリンタでの機体の印刷、プログラム開発すべてが可能になるくらいの性能があります。

RaspberryPi  Model4BのmicroSDカードについて
RPi4には本体の裏側にmicroSDカードスロットが一つ付いており、通常はここにOSを書き込んだmicroSDカードを挿して使用します。

f:id:nakarobo:20201103102558j:plain

RPi4を普通のディスクトップPCとして使用するには、容量は16GBもあれば十分だと言われていますが、中野島ロボットでは128GBのものをおすすめします。
RPi4にRaspberryPi OSをインストールして、実際にロボット開発で使うアプリをインストールすると10GB程度消費していました。そこからお試しソフトやゲームをいれていると14GBくらいになってしまいました。16GBでは全然足りません。

ではなぜ?
16GBで少ないのであれば、次の容量は32GBとなりますが、RaspberryPi OSにはそのmicroSDカードが使用できるかどうか判断する Raspberry Pi Diagnostics と言うアプリが標準でインストールされています。これは microSDカードのスピートをテストするもので、そのSDカード(RPi4の場合は実際にはmicroSDカード)が快適に利用できるかを判断してくれます。

f:id:nakarobo:20201104215324p:plain

手持ちの16GBから128GBのフラッシュメモリで確認しましたが、16GBや32GBのものでは、テストをパスしないものがありました。


ちょっと待て!
じゃあ速度の早い32GBで良いじゃないかと思うかもしれませんが、microSDカードに使用されているフラッシュメモリは書き込みに寿命があります。そしてその寿命はPCのハードディスクとして使用される同じくフラッシュメモリを使用するSSDより短くなっています。フラッシュメモリはギリギリで使うのではなく、容量が多いほうが寿命が長くなります。同じメモリチップであれば、容量が倍なら寿命も倍になります。microSDカードの寿命を考えたら64GB以上がおすすめです。

 

しかし
容量はさておき、こんどはmicroSDカードの寿命の速度はどうなのかという選択を迫られます。容量は64GB以上のものとしても、microSDカードには速度規格によって値段が違います。前述の Raspberry Pi Diagnostics では何を基準としているかですが、

 連続書き込み 10MB/sec以上
 ランダム書き込み 500IOPS以上
 ランダム読み込み 1500IOPS以上

で判断しています。これはmicroSDカードのアプリケーションスピードクラスのA1の数値と同じなので、アプリケーションスピードクラスがA1以上ののmicroSDカードを買えば良いということになります。

 

ではなぜ?
RPi4の動作確認で動作が遅いという記事がありますが、使用されたmicroSDカードのの規格が書かれていないものも多く、そもそも容量が64GB以下のものは、RPi4の能力を十分引き出せていないと考えられます。

ちょっと待て!
現在アプリケーションクラスはA2の高速なものが出ているます。それを使えばもっと速くなりそうです。Raspberry Pi Diagnostics のロクを見るともう少しその辺りがわかります。

Raspberry Pi Diagnostics - version (unknown)

Sun Nov 1 05:35:38 2020

Test : SD Card Speed Test
Run 1
prepare-file;0;0;38687;75
seq-write;0;0;38035;74
rand-4k-write;0;0;3374;843
rand-4k-read;12956;3239;0;0
Sequential write speed 38035 KB/sec (target 10000) - PASS
Random write speed 843 IOPS (target 500) - PASS
Random read speed 3239 IOPS (target 1500) - PASS
Test PASS

これはSanDisk Extream Pro 64GBの結果です。連続書き込みについては、40MB/sec弱で止まってしまっています。本来なら80MB/secの速度が出るはずです。
 これ以上の速度になると、当然RPi4のCPUが発表された2015年には無かった規格です。現時点では A1 U3以上の性能は引き出せないようです。アプリケーションスピードクラス A2のカードもテストしましたが、現時点でRPi4ではその性能を引き出せません。


しかし
テストにパスしなくても、RPi4の4GBメモリであれば、メモリ不足でディスクアクセスが発生することもあまりないと思うので普通に使えます。じゃあ64GBで良さそうな気がしますが、microSDカードは年々容量が増えていて、それに伴って速度も早くなっています。また、同じ名称や型番でも年式によって速度が違います。そうなんです128GBの方が新しくて容量も速度も早くなっているんです。
それと128GBの容量のSDカードの速度ですが、ノートPCで昔使用されいた2.5インチのハードディスクと同じ程度の性能になっています。もし比較対象がハードディスクを搭載したPCであれば、同等のスピードを感じることができると思います。 

 

まとめ
128GBの容量があれば、OSとアプリで20GB程度使用しても、100GB残る計算です。また実際の使用量が64GBくらいになるのであれば、余った分は長寿命が期待できます。ちなみに容量単価で考えると128GBが一番オトクになっています。RaspberryPi Model Bには128GBのmicroSDカードを買いましょう。 (64GB以下のmicroSDカードでの性能測定はRPi4では意味がありません。)

 

参考
SDカードの速度の規格は、表記がいっぱいあってどれがどうなのかわかりにくいです。
SDカードの規格については、このページに詳しく解説されています。

www.green-house.co.jp

 

microSDカードあるある
microSDカードは同じモデルの正規品でも、旧式になると速度が遅い場合があります。だまされたり偽造品ではなく、全く同じ型番の正規品なのに、ネットで見るベンチマークの結果よりも自分の購入したものが速度が遅いなんてことになります。
Amazonで売れ筋の128GBクラスの有名どころ(SanDisk、Trancend、Samsung)のものを買っておけば、メーカから直接発送されるので大丈夫だと思います。

 

購入品情報

1.トランセンド  無印128GB ¥2200くらい
このmicroSDカードはA1 U3 V30規格なのですが、ランダム性能がSanDiskの二倍も早いのです。(RPi4で体感はできていません)。ちなみに台湾製です。

今は ubuntu Linux をインストールして評価中です。


2.サンディスク Ultra 128GB ¥2000くらい
SanDiskは平行輸入品等は旧版の遅いものがあるので、Amazonから購入するならSanDiskのストアから購入した方が安心です。ちなみに中国製でした。 

今 Android 10がインストールされています。

 

3.サンディスク Extream 128GB 3000円くらいです。
最初にこれを購入しました。これも中国製です。 

Raspberry Pi OS 32bit をインストールして評価中です。スペックは読み込み160MB/s、書き込み90MB/sですが、RPi4ではこの高性能を引き出せません。なのでもったいない。

 

4.その他
microSDカードは当たりハズレがありますが、旧東芝(キオクシア)やKingston などもあり、意外と性能が違ったりするので、機会があったら試してみたいですね。Samsungのものがないのは、性能は良いのですがなぜだか二年くらいで良く壊れるからです。

 

でこの記事を書いているのに使っているRPi4は、SanDisk Extreme Pro 64GB です。