このブログの読者なら承知のことと思いますが、Raspberry PiはそのメインストレージにmicroSDを使用します。
ところが、Raspberry PiでmicroSDのベンチマークを大規模に行った記事って意外と見当たらないんですよね。なので、やってみました。
SDカードのマークについて
SDカードには容量の他にいくつもマークが描かれています。このマークは規格を表すもので、だいたい4つか5つ書かれています。
1.カード規格
2.通信仕様
3.スピードクラス
4.UHSスピードクラス
5.ビデオスピードクラス
カード規格というのはmicroSDHCとかmicroSDXCとかのことです。SDHCは32GBまで、SDXCはexFATフォーマットに対応し、2TBまで対応します。
通信仕様とはUHS(Ultra-High Speed)のことで、UHS-I(最大104MB/s)、UHS-II(最大321MB/s)、UHS-III(最大624MB/s)の3つの規格があります。2018年にSD Expressが策定されましたが、現時点では一般的ではありません。
残る3つは最低限の速度を保証するもので、下の図のようになっています。
出展 https://www.sdcard.org/ja/developers-2/sd-standard-overview/speed-class
ベンチマークについて
ベンチマークはWindows機でのCrystalBenchMarkおよびRspberry Pi実機にてCrystalDiskMarkに設定を合わせたfioと、Raspberry Pi用のストレージベンチマークソフト「PiBenchmarks」で実施しています。
OSはUSBから起動し、microSDに余計なアクセスが発生しない状態で測定しています。
Windows機ではカードリーダーとしてUHS-I対応のSanDisk MobileMate SDDR-B531を使用しています・
CrystalDiskMarkについてはおなじみと思うので、ラズパイでのベンチマークについて設定を記載します。
fioの設定
fioとはLinux向けで定番のディスクI/Oベンチマーク測定ツールです。
fioの設定についてはCrystalDiskMark風にデータを取得する設定を作っている人がいますが、取得項目が旧バージョン使用だったので、現行バージョン(Ver8)に合わせて修正しました。
参考 LinuxでもCrystalDiskMarkぽいディスクベンチマークしたい
$ vi fio.txt
[global] ioengine=libaio iodepth=1 size=1g direct=1 runtime=60 directory=${TARGET} stonewall [Seq1M-Read-Q8] iodepth=8 bs=1m rw=read [Seq1M-Write-Q8] iodepth=8 bs=1m rw=write [Seq1M-Read] bs=1m rw=read [Seq1M-Write] bs=1m rw=write [Rand-Read-4K-Q32] iodepth=32 bs=4k rw=randread [Rand-Write-4K-Q32] iodepth=32 bs=4k rw=randwrite [Rand-Read-4K] bs=4k rw=randread [Rand-Write-4K] bs=4k rw=randwrite
実行コマンド
ターゲットの指定先はデバイス(/dev/sdx)ではなく、ディレクトリ(/media/pi/xxxx)となります。
$ TARGET=/media/pi/xxxx fio -f fio.txt --output-format=terse | awk -F ';' '{printf "%s: %s MB/s\n", $3, ($7+$48) / 1000}'
実行するとこんな感じで結果が表示されます。
Seq1M-Read-Q8: 40.452 MB/s Seq1M-Write-Q8: 15.437 MB/s Seq1M-Read: 42.581 MB/s Seq1M-Write: 15.341 MB/s Rand-Read-4K-Q32: 11.587 MB/s Rand-Write-4K-Q32: 1.58 MB/s Rand-Read-4K: 9.108 MB/s Rand-Write-4K: 1.413 MB/s
PiBenchmarks
PiBenchmarksは複数のベンチマークアプリを組み合わせた、ラズパイ向けのI/Oベンチマーク測定スクリプトです。
PiBenchmarksはラズパイ特化なので特に設定もなく実行するだけで済みます。
中身を見るとシーケンシャルライト2割、4Kリード/ライトが1割、4Kランダムリード/ライト7割くらいの重みづけになっています。
まぁ、最大でも40MB/s前後で頭打ちなシーケンシャルアクセスを低めにするには方向性として正しいです。
$ wget https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh $ chmod +x Storage.sh $ sudo ./Storage.sh /media/pi/xxxx
結果は下の画像みたいに見やすく成形されて表示されます。
総合スコアが出るので、分かりやすいですね。
比較表
CrystalDiskMark
ほとんどのカードが公表スペック並みか、上回る速度を出しています。
書き込み速度にはかなりばらつきがありますね。
Raspberry Pi fio
表を見れば分かりますが、Raspberry Pi側の限界が、リード45MB/s、ライト37MB/sくらいなようで、シーケンシャルリードはほとんど横並び状態です。
PiBenchmarks
4Kリード・ライトを重視するPiBenchmarksでは結果が割とばらけました。
32GBのスペックが弱い「SanDisk Ultra」などは128GB>64GB>32GBとなっていますが、ラズパイの上限に達しているものは32GB>128GB>64GBとなっています。
おそらくFATフォーマットとexFATフォーマットの差だと思われますが、意外な結果でした。
まとめ
個別の結果は長いので、先にまとめます。
ひとまず検証した中では、スコアが高く、コスパもいいのが「SanDisk Extreme 32GB」でした。
上の比較表には入れていませんが、参考としてUSBメモリや外付けSSDでもベンチマークしています(個別結果に記載)。
USBメモリは4Kランダムライトが壊滅的なため、使いどころを間違えるとmicroSD以下になりそうです。
とはいえ特にシーケンシャルリードはmicroSDとは比べ物にならないくらい早いので、OSの起動メディアとしてはUSBメモリに軍配が上がります。
まぁ、すべてをぶち抜くのがUSB SSDなわけで…
速度も耐久性も段違いなので、予算が許すのであればUSB SSDを採用するべきでしょう。
個別の結果
SanDisk Extreme Pro
言わずと知れた、記録メディア大手SanDiskの、最上位ブランドです。
性能も最上級で、4K/8Kビデオの撮影や、連射撮影の多いスポーツ写真などには最適です。
SanDisk Extreme Pro 128GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 43.601 MB/s | 36.885 MB/s |
SEQ1M-Q1 | 42.555 MB/s | 36.903 MB/s |
RND4K-Q32 | 11.549 MB/s | 3.309 MB/s |
RND4K-Q1 | 8.962 MB/s | 2.841 MB/s |
SanDisk Extreme Pro 64GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.555 MB/s | 27.992 MB/s |
SEQ1M-Q1 | 41.628 MB/s | 27.664 MB/s |
RND4K-Q32 | 11.023 MB/s | 1.527 MB/s |
RND4K-Q1 | 8.562 MB/s | 1.351 MB/s |
SanDisk Extreme Pro 32GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 43.948 MB/s | 36.188 MB/s |
SEQ1M-Q1 | 42.657 MB/s | 35.816 MB/s |
RND4K-Q32 | 13.35 MB/s | 3.926 MB/s |
RND4K-Q1 | 10.081 MB/s | 3.456 MB/s |
SanDisk Extreme
スペックと価格のバランスがいいのが、Extremeシリーズです。
というか、Extreme Proはデバイスに対してオーバースペックとなることが多く、だいたいの機器においてはExtremeシリーズで十分だったりします。
SanDisk Extreme 128GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.601 MB/s | 28.332 MB/s |
SEQ1M-Q1 | 42.51 MB/s | 27.903 MB/s |
RND4K-Q32 | 11.516 MB/s | 1.677 MB/s |
RND4K-Q1 | 8.906 MB/s | 1.485 MB/s |
SanDisk Extreme 64GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.765 MB/s | 27.883 MB/s |
SEQ1M-Q1 | 41.907 MB/s | 27.23 MB/s |
RND4K-Q32 | 11.22 MB/s | 1.688 MB/s |
RND4K-Q1 | 8.809 MB/s | 1.462 MB/s |
SanDisk Extreme 32GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.333 MB/s | 37.128 MB/s |
SEQ1M-Q1 | 42.504 MB/s | 36.903 MB/s |
RND4K-Q32 | 13.354 MB/s | 4.159 MB/s |
RND4K-Q1 | 10.089 MB/s | 3.649 MB/s |
SanDisk Ultra
SanDisk製品の中では最もお手頃なのがUltraシリーズです。
その分スペックもやや低めとなっていますが、64GB以上は普通に使える結果となっています。
SanDisk Ultra 128GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.734 MB/s | 25.622 MB/s |
SEQ1M-Q1 | 41.592 MB/s | 30.568 MB/s |
RND4K-Q32 | 11.255 MB/s | 1.077 MB/s |
RND4K-Q1 | 8.684 MB/s | 0.419 MB/s |
SanDisk Ultra 64GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.83 MB/s | 22.934 MB/s |
SEQ1M-Q1 | 41.654 MB/s | 22.452 MB/s |
RND4K-Q32 | 11.894 MB/s | 0.897 MB/s |
RND4K-Q1 | 9.263 MB/s | 0.748 MB/s |
SanDisk Ultra 32GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 40.452 MB/s | 15.437 MB/s |
SEQ1M-Q1 | 42.581 MB/s | 15.341 MB/s |
RND4K-Q32 | 11.587 MB/s | 1.58 MB/s |
RND4K-Q1 | 9.108 MB/s | 1.413 MB/s |
SanDisk High Endurance
ドライブレコーダー向けの高耐久microSDです。
ドライブレコーダー用に購入したものなので、64GBだけです。
SanDisk High Endurance 64GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.472 MB/s | 24.42 MB/s |
SEQ1M-Q1 | 41.535 MB/s | 24.177 MB/s |
RND4K-Q32 | 9.099 MB/s | 1.362 MB/s |
RND4K-Q1 | 7.692 MB/s | 1.196 MB/s |
SiliconPower
ストレージ系大手のひとつ、SiliconPowerもmicroSDを販売しています。
というか、SAMSUNGは言うに及ばず、WDはSanDiskブランド(2016年に買収)で出していますし、KIOXIA(旧東芝メモリ)も出しているので、SD/microSDに進出していないのはSeagateくらいでは?
SP Elite 128GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 45.582 MB/s | 22.929 MB/s |
SEQ1M-Q1 | 42.488 MB/s | 22.867 MB/s |
RND4K-Q32 | 11.627 MB/s | 1.16 MB/s |
RND4K-Q1 | 8.979 MB/s | 1.405 MB/s |
SP Elite 64GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 43.736 MB/s | 21.441 MB/s |
SEQ1M-Q1 | 41.227 MB/s | 21.194 MB/s |
RND4K-Q32 | 8.933 MB/s | 0.835 MB/s |
RND4K-Q1 | 7.41 MB/s | 0.708 MB/s |
SP 32GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 40.708 MB/s | 19.868 MB/s |
SEQ1M-Q1 | 42.214 MB/s | 18.549 MB/s |
RND4K-Q32 | 9.687 MB/s | 4.618 MB/s |
RND4K-Q1 | 7.648 MB/s | 4.065 MB/s |
HIDISC
HIDISCは株式会社磁気研究所のブランドで、1979年設立の国内メーカーです。
安いけどいまいちなイメージでしたが、意外としっかりしていました。
HIDISC 128GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.156 MB/s | 26.23 MB/s |
SEQ1M-Q1 | 40.598 MB/s | 26.203 MB/s |
RND4K-Q32 | 8.756 MB/s | 1.539 MB/s |
RND4K-Q1 | 7.355 MB/s | 1.259 MB/s |
HIDISC 64GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.07 MB/s | 15.442 MB/s |
SEQ1M-Q1 | 41.104 MB/s | 14.583 MB/s |
RND4K-Q32 | 5.296 MB/s | 0.055 MB/s |
RND4K-Q1 | 4.572 MB/s | 0.039 MB/s |
HIDISC 32GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 41.04 MB/s | 21.25 MB/s |
SEQ1M-Q1 | 42.114 MB/s | 20.201 MB/s |
RND4K-Q32 | 9.96 MB/s | 5.186 MB/s |
RND4K-Q1 | 7.936 MB/s | 4.506 MB/s |
Verbatim
アメリカの企業が三菱化成に買収されて海外ブランド名となり、のちに日本でも使用されるようになり、三菱化成(三菱ケミカルメディア)の記録メディア事業撤退に伴ってCMC Magneticsに売却されたのが、Verbatimです。
1969年の設立から50年以上続く、記録メディアの老舗です。
量販店でも手に入るメディアということで、近所で売られていたものを入手しました。
Verbatim 64GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 44.264 MB/s | 17.317 MB/s |
SEQ1M-Q1 | 41.038 MB/s | 18.259 MB/s |
RND4K-Q32 | 10.496 MB/s | 1.134 MB/s |
RND4K-Q1 | 8.197 MB/s | 0.995 MB/s |
Verbatim 32GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 41.737 MB/s | 23.777 MB/s |
SEQ1M-Q1 | 42.175 MB/s | 22.783 MB/s |
RND4K-Q32 | 9.894 MB/s | 5.385 MB/s |
RND4K-Q1 | 7.945 MB/s | 4.663 MB/s |
GREEN HOUSE
これは近所の量販店でワゴンセールで100円で売られていたのを見つけて買ったやつです。
GREEN HOUSE 16GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 36.956 MB/s | 10.258 MB/s |
SEQ1M-Q1 | 41.362 MB/s | 10.187 MB/s |
RND4K-Q32 | 10.211 MB/s | 2.594 MB/s |
RND4K-Q1 | 8.199 MB/s | 2.377 MB/s |
SAMSUNG
これはたまたま家にあったmicroSDです。なので、32GBのみです。
購入履歴の時期からすると、多分ラズパイ用に買ったものの、USBブートにしたので使わなくなったやつですね。
SAMSUNG EVO Plus 32GB
Read | Write | |
---|---|---|
SEQ1M-Q8 | 41.914 MB/s | 24.722 MB/s |
SEQ1M-Q1 | 41.381 MB/s | 23.041 MB/s |
RND4K-Q32 | 8.994 MB/s | 0.792 MB/s |
RND4K-Q1 | 7.59 MB/s | 2.047 MB/s |
参考
ここからは参考用にと同条件で計測したUSBメモリとUSB SSDです。
家にあったものをかき集めてきたので、メーカーも容量もバラバラです。
シリコンパワー Blaze B02 32GB(USBメモリ)
Read | Write | |
---|---|---|
SEQ1M-Q8 | 120.984 MB/s | 26.186 MB/s |
SEQ1M-Q1 | 113.888 MB/s | 26.004 MB/s |
RND4K-Q32 | 5.603 MB/s | 0.003 MB/s |
RND4K-Q1 | 7.608 MB/s | 0.003 MB/s |
Verbatim USBSPS64GGV1(USBメモリ)
Read | Write | |
---|---|---|
SEQ1M-Q8 | 93.43 MB/s | 12.644 MB/s |
SEQ1M-Q1 | 104.439 MB/s | 12.593 MB/s |
RND4K-Q32 | 13.338 MB/s | 0.003 MB/s |
RND4K-Q1 | 11.681 MB/s | 0.003 MB/s |
ADATA UV128 32GB(USBメモリ)
Read | Write | |
---|---|---|
SEQ1M-Q8 | 114.273 MB/s | 21.448 MB/s |
SEQ1M-Q1 | 112.039 MB/s | 21.661 MB/s |
RND4K-Q32 | 11.515 MB/s | 0.367 MB/s |
RND4K-Q1 | 10.656 MB/s | 0.402 MB/s |
ELECOM ESD-EC0960GBK(USB SSD)
Read | Write | |
---|---|---|
SEQ1M-Q8 | 227.901 MB/s | 275.216 MB/s |
SEQ1M-Q1 | 208.63 MB/s | 55.442 MB/s |
RND4K-Q32 | 19.859 MB/s | 1.412 MB/s |
RND4K-Q1 | 30.151 MB/s | 1.454 MB/s |
コメント