2017年2月20日

Raspberry Pi に最適な microSD カードは?【検証してみた】


Raspberry Pi 3 はストレージとして microSD カードを使用します。microSD と言っても複数のメーカーから様々な規格のものが販売されており、一体どれを使うのが良いのかイマイチよく分かりませんでした。

そこで microSD をいくつか用意し、どの microSD が Raspberry Pi で使うのに適しているかを調べてみました。

用意した microSD カード


容量は 16GB
スピードクラスは Class10 を 2 種類と Class4 を比べてみます。

UHS スピードクラスについては Raspberry Pi 3 が UHS に対応していないため、あまり意味はないと思われます。

microSD のベンチマーク


USB 2.0 のカードリーダーを使用し、CrystalDiskMark で microSD の速度を測定しました。シーケンシャル(連続したデータ)アクセスとランダムアクセスの性能が計測されます。使用したカードリーダーと PC はそれほど性能が高いものではないので、測定値は microSD 自体の最大性能という訳ではなく、あくまで同一条件下での比較として見てください。

シリコンパワー 16GB Class10


トランセンド 16GB Class10


トランセンド 16GB Class4


読み込みはシーケンシャル、ランダム共にどの microSD もほぼ同じ値でした。今回の測定環境では転送速度の上限は 18MB/s 程度となっており、この範囲では読み込みで SD スピードクラスによる差はあまり出ないようです。Raspberry Pi のカードリーダーの最大転送速度は 20MB/s 程度らしいので、その部分がボトルネックとなり、Raspberry Pi で使う場合にも同様な結果になることが予想されます。


書き込みはそれぞれのカードで異なる結果になりました。

シーケンシャル (Q32T1) の速度は速い方から以下の順になりました。

シリコンパワー Class10 14.70 MB/s
トランセンド Class10 8.597 MB/s
トランセンド Class4 5.610 MB/s

同じ Class10 でもシリコンパワーの方が書き込み速度が速いようです。


ランダム (Q32T1) の速度は速い方から以下の順になりました。

トランセンド Class4 1.517 MB/s
シリコンパワー Class10 0.815 MB/s
トランセンド Class10 0.608 MB/s

SD スピードクラスの数字から想像される結果とは逆になり、Class4 のカードが Class10 の 2 倍ほど速いという結果になりました。

Raspbian の起動時間


それぞれの microSD に Raspbian Jessie with PIXEL のイメージを書き込み、電源を入れてからデスクトップが表示されるまでの時間をストップウォッチで測定しました。

トランセンド Class4 19.04 秒
シリコンパワー Class10 25.62 秒
トランセンド Class10 30.86 秒

意外なことに Class4 のカードが一番速く起動し、ランダムライト性能の順位に準じた結果となりました。

ちなみに今回使った microSD はそれぞれ動作速度に差はありましたが、全て正常に動作しており、Raspberry Pi 3 との相性の問題は無いようです。

結果から分かったこと


今回比較したものの中では、ランダム性能の高かった Class4 のカードが一番速く起動し、体感で分かる程の差が出ました。OS の動作時は様々なタイミングで様々なファイルが読み書きされるため、OS の動作速度はシーケンシャルの性能よりもランダムの性能に大きく左右されるのだと思われます。

SD カードを選ぶ時の基準として、容量と共にスピードクラスを見ることが多いと思いますが、Raspberry Pi で使用する場合に限れば、SD スピードクラスだけを見てもあまり意味がないのかもしれません。理想としては、シーケンシャル性能だけではなく、なるべくランダムアクセス性能が高いものを使うのが良さそうです。

まとめ


今回の検証結果からは、ランダムアクセス性能の高い microSD カードが Raspberry Pi で OS を動作させるのに適していることが分かりました。

microSD の性能は、メーカー、容量、生産ロットによっても変わってくるため、どれが Raspberry Pi で使うのに最適かを断定することは難しいですが、今回の結果から見れば、シーケンシャル性能をそれほど追求していない Class4 程度の製品の方が逆にランダム性能が良い場合があり、Raspberry Pi での使用に意外に適している可能性はありそうです。

ただし、大きなサイズのファイルをコピーする場合など、シーケンシャル性能の恩恵がある状況ではスピードクラスの速いものの方が有利になるはずなので、必ずしも Class4 が良いとは限りません。どちらが良いかは Raspberry Pi の用途次第だと思います。

シーケンシャル・ランダム共に速い microSD が理想ですが、ランダムアクセスなど詳細な性能についてはメーカーが公表しているのを見たことがないので、結局のところは、実際にそれぞれの環境・用途で使用してみなければ、どれが最適かは分からない、ということですかね…(^_^;

新しい規格の microSD


最近、新たな規格の microSD カードが発売されました。

その規格とは Application Performance Class1(アプリケーションパフォーマンスクラス 1 (A1))と言うもので、スマホのアプリの動作速度向上のため、一定基準のランダムアクセス性能等を満たした SD カードの規格です。(さらに高速な A2 という規格も発表されています。)
規格の特徴から考えると、この SD カードはスマホだけでなく Raspberry Pi での使用にも適していると思われます。しかし現時点 (2017年5月) では発売しているメーカーが少なく値段も高めなので、もう少し普及して価格が下がってきて欲しいところですね。今後の製品動向には注目したいと思います。

*追記 (
SanDisk Extreme 32GB (A1対応) を購入したので、ベンチマークテストを行ってみました。

SanDisk Extreme (A1対応) の結果

以前のベンチマーク結果と比較すると、シーケンシャルの読み込みにおいては他と同様に差は出ませんでしたが、ランダムの読み込みでは他の SD カードに比べて 25 % 程度速い結果となりました。書き込みではシーケンシャル・ランダム共に大幅に速い速度になりました。

やはり A1 規格に対応した microSD はランダムアクセス性能が比較的高いようです。また、この製品は U3, V30 スピードクラスに対応しており、シーケンシャルアクセス性能も非常に高く、書き込みにおいてもカードリーダー性能の上限に近い値が出ました。

Raspbian Jessie with Desktop (2017-07-05) の起動時間

サンディスク A1 16.56 秒
トランセンド Class4 20.12 秒

今回起動テストに使った Raspbian Jessie は、以前の検証で使用したバージョンとは異なるため、起動時間の結果を単純比較することはできませんが、サンディスク A1 がトランセンド Class4 よりも速く起動することは間違いないようです。

以上の結果から、スペック的に当然とは言えますが、比較した中ではこの microSD が最もパフォーマンスが優れていました。

実際に使用してみても、OS の動作が速いのはもちろんのこと、ファイルのコピーも速くスムーズで、他の microSD を使った場合に起きていた遅延などが全くありませんでした。この SD カードは Raspberry Pi で使うにはベストに近いものだと思います。

価格も発売当初に比べ下がってきているので、選択肢の一つとして考えても良いのではないでしょうか。

関連記事:
Raspbian Jessie with PIXEL のインストール手順
Raspbian Jessie with PIXEL の初期設定

(追記 2017/05/21) 一部加筆修正を行いました。

2 件のコメント:

  1. RPi 3 mode B用のmicroSDの購入に迷っておりましたが、ご推薦のA1規格に準拠した32GBのものを購入いたしました、ありがとうございました。

    返信削除
    返信
    1. コメントありがとうございます。どのmicroSDを買うかは最初に悩むところですよね。自分も今はA1のSDをメインにしていますが、特にトラブルなく使えています。この記事が少しでもお役に立てたなら幸いです。

      削除